Buggy code:
public List missingTypes = null ; public Set visitedTypes ; public static final int INITIAL_CONTENTS_SIZE = 400 ; public static final int INITIAL_HEADER_SIZE = 1500 ; public static final int INNER_CLASSES_SIZE = 5 ; public static void createProblemType ( TypeDeclaration typeDeclaration , CompilationResult unitResult ) { } public static ClassFile getNewInstance ( SourceTypeBinding typeBinding ) { } protected ClassFile ( ) { } public ClassFile ( SourceTypeBinding typeBinding ) { } public void addAbstractMethod ( AbstractMethodDeclaration method , MethodBinding methodBinding ) { } public void addAttributes ( ) { } public void addDefaultAbstractMethods ( ) { } private int addFieldAttributes ( FieldBinding fieldBinding , int fieldAttributeOffset ) { } private void addFieldInfo ( FieldBinding fieldBinding ) { } public void addFieldInfos ( ) { } private void addMissingAbstractProblemMethod ( MethodDeclaration methodDeclaration , MethodBinding methodBinding , CategorizedProblem problem , CompilationResult compilationResult ) { } public void addProblemClinit ( CategorizedProblem [ ] problems ) { } public void addProblemConstructor ( AbstractMethodDeclaration method , MethodBinding methodBinding , CategorizedProblem [ ] problems ) { } public void addProblemConstructor ( AbstractMethodDeclaration method , MethodBinding methodBinding , CategorizedProblem [ ] problems , int savedOffset ) { } public void addProblemMethod ( AbstractMethodDeclaration method , MethodBinding methodBinding , CategorizedProblem [ ] problems ) { } public void addProblemMethod ( AbstractMethodDeclaration method , MethodBinding methodBinding , CategorizedProblem [ ] problems , int savedOffset ) { } public void addSpecialMethods ( ) { } public void addSyntheticConstructorAccessMethod ( SyntheticMethodBinding methodBinding ) { } public void addSyntheticEnumValueOfMethod ( SyntheticMethodBinding methodBinding ) { } public void addSyntheticEnumValuesMethod ( SyntheticMethodBinding methodBinding ) { } public void addSyntheticFieldReadAccessMethod ( SyntheticMethodBinding methodBinding ) { } public void addSyntheticFieldWriteAccessMethod ( SyntheticMethodBinding methodBinding ) { } public void addSyntheticMethodAccessMethod ( SyntheticMethodBinding methodBinding ) { } public void addSyntheticSwitchTable ( SyntheticMethodBinding methodBinding ) { } public void completeCodeAttribute ( int codeAttributeOffset ) { } public void completeCodeAttributeForClinit ( int codeAttributeOffset ) { } public void completeCodeAttributeForClinit ( int codeAttributeOffset , int problemLine ) { } public void completeCodeAttributeForMissingAbstractProblemMethod ( MethodBinding binding , int codeAttributeOffset , int [ ] startLineIndexes , int problemLine ) { } public void completeCodeAttributeForProblemMethod ( AbstractMethodDeclaration method , MethodBinding binding , int codeAttributeOffset , int [ ] startLineIndexes , int problemLine ) { } public void completeCodeAttributeForSyntheticMethod ( boolean hasExceptionHandlers , SyntheticMethodBinding binding , int codeAttributeOffset , int [ ] startLineIndexes ) { } public void completeCodeAttributeForSyntheticMethod ( SyntheticMethodBinding binding , int codeAttributeOffset , int [ ] startLineIndexes ) { } public void completeMethodInfo ( int methodAttributeOffset , int attributeNumber ) { } public char [ ] fileName ( ) { } private void generateAnnotation ( Annotation annotation , int currentOffset ) { } public void generateCodeAttributeHeader ( ) { } private void generateElementValue ( Expression defaultValue , TypeBinding memberValuePairReturnType , int attributeOffset ) { } private void generateElementValue ( int attributeOffset , Expression defaultValue , Constant constant , TypeBinding binding ) { } private void generateElementValueForNonConstantExpression ( Expression defaultValue , int attributeOffset , TypeBinding defaultValueBinding ) { } public int generateMethodInfoAttribute ( MethodBinding methodBinding ) { } public int generateMethodInfoAttribute ( MethodBinding methodBinding , AnnotationMethodDeclaration declaration ) { } public void generateMethodInfoHeader ( MethodBinding methodBinding ) { } public void generateMethodInfoHeader ( MethodBinding methodBinding , int accessFlags ) { ( this . methodCount ) ++ ; if ( ( ( this . contentsOffset ) + 10 ) >= ( this . contents . length ) ) { resizeContents ( 10 ) ; } if ( ( this . targetJDK ) < ( ClassFileConstants . JDK1_5 ) ) { accessFlags &= ~ ( ( ClassFileConstants . AccSynthetic ) | ( ClassFileConstants . AccVarargs ) ) ; } <START_BUG> if ( ( methodBinding . isConstructor ( ) ) && ( ( ( methodBinding . tagBits ) & ( TagBits . ClearPrivateModifier ) ) != 0 ) ) { <END_BUG> accessFlags &= ~ ( ClassFileConstants . AccPrivate ) ; } this . contents [ ( ( this . contentsOffset ) ++ ) ] = ( ( byte ) ( accessFlags > > 8 ) ) ; this . contents [ ( ( this . contentsOffset ) ++ ) ] = ( ( byte ) ( accessFlags ) ) ; int nameIndex = this . constantPool . literalIndex ( methodBinding . selector ) ; this . contents [ ( ( this . contentsOffset ) ++ ) ] = ( ( byte ) ( nameIndex > > 8 ) ) ; this . contents [ ( ( this . contentsOffset ) ++ ) ] = ( ( byte ) ( nameIndex ) ) ; int descriptorIndex = this . constantPool . literalIndex ( methodBinding . signature ( this ) ) ; this . contents [ ( ( this . contentsOffset ) ++ ) ] = ( ( byte ) ( descriptorIndex > > 8 ) ) ; this . contents [ ( ( this . contentsOffset ) ++ ) ] = ( ( byte ) ( descriptorIndex ) ) ; } public void generateMethodInfoHeaderForClinit ( ) { } public void generateMissingAbstractMethods ( MethodDeclaration [ ] methodDeclarations , CompilationResult compilationResult ) { } private void generateMissingTypesAttribute ( ) { } private int generateRuntimeAnnotations ( final Annotation [ ] annotations ) { } private int generateRuntimeAnnotationsForParameters ( Argument [ ] arguments ) { } public byte [ ] getBytes ( ) { } public char [ ] [ ] getCompoundName ( ) { } private int getParametersCount ( char [ ] methodSignature ) { } private char [ ] getReturnType ( char [ ] methodSignature ) { } private final int i4At ( byte [ ] reference , int relativeOffset , int structOffset ) { } protected void initByteArrays ( ) { } public void initialize ( SourceTypeBinding aType , ClassFile parentClassFile , boolean createProblemType ) { } private void initializeDefaultLocals ( StackMapFrame frame , MethodBinding methodBinding , int maxLocals , int codeLength ) { } private void initializeLocals ( boolean isStatic , int currentPC , StackMapFrame currentFrame ) { }

Fix:
if ( ( ( methodBinding . tagBits ) & ( TagBits . ClearPrivateModifier ) ) != 0 ) {