Buggy code:
public class InterTypeFieldDeclaration extends InterTypeDeclaration { public Expression initialization ; public InterTypeFieldDeclaration ( CompilationResult result , TypeReference onType ) { } public void parseStatements ( Parser parser , CompilationUnitDeclaration unit ) { } public void resolveOnType ( ClassScope classScope ) { } public void resolve ( ClassScope upperScope ) { } public void setInitialization ( Expression initialization ) { } public EclipseTypeMunger build ( ClassScope classScope ) { } private AjAttribute makeAttribute ( ) { } public void generateCode ( ClassScope classScope , ClassFile classFile ) { } private void generateDispatchMethods ( ClassScope classScope , ClassFile classFile ) { } private void generateDispatchMethod ( EclipseFactory world , ResolvedMember sig , TypeX aspectType , ClassScope classScope , ClassFile classFile , boolean isGetter ) { MethodBinding binding ; if ( isGetter ) { binding = world . makeMethodBinding ( AjcMemberMaker . interFieldGetDispatcher ( sig , aspectType ) ) ; } else { binding = world . makeMethodBinding ( AjcMemberMaker . interFieldSetDispatcher ( sig , aspectType ) ) ; } classFile . generateMethodInfoHeader ( binding ) ; int methodAttributeOffset = classFile . contentsOffset ; <START_BUG> int attributeNumber = classFile . generateMethodInfoAttribute ( binding , makeEffectiveSignatureAttribute ( sig , ( isGetter ? Shadow . FieldGet : Shadow . FieldSet ) , false ) ) ; <END_BUG> int codeAttributeOffset = classFile . contentsOffset ; classFile . generateCodeAttributeHeader ( ) ; CodeStream codeStream = classFile . codeStream ; codeStream . reset ( this , classFile ) ; FieldBinding classField = world . makeFieldBinding ( AjcMemberMaker . interFieldClassField ( sig , aspectType ) ) ; codeStream . initializeMaxLocals ( binding ) ; if ( isGetter ) { if ( onTypeBinding . isInterface ( ) ) { TypeX declaringTX = sig . getDeclaringType ( ) ; ResolvedTypeX declaringRTX = world . getWorld ( ) . resolve ( declaringTX , munger . getSourceLocation ( ) ) ; MethodBinding readMethod = world . makeMethodBinding ( AjcMemberMaker . interFieldInterfaceGetter ( sig , declaringRTX , aspectType ) ) ; generateInterfaceReadBody ( binding , readMethod , codeStream ) ; } else { generateClassReadBody ( binding , classField , codeStream ) ; } } else { if ( onTypeBinding . isInterface ( ) ) { MethodBinding writeMethod = world . makeMethodBinding ( AjcMemberMaker . interFieldInterfaceSetter ( sig , world . getWorld ( ) . resolve ( sig . getDeclaringType ( ) , munger . getSourceLocation ( ) ) , aspectType ) ) ; generateInterfaceWriteBody ( binding , writeMethod , codeStream ) ; } else { generateClassWriteBody ( binding , classField , codeStream ) ; } } AstUtil . generateReturn ( binding . returnType , codeStream ) ; classFile . completeCodeAttribute ( codeAttributeOffset ) ; attributeNumber ++ ; classFile . completeMethodInfo ( methodAttributeOffset , attributeNumber ) ; } private void generateInterfaceReadBody ( MethodBinding binding , MethodBinding readMethod , CodeStream codeStream ) { } private void generateInterfaceWriteBody ( MethodBinding binding , MethodBinding writeMethod , CodeStream codeStream ) { } private void generateClassReadBody ( MethodBinding binding , FieldBinding field , CodeStream codeStream ) { } private void generateClassWriteBody ( MethodBinding binding , FieldBinding field , CodeStream codeStream ) { } protected Kind getShadowKindForBody ( ) { } }

Fix:
int attributeNumber = classFile . generateMethodInfoAttribute ( binding , false , makeEffectiveSignatureAttribute ( sig , ( isGetter ? Shadow . FieldGet : Shadow . FieldSet ) , false ) ) ;