Buggy code:
public class ProblemReporter extends ProblemHandler implements ProblemReasons { public ReferenceContext referenceContext ; public ProblemReporter ( IErrorHandlingPolicy policy , CompilerOptions options , IProblemFactory problemFactory ) { } public void abortDueToInternalError ( String errorMessage ) { } public void abortDueToInternalError ( String errorMessage , AstNode location ) { } public void abstractMethodCannotBeOverridden ( SourceTypeBinding type , MethodBinding concreteMethod ) { } public void abstractMethodInAbstractClass ( SourceTypeBinding type , AbstractMethodDeclaration methodDecl ) { } public void abstractMethodMustBeImplemented ( SourceTypeBinding type , MethodBinding abstractMethod ) { } public void abstractMethodNeedingNoBody ( AbstractMethodDeclaration method ) { } public void alreadyDefinedLabel ( char [ ] labelName , AstNode location ) { } public void anonymousClassCannotExtendFinalClass ( Expression expression , TypeBinding type ) { } public void argumentTypeCannotBeVoid ( SourceTypeBinding type , AbstractMethodDeclaration methodDecl , Argument arg ) { } public void argumentTypeCannotBeVoidArray ( SourceTypeBinding type , AbstractMethodDeclaration methodDecl , Argument arg ) { } public void argumentTypeProblem ( SourceTypeBinding type , AbstractMethodDeclaration methodDecl , Argument arg , TypeBinding expectedType ) { } public void arrayConstantsOnlyInArrayInitializers ( int sourceStart , int sourceEnd ) { } public void assignmentHasNoEffect ( Assignment assignment , char [ ] name ) { } public void attemptToReturnNonVoidExpression ( ReturnStatement returnStatement , TypeBinding expectedType ) { } public void attemptToReturnVoidValue ( ReturnStatement returnStatement ) { } public void bytecodeExceeds64KLimit ( AbstractMethodDeclaration location ) { } public void bytecodeExceeds64KLimit ( TypeDeclaration location ) { } public void cannotAllocateVoidArray ( Expression expression ) { } public void cannotAssignToFinalField ( FieldBinding field , AstNode location , boolean allowBlankFinalFieldAssignment ) { } public void cannotAssignToFinalOuterLocal ( LocalVariableBinding local , AstNode location ) { } public void cannotDeclareLocalInterface ( char [ ] interfaceName , int sourceStart , int sourceEnd ) { } public void cannotDefineDimensionsAndInitializer ( ArrayAllocationExpression expresssion ) { } public void cannotDireclyInvokeAbstractMethod ( MessageSend messageSend , MethodBinding method ) { } public void cannotImportPackage ( ImportReference importRef ) { } public void cannotInstantiate ( TypeReference typeRef , TypeBinding type ) { } public void cannotReferToNonFinalOuterLocal ( LocalVariableBinding local , AstNode location ) { } public void cannotReturnInInitializer ( AstNode location ) { } public void cannotThrowNull ( ThrowStatement statement ) { } public void cannotThrowType ( SourceTypeBinding type , AbstractMethodDeclaration methodDecl , TypeReference exceptionType , TypeBinding expectedType ) { } public void cannotUseSuperInJavaLangObject ( AstNode reference ) { } public void cannotUseSuperInCodeSnippet ( int start , int end ) { } public void caseExpressionMustBeConstant ( Expression expression ) { } public void classExtendFinalClass ( SourceTypeBinding type , TypeReference superclass , TypeBinding expectedType ) { } public void codeSnippetMissingClass ( String missing , int start , int end ) { } public void codeSnippetMissingMethod ( String className , String missingMethod , String argumentTypes , int start , int end ) { } public int computeSeverity ( int problemId ) { } public void conditionalArgumentsIncompatibleTypes ( ConditionalExpression expression , TypeBinding trueType , TypeBinding falseType ) { } public void conflictingImport ( ImportReference importRef ) { } public void constantOutOfFormat ( NumberLiteral lit ) { } public void constantOutOfRange ( Literal lit ) { } public void deprecatedField ( FieldBinding field , AstNode location ) { } public void deprecatedMethod ( MethodBinding method , AstNode location ) { } public void deprecatedType ( TypeBinding type , AstNode location ) { } public void duplicateCase ( Case statement , Constant constant ) { } public void duplicateDefaultCase ( DefaultCase statement ) { } public void duplicateFieldInType ( SourceTypeBinding type , FieldDeclaration fieldDecl ) { } public void duplicateImport ( ImportReference importRef ) { } public void duplicateInitializationOfBlankFinalField ( FieldBinding field , Reference reference ) { } public void duplicateInitializationOfFinalLocal ( LocalVariableBinding local , AstNode location ) { String [ ] arguments = new String [ ] { new String ( local . readableName ( ) ) } ; <START_BUG> this . handle ( IProblem . DuplicateFinalLocalInitialization , arguments , arguments , location . sourceStart , location . sourceEnd ) ; <END_BUG> } public void duplicateMethodInType ( SourceTypeBinding type , AbstractMethodDeclaration methodDecl ) { } public void duplicateModifierForField ( ReferenceBinding type , FieldDeclaration fieldDecl ) { } public void duplicateModifierForMethod ( ReferenceBinding type , AbstractMethodDeclaration methodDecl ) { } public void duplicateModifierForType ( SourceTypeBinding type ) { } public void duplicateModifierForVariable ( LocalDeclaration localDecl , boolean complainForArgument ) { } public void duplicateNestedType ( TypeDeclaration typeDecl ) { } public void duplicateSuperinterface ( SourceTypeBinding type , TypeDeclaration typeDecl , ReferenceBinding superType ) { } public void duplicateTypes ( CompilationUnitDeclaration compUnitDecl , TypeDeclaration typeDecl ) { } public void errorNoMethodFor ( MessageSend messageSend , TypeBinding recType , TypeBinding [ ] params ) { } public void errorThisSuperInStatic ( AstNode reference ) { } public void exceptionTypeProblem ( SourceTypeBinding type , AbstractMethodDeclaration methodDecl , TypeReference exceptionType , TypeBinding expectedType ) { } public void fieldsOrThisBeforeConstructorInvocation ( ThisReference reference ) { } public void fieldTypeProblem ( SourceTypeBinding type , FieldDeclaration fieldDecl , TypeBinding expectedType ) { } public void finalMethodCannotBeOverridden ( MethodBinding currentMethod , MethodBinding inheritedMethod ) { } public void forwardReference ( Reference reference , int indexInQualification , TypeBinding type ) { } private void handle ( int problemId , String [ ] problemArguments , String [ ] messageArguments , int problemStartPosition , int problemEndPosition ) { } private void handle ( int problemId , String [ ] problemArguments , String [ ] messageArguments , int severity , int problemStartPosition , int problemEndPosition ) { } private void handle ( int problemId , String [ ] problemArguments , String [ ] messageArguments , int problemStartPosition , int problemEndPosition , CompilationResult unitResult ) { } public void hidingEnclosingType ( TypeDeclaration typeDecl ) { } public void hierarchyCircularity ( SourceTypeBinding sourceType , ReferenceBinding superType , TypeReference reference ) { } public void hierarchyHasProblems ( SourceTypeBinding type ) { } public void illegalAbstractModifierCombinationForMethod ( ReferenceBinding type , AbstractMethodDeclaration methodDecl ) { } public void illegalModifierCombinationFinalAbstractForClass ( SourceTypeBinding type ) { } public void illegalModifierCombinationFinalVolatileForField ( ReferenceBinding type , FieldDeclaration fieldDecl ) { } public void illegalModifierForClass ( SourceTypeBinding type ) { }

Fix:
this . handle ( ( local . isBlankFinal ( ) ? IProblem . DuplicateFinalLocalInitialization : IProblem . NonBlankFinalLocalAssignment ) , arguments , arguments , location . sourceStart , location . sourceEnd ) ;