This table shows the members we create as a result of aspect declarations and weaving, and whether they should be marked synthetic or not. Inside aspects: ================== name type description synthetic ----------------------------------------------------------------------------------------- ajc$preClinit method start of static initialization yes ajc$postClinit method end of static initialization yes ajc$perCflowPush method start a cflow yes ajc$perCflowStack field cflow stack yes ajc$perSingletonInstance field singleton instance yes ajc$initFailureCause field exception during init yes ajc$withinType field type for perwithin aspects yes ajc$perObjectBind method creation of perobject aspects yes ajc$getInstance method perwithin instance accessor yes ajc$createAspectInstance method creates ptw aspect yes aspectOf method generated aspectOf method yes?* (it has no matching source code) hasAspect method generated hasAspect method yes?* (it has no matching source code) ajc$superDispatch$$name super method accessor (for around advice) yes ajc$inlineAccessMethod$$$ accessor for around advice yes ajc$inlineAccessFieldGet$... method for around advice yes ajc$inlineAccessFieldSet$... method for around advice yes ajc$preInterConstructor$$ method ITD cons yes ajc$postInterConstructor$$ method ITD cons yes ajc$interFieldInit$... method initializer for ITD field yes ajc$interFieldSetDispatch$... method set of ITD field yes ajc$interFieldGetDispatch$... method get of ITD field yes ajc$interMethodDispatch1$... method dispatch for ITD method yes ajc$interMethod$$$ method body of ITD method no ajc$before$... method before advice no ajc$after$... method after advice no ajc$around$... method around advice no ajc$afterReturning$... method after returning advice no ajc$afterThrowing$... method after throwing advice no ajc$declare... method declare statement yes ajc$if_... method if statement inside pointcut yes ajc$pointcut$... method pointcut declaration yes ajc$around$.....proceed method proceed method for around advice yes Inside classes: =================== ajc$pointcut$... method pointcut declaration yes Inside woven types: =================== ajc$$perObjectField field holds per-object aspect instance yes ajc$$ptwAspectInstance field holds per-type-within aspect yes $ajcMightHaveAspect interface added to per-xxx aspects n/a ajc$$perObjectGet method on types with ajcMightHaveAspect yes ajc$$perObjectSet method on types with ajcMightHaveAspect yes ajc$$localAspectOf method get ptw aspect instance yes ajc$privMethod$$$ method privileged accessor yes ajc$privFieldGet$$$ method privileged accessor yes ajc$privFieldSet$$$ method privileged mutator yes ajc$$ field @DeclareParents delegate yes ajc$interField$... field ITD-field yes ajc$interFieldGet$... method on target of ITD-field yes ajc$interFieldSet$... method on target of ITD-field yes ajc$interMethodDispatch2$... method on target of ITD-method yes ** note - also make sure that every ajc$ field we introduce in a woven type is marked as transient.