Buggy code:
public class SourceTypeConverter { static class AnonymousMemberFound extends RuntimeException { private static final long serialVersionUID = 1L ; } public static final int FIELD = 1 ; public static final int CONSTRUCTOR = 2 ; public static final int METHOD = 4 ; public static final int MEMBER_TYPE = 8 ; public static final int FIELD_INITIALIZATION = 16 ; public static final int FIELD_AND_METHOD = ( ( SourceTypeConverter . FIELD ) | ( SourceTypeConverter . CONSTRUCTOR ) ) | ( SourceTypeConverter . METHOD ) ; public static final int LOCAL_TYPE = 32 ; public static final int NONE = 0 ; private int flags ; private CompilationUnitDeclaration unit ; private Parser parser ; private ProblemReporter problemReporter ; private ICompilationUnit cu ; private char [ ] source ; private HashMap annotationPositions ; private boolean has1_5Compliance ; int namePos ; private SourceTypeConverter ( int flags , ProblemReporter problemReporter ) { } public static CompilationUnitDeclaration buildCompilationUnit ( ISourceType [ ] sourceTypes , int flags , ProblemReporter problemReporter , CompilationResult compilationResult ) { } private CompilationUnitDeclaration convert ( ISourceType [ ] sourceTypes , CompilationResult compilationResult ) throws JavaModelException { } private void addIdentifiers ( String typeSignature , int start , int endExclusive , int identCount , ArrayList fragments ) { } private Initializer convert ( InitializerElementInfo initializerInfo , CompilationResult compilationResult ) throws JavaModelException { } private FieldDeclaration convert ( SourceField fieldHandle , TypeDeclaration type , CompilationResult compilationResult ) throws JavaModelException { } private QualifiedAllocationExpression convert ( IJavaElement localType , FieldDeclaration enumConstant , CompilationResult compilationResult ) throws JavaModelException { } private AbstractMethodDeclaration convert ( SourceMethod methodHandle , SourceMethodElementInfo methodInfo , CompilationResult compilationResult ) throws JavaModelException { AbstractMethodDeclaration method ; int start = methodInfo . getNameSourceStart ( ) ; int end = methodInfo . getNameSourceEnd ( ) ; TypeParameter [ ] typeParams = null ; if ( this . has1_5Compliance ) { char [ ] [ ] typeParameterNames = methodInfo . getTypeParameterNames ( ) ; if ( typeParameterNames != null ) { int parameterCount = typeParameterNames . length ; if ( parameterCount > 0 ) { char [ ] [ ] [ ] typeParameterBounds = methodInfo . getTypeParameterBounds ( ) ; typeParams = new TypeParameter [ parameterCount ] ; for ( int i = 0 ; i < parameterCount ; i ++ ) { typeParams [ i ] = createTypeParameter ( typeParameterNames [ i ] , typeParameterBounds [ i ] , start , end ) ; } } } } int modifiers = methodInfo . getModifiers ( ) ; if ( methodInfo . isConstructor ( ) ) { ConstructorDeclaration decl = new ConstructorDeclaration ( compilationResult ) ; <START_BUG> decl . isDefaultConstructor = false ; <END_BUG> method = decl ; decl . typeParameters = typeParams ; } else { MethodDeclaration decl ; if ( methodInfo . isAnnotationMethod ( ) ) { AnnotationMethodDeclaration annotationMethodDeclaration = new AnnotationMethodDeclaration ( compilationResult ) ; SourceAnnotationMethodInfo annotationMethodInfo = ( ( SourceAnnotationMethodInfo ) ( methodInfo ) ) ; boolean hasDefaultValue = ( ( annotationMethodInfo . defaultValueStart ) != ( - 1 ) ) || ( ( annotationMethodInfo . defaultValueEnd ) != ( - 1 ) ) ; if ( ( ( this . flags ) & ( SourceTypeConverter . FIELD_INITIALIZATION ) ) != 0 ) { if ( hasDefaultValue ) { char [ ] defaultValueSource = CharOperation . subarray ( getSource ( ) , annotationMethodInfo . defaultValueStart , ( ( annotationMethodInfo . defaultValueEnd ) + 1 ) ) ; if ( defaultValueSource != null ) { Expression expression = parseMemberValue ( defaultValueSource ) ; if ( expression != null ) { annotationMethodDeclaration . defaultValue = expression ; } } else { hasDefaultValue = false ; } } } if ( hasDefaultValue ) modifiers |= ClassFileConstants . AccAnnotationDefault ; decl = annotationMethodDeclaration ; } else { decl = new MethodDeclaration ( compilationResult ) ; } decl . returnType = createTypeReference ( methodInfo . getReturnTypeName ( ) , start , end ) ; decl . typeParameters = typeParams ; method = decl ; } method . selector = methodHandle . getElementName ( ) . toCharArray ( ) ; boolean isVarargs = ( modifiers & ( ClassFileConstants . AccVarargs ) ) != 0 ; method . modifiers = modifiers & ( ~ ( ClassFileConstants . AccVarargs ) ) ; method . sourceStart = start ; method . sourceEnd = end ; method . declarationSourceStart = methodInfo . getDeclarationSourceStart ( ) ; method . declarationSourceEnd = methodInfo . getDeclarationSourceEnd ( ) ; if ( this . has1_5Compliance ) { method . annotations = convertAnnotations ( methodHandle ) ; } String [ ] argumentTypeSignatures = methodHandle . getParameterTypes ( ) ; char [ ] [ ] argumentNames = methodInfo . getArgumentNames ( ) ; int argumentCount = ( argumentTypeSignatures == null ) ? 0 : argumentTypeSignatures . length ; if ( argumentCount > 0 ) { long position = ( ( ( long ) ( start ) ) << 32 ) + end ; method . arguments = new Argument [ argumentCount ] ; for ( int i = 0 ; i < argumentCount ; i ++ ) { TypeReference typeReference = createTypeReference ( argumentTypeSignatures [ i ] , start , end ) ; if ( isVarargs && ( i == ( argumentCount - 1 ) ) ) { typeReference . bits |= ASTNode . IsVarArgs ; } method . arguments [ i ] = new Argument ( argumentNames [ i ] , position , typeReference , ClassFileConstants . AccDefault ) ; } } char [ ] [ ] exceptionTypeNames = methodInfo . getExceptionTypeNames ( ) ; int exceptionCount = ( exceptionTypeNames == null ) ? 0 : exceptionTypeNames . length ; if ( exceptionCount > 0 ) { method . thrownExceptions = new TypeReference [ exceptionCount ] ; for ( int i = 0 ; i < exceptionCount ; i ++ ) { method . thrownExceptions [ i ] = createTypeReference ( exceptionTypeNames [ i ] , start , end ) ; } }

Fix:
decl . bits &= ~ ( ASTNode . IsDefaultConstructor ) ;