Buggy code:
private [ ] [ ] baseTypes = new char [ ] [ ] { "boolean" . toCharArray ( ) , "byte" . toCharArray ( ) , "char" . toCharArray ( ) , "double" . toCharArray ( ) , "float" . toCharArray ( ) , "int" . toCharArray ( ) , "long" . toCharArray ( ) , "short" . toCharArray ( ) , "void" . toCharArray ( ) } ; static final char [ ] classField = "class" . toCharArray ( ) ; static final char [ ] lengthField = "length" . toCharArray ( ) ; static final char [ ] cloneMethod = "clone" . toCharArray ( ) ; static final char [ ] THIS = "this" . toCharArray ( ) ; static final char [ ] THROWS = "throws" . toCharArray ( ) ; static InvocationSite FakeInvocationSite = new InvocationSite ( ) { public boolean isSuperAccess ( ) { } public boolean isTypeAccess ( ) { } public void setActualReceiverType ( ReferenceBinding receiverType ) { } public void setDepth ( int depth ) { } public void setFieldIndex ( int depth ) { } } ; public CompletionEngine ( ISearchableNameEnvironment nameEnvironment , ICompletionRequestor requestor , Map settings , IJavaProject javaProject ) { } public void acceptClass ( char [ ] packageName , char [ ] className , int modifiers ) { } public void acceptInterface ( char [ ] packageName , char [ ] interfaceName , int modifiers ) { } public void acceptPackage ( char [ ] packageName ) { } public void acceptType ( char [ ] packageName , char [ ] typeName ) { } private void complete ( AstNode astNode , AstNode astNodeParent , Binding qualifiedBinding , Scope scope ) { } public void complete ( IType type , char [ ] snippet , int position , char [ ] [ ] localVariableTypeNames , char [ ] [ ] localVariableNames , int [ ] localVariableModifiers , boolean isStatic ) { } private Initializer parseSnippeInitializer ( char [ ] snippet , int position , char [ ] [ ] localVariableTypeNames , char [ ] [ ] localVariableNames , int [ ] localVariableModifiers , boolean isStatic ) { } public void complete ( ICompilationUnit sourceUnit , int completionPosition , int pos ) { } private TypeBinding [ ] computeTypes ( Expression [ ] arguments , BlockScope scope ) { } private void findAnonymousType ( ReferenceBinding currentType , TypeBinding [ ] argTypes , Scope scope , InvocationSite invocationSite ) { } private void findClassField ( char [ ] token , TypeBinding receiverType , Scope scope ) { } private void findExplicitConstructors ( char [ ] name , ReferenceBinding currentType , MethodScope scope , InvocationSite invocationSite ) { } private void findConstructors ( ReferenceBinding currentType , TypeBinding [ ] argTypes , Scope scope , InvocationSite invocationSite , boolean forAnonymousType ) { } private void findFields ( char [ ] fieldName , FieldBinding [ ] fields , Scope scope , ObjectVector fieldsFound , ObjectVector localsFound , boolean onlyStaticFields , ReferenceBinding receiverType , InvocationSite invocationSite , Scope invocationScope , boolean implicitCall ) { } private void findFields ( char [ ] fieldName , ReferenceBinding receiverType , Scope scope , ObjectVector fieldsFound , ObjectVector localsFound , boolean onlyStaticFields , InvocationSite invocationSite , Scope invocationScope , boolean implicitCall ) { } private void findFieldsAndMethods ( char [ ] token , TypeBinding receiverType , Scope scope , InvocationSite invocationSite , Scope invocationScope , boolean implicitCall , boolean superCall ) { } private void findImports ( CompletionOnImportReference importReference ) { } private void findKeywords ( char [ ] keyword , char [ ] [ ] choices ) { } private void findKeywordsForMember ( char [ ] token , int modifiers ) { } private void findMemberTypes ( char [ ] typeName , ReferenceBinding [ ] memberTypes , ObjectVector typesFound , ReferenceBinding receiverType , SourceTypeBinding invocationType ) { } private void findMemberTypes ( char [ ] typeName , ReferenceBinding receiverType , Scope scope , SourceTypeBinding typeInvocation ) { } private void findIntefacesMethods ( char [ ] selector , TypeBinding [ ] argTypes , ReferenceBinding receiverType , ReferenceBinding [ ] itsInterfaces , Scope scope , ObjectVector methodsFound , boolean onlyStaticMethods , boolean exactMatch , boolean isCompletingDeclaration , InvocationSite invocationSite , Scope invocationScope , boolean implicitCall , boolean superCall ) { } private void findImplicitMessageSends ( char [ ] token , TypeBinding [ ] argTypes , Scope scope , InvocationSite invocationSite , Scope invocationScope ) { } private void findLocalMethods ( char [ ] methodName , TypeBinding [ ] argTypes , MethodBinding [ ] methods , Scope scope , ObjectVector methodsFound , boolean onlyStaticMethods , boolean exactMatch , ReferenceBinding receiverType , InvocationSite invocationSite , Scope invocationScope , boolean implicitCall , boolean superCall ) { } int computeRelevanceForCaseMatching ( char [ ] token , char [ ] proposalName ) { } private int computeRelevanceForClass ( ) { } private int computeRelevanceForInterface ( ) { } private int computeRelevanceForQualification ( boolean prefixRequired ) { } private int computeRelevanceForStatic ( boolean onlyStatic , boolean isStatic ) { } private int computeRelevanceForException ( char [ ] proposalName ) { } private int computeRelevanceForExpectingType ( TypeBinding proposalType ) { } private int computeRelevanceForExpectingType ( char [ ] packageName , char [ ] typeName ) { } int computeRelevanceForInterestingProposal ( ) { } private int computeRelevanceForInterestingProposal ( Binding binding ) { } private void computeUninterestingBindings ( AstNode parent , Scope scope ) { } private void findLocalMethodDeclarations ( char [ ] methodName , MethodBinding [ ] methods , Scope scope , ObjectVector methodsFound , boolean onlyStaticMethods , boolean exactMatch , ReferenceBinding receiverType ) { } private void findMethods ( char [ ] selector , TypeBinding [ ] argTypes , ReferenceBinding receiverType , Scope scope , ObjectVector methodsFound , boolean onlyStaticMethods , boolean exactMatch , boolean isCompletingDeclaration , InvocationSite invocationSite , Scope invocationScope , boolean implicitCall , boolean superCall ) { } private char [ ] [ ] findMethodParameterNames ( MethodBinding method , char [ ] [ ] parameterTypeNames ) { } private void findNestedTypes ( char [ ] typeName , SourceTypeBinding currentType , Scope scope ) { if ( typeName == null ) return ; int typeLength = typeName . length ; while ( scope != null ) { switch ( scope . kind ) { case Scope . METHOD_SCOPE : case Scope . BLOCK_SCOPE : BlockScope blockScope = ( ( BlockScope ) ( scope ) ) ; <START_BUG> next : for ( int i = 0 , length = blockScope . scopeIndex ; i < length ; i ++ ) { <END_BUG>

Fix:
next : for ( int i = 0 , length = blockScope . subscopeCount ; i < length ; i ++ ) {