Buggy code:
public void methodCanBePotentiallyDeclaredStatic ( MethodDeclaration methodDecl ) { } public void missingDeprecatedAnnotationForField ( FieldDeclaration field ) { } public void missingDeprecatedAnnotationForMethod ( AbstractMethodDeclaration method ) { } public void missingDeprecatedAnnotationForType ( TypeDeclaration type ) { } public void notAFunctionalInterface ( TypeDeclaration type ) { } public void missingEnumConstantCase ( SwitchStatement switchStatement , FieldBinding enumConstant ) { } public void missingDefaultCase ( SwitchStatement switchStatement , boolean isEnumSwitch , TypeBinding expressionType ) { } public void missingOverrideAnnotation ( AbstractMethodDeclaration method ) { } public void missingOverrideAnnotationForInterfaceMethodImplementation ( AbstractMethodDeclaration method ) { } public void missingReturnType ( AbstractMethodDeclaration methodDecl ) { } public void missingSemiColon ( Expression expression ) { } public void missingSerialVersion ( TypeDeclaration typeDecl ) { } public void missingSynchronizedOnInheritedMethod ( MethodBinding currentMethod , MethodBinding inheritedMethod ) { } public void missingTypeInConstructor ( ASTNode location , MethodBinding constructor ) { } public void missingTypeInLambda ( LambdaExpression lambda , MethodBinding method ) { } public void missingTypeInMethod ( ASTNode astNode , MethodBinding method ) { } public void missingValueForAnnotationMember ( Annotation annotation , char [ ] memberName ) { } public void mustDefineDimensionsOrInitializer ( ArrayAllocationExpression expression ) { } public void mustUseAStaticMethod ( MessageSend messageSend , MethodBinding method ) { } public void nativeMethodsCannotBeStrictfp ( ReferenceBinding type , AbstractMethodDeclaration methodDecl ) { } public void needImplementation ( ASTNode location ) { } public void needToEmulateFieldAccess ( FieldBinding field , ASTNode location , boolean isReadAccess ) { } public void needToEmulateMethodAccess ( MethodBinding method , ASTNode location ) { } public void noAdditionalBoundAfterTypeVariable ( TypeReference boundReference ) { } private int nodeSourceEnd ( ASTNode node ) { } private int nodeSourceEnd ( Binding field , ASTNode node ) { } private int nodeSourceEnd ( Binding field , ASTNode node , int index ) { } private int nodeSourceStart ( ASTNode node ) { } private int nodeSourceStart ( Binding field , ASTNode node ) { } private int nodeSourceStart ( Binding field , ASTNode node , int index ) { } public void noMoreAvailableSpaceForArgument ( LocalVariableBinding local , ASTNode location ) { } public void noMoreAvailableSpaceForConstant ( TypeDeclaration typeDeclaration ) { } public void noMoreAvailableSpaceForLocal ( LocalVariableBinding local , ASTNode location ) { } public void noMoreAvailableSpaceInConstantPool ( TypeDeclaration typeDeclaration ) { } public void nonExternalizedStringLiteral ( ASTNode location ) { } public void nonGenericTypeCannotBeParameterized ( int index , ASTNode location , TypeBinding type , TypeBinding [ ] argumentTypes ) { } public void nonStaticAccessToStaticField ( ASTNode location , FieldBinding field ) { } public void nonStaticAccessToStaticField ( ASTNode location , FieldBinding field , int index ) { } public void nonStaticAccessToStaticMethod ( ASTNode location , MethodBinding method ) { } public void nonStaticContextForEnumMemberType ( SourceTypeBinding type ) { } public void noSuchEnclosingInstance ( TypeBinding targetType , ASTNode location , boolean isConstructorCall ) { int id ; if ( isConstructorCall ) { id = IProblem . EnclosingInstanceInConstructorCall ; } else if ( ( location instanceof ExplicitConstructorCall ) && ( ( ( ( ExplicitConstructorCall ) ( location ) ) . accessMode ) == ( ExplicitConstructorCall . ImplicitSuper ) ) ) { id = IProblem . MissingEnclosingInstanceForConstructorCall ; } else if ( ( location instanceof AllocationExpression ) && ( ( ( ( AllocationExpression ) ( location ) ) . binding . declaringClass . isMemberType ( ) ) || ( ( ( ( AllocationExpression ) ( location ) ) . binding . declaringClass . isAnonymousType ( ) ) && ( ( ( AllocationExpression ) ( location ) ) . binding . declaringClass . superclass ( ) . isMemberType ( ) ) ) ) ) { id = IProblem . MissingEnclosingInstance ; } else { id = IProblem . IncorrectEnclosingInstanceReference ; } <START_BUG> this . handle ( id , new String [ ] { new String ( targetType . readableName ( ) ) } , new String [ ] { new String ( targetType . shortReadableName ( ) ) } , location . sourceStart , location . sourceEnd ) ; <END_BUG> } public void notCompatibleTypesError ( EqualExpression expression , TypeBinding leftType , TypeBinding rightType ) { } public void notCompatibleTypesError ( InstanceOfExpression expression , TypeBinding leftType , TypeBinding rightType ) { } public void notCompatibleTypesErrorInForeach ( Expression expression , TypeBinding leftType , TypeBinding rightType ) { } public void objectCannotBeGeneric ( TypeDeclaration typeDecl ) { } public void objectCannotHaveSuperTypes ( SourceTypeBinding type ) { } public void objectMustBeClass ( SourceTypeBinding type ) { } public void operatorOnlyValidOnNumericType ( CompoundAssignment assignment , TypeBinding leftType , TypeBinding rightType ) { } public void overridesDeprecatedMethod ( MethodBinding localMethod , MethodBinding inheritedMethod ) { } public void overridesMethodWithoutSuperInvocation ( MethodBinding localMethod ) { } public void overridesPackageDefaultMethod ( MethodBinding localMethod , MethodBinding inheritedMethod ) { } public void packageCollidesWithType ( CompilationUnitDeclaration compUnitDecl ) { } public void packageIsNotExpectedPackage ( CompilationUnitDeclaration compUnitDecl ) { } public void parameterAssignment ( LocalVariableBinding local , ASTNode location ) { } private String parameterBoundAsString ( TypeVariableBinding typeVariable , boolean makeShort ) { } public void parameterizedMemberTypeMissingArguments ( ASTNode location , TypeBinding type , int index ) { } public void parseError ( int startPosition , int endPosition , int currentToken , char [ ] currentTokenSource , String errorTokenName , String [ ] possibleTokens ) { } public void parseErrorDeleteToken ( int start , int end , int currentKind , char [ ] errorTokenSource , String errorTokenName ) { } public void parseErrorDeleteTokens ( int start , int end ) { } public void parseErrorInsertAfterToken ( int start , int end , int currentKind , char [ ] errorTokenSource , String errorTokenName , String expectedToken ) { } public void parseErrorInsertBeforeToken ( int start , int end , int currentKind , char [ ] errorTokenSource , String errorTokenName , String expectedToken ) { } public void parseErrorInsertToComplete ( int start , int end , String inserted , String completed ) { } public void parseErrorInsertToCompletePhrase ( int start , int end , String inserted ) { } public void parseErrorInsertToCompleteScope ( int start , int end , String inserted ) { }

Fix:
this . handle ( id , new String [ ] { new String ( targetType . readableName ( ) ) } , new String [ ] { new String ( targetType . shortReadableName ( ) ) } , location . sourceStart , ( location instanceof LambdaExpression ? ( ( LambdaExpression ) ( location ) ) . diagnosticsSourceEnd ( ) : location . sourceEnd ) ) ;