I wrote a very simple entity object which has a unique field called objectID.
public class CustomObject{
public Long objectID;
public String field1;
public String field2;
}
public class CustomObjectFieldInterceptor{
if(invocation instanceof FieldReadInvocation){
FieldReadInvocation readInvocation = (FieldReadInvocation) invocation;
CustomObject object1 = (CustomObject) readInvocation.getTarget();
Long objID = object1.objectID;
}
}
Long objID = object1.objectID;throws StackOverflowException because there is a recursive call.
I think making your CustomObjectFieldInterceptor implement org.jboss.aop.instrument.Untransformable should work. Classes implementing that interface are not woven, and thus field access should not get replaced