Buggy code:
public class SourceElementParser extends CommentRecorderParser { public ISourceElementRequestor requestor ; ISourceType sourceType ; boolean reportReferenceInfo ; char [ ] [ ] typeNames ; char [ ] [ ] superTypeNames ; int nestedTypeIndex ; SourceElementParser . LocalDeclarationVisitor localDeclarationVisitor = null ; CompilerOptions options ; HashtableOfObjectToInt sourceEnds = new HashtableOfObjectToInt ( ) ; HashMap nodesToCategories = new HashMap ( ) ; boolean useSourceJavadocParser = true ; public class LocalDeclarationVisitor extends ASTVisitor { ArrayList declaringTypes ; public void pushDeclaringType ( TypeDeclaration declaringType ) { } public void popDeclaringType ( ) { } public TypeDeclaration peekDeclaringType ( ) { } public boolean visit ( TypeDeclaration typeDeclaration , BlockScope scope ) { } public boolean visit ( TypeDeclaration typeDeclaration , ClassScope scope ) { } } public SourceElementParser ( final ISourceElementRequestor requestor , IProblemFactory problemFactory , CompilerOptions options , boolean reportLocalDeclarations , boolean optimizeStringLiterals ) { } public SourceElementParser ( ISourceElementRequestor requestor , IProblemFactory problemFactory , CompilerOptions options , boolean reportLocalDeclarations , boolean optimizeStringLiterals , boolean useSourceJavadocParser ) { } private void acceptJavadocTypeReference ( Expression expression ) { } public void addUnknownRef ( NameReference nameRef ) { } public void checkComment ( ) { } protected void classInstanceCreation ( boolean alwaysQualified ) { } private long [ ] collectAnnotationPositions ( Annotation [ ] annotations ) { } protected void consumeAnnotationAsModifier ( ) { } protected void consumeClassInstanceCreationExpressionQualifiedWithTypeArguments ( ) { } protected void consumeAnnotationTypeDeclarationHeaderName ( ) { } protected void consumeClassHeaderName1 ( ) { } protected void consumeClassInstanceCreationExpressionWithTypeArguments ( ) { } protected void consumeConstructorHeaderName ( ) { } protected void consumeConstructorHeaderNameWithTypeParameters ( ) { } protected void consumeEnumConstantWithClassBody ( ) { } protected void consumeEnumConstantNoClassBody ( ) { } protected void consumeEnumHeaderName ( ) { } protected void consumeExitVariableWithInitialization ( ) { } protected void consumeExitVariableWithoutInitialization ( ) { } protected void consumeFieldAccess ( boolean isSuperAccess ) { } protected void consumeFormalParameter ( boolean isVarArgs ) { } protected void consumeInterfaceHeaderName1 ( ) { } protected void consumeMemberValuePair ( ) { } protected void consumeMarkerAnnotation ( ) { } protected void consumeMethodHeaderName ( boolean isAnnotationMethod ) { } protected void consumeMethodHeaderNameWithTypeParameters ( boolean isAnnotationMethod ) { } protected void consumeMethodInvocationName ( ) { } protected void consumeMethodInvocationNameWithTypeArguments ( ) { } protected void consumeMethodInvocationPrimary ( ) { } protected void consumeMethodInvocationPrimaryWithTypeArguments ( ) { } protected void consumeMethodInvocationSuper ( ) { } protected void consumeMethodInvocationSuperWithTypeArguments ( ) { } protected void consumeNormalAnnotation ( ) { } protected void consumeSingleMemberAnnotation ( ) { } protected void consumeSingleStaticImportDeclarationName ( ) { } protected void consumeSingleTypeImportDeclarationName ( ) { } protected void consumeStaticImportOnDemandDeclarationName ( ) { } protected void consumeTypeImportOnDemandDeclarationName ( ) { } public MethodDeclaration convertToMethodDeclaration ( ConstructorDeclaration c , CompilationResult compilationResult ) { } protected CompilationUnitDeclaration endParse ( int act ) { } private ISourceElementRequestor . TypeParameterInfo [ ] getTypeParameterInfos ( TypeParameter [ ] typeParameters ) { } public TypeReference getTypeReference ( int dim ) { } public NameReference getUnspecifiedReference ( ) { } public NameReference getUnspecifiedReferenceOptimized ( ) { } private boolean hasDeprecatedAnnotation ( Annotation [ ] annotations ) { } protected ImportReference newImportReference ( char [ ] [ ] tokens , long [ ] positions , boolean onDemand , int mod ) { } protected QualifiedNameReference newQualifiedNameReference ( char [ ] [ ] tokens , long [ ] positions , int sourceStart , int sourceEnd ) { } protected SingleNameReference newSingleNameReference ( char [ ] source , long positions ) { } public void notifySourceElementRequestor ( CompilationUnitDeclaration parsedUnit ) { } public void notifySourceElementRequestor ( AbstractMethodDeclaration methodDeclaration ) { } public void notifySourceElementRequestor ( FieldDeclaration fieldDeclaration , TypeDeclaration declaringType ) { } public void notifySourceElementRequestor ( ImportReference importReference , boolean isPackage ) { if ( isPackage ) { requestor . acceptPackage ( importReference . declarationSourceStart , importReference . declarationSourceEnd , CharOperation . concatWith ( importReference . getImportName ( ) , '.' ) ) ; } else { <START_BUG> requestor . acceptImport ( importReference . declarationSourceStart , importReference . declarationSourceEnd , importReference . tokens , importReference . onDemand , importReference . modifiers ) ; <END_BUG> } } public void notifySourceElementRequestor ( TypeDeclaration typeDeclaration , boolean notifyTypePresence , TypeDeclaration declaringType ) { } public void parseCompilationUnit ( ICompilationUnit unit , int start , int end , boolean fullParse ) { } public CompilationUnitDeclaration parseCompilationUnit ( ICompilationUnit unit , boolean fullParse ) { } public void parseTypeMemberDeclarations ( ISourceType type , ICompilationUnit sourceUnit , int start , int end , boolean needReferenceInfo ) { } public void parseTypeMemberDeclarations ( char [ ] contents , int start , int end ) { } private static void quickSort ( ASTNode [ ] sortedCollection , int left , int right ) { } private void rememberCategories ( ) { } private void reset ( ) { } private int sourceEnd ( TypeDeclaration typeDeclaration ) { } private void visitIfNeeded ( AbstractMethodDeclaration method ) { } private void visitIfNeeded ( FieldDeclaration field , TypeDeclaration declaringType ) { } private void visitIfNeeded ( Initializer initializer ) { } }

Fix:
requestor . acceptImport ( importReference . declarationSourceStart , importReference . declarationSourceEnd , importReference . tokens , ( ( ( importReference . bits ) & ( ASTNode . OnDemand ) ) != 0 ) , importReference . modifiers ) ;