Buggy code:
private static final String PROBLEM_SEVERITY = "severity" ; private static final String PROBLEM_SOURCE = "problem_source" ; private static final String PROBLEM_SOURCE_START = "charStart" ; private static final String PROBLEM_SOURCE_END = "charEnd" ; private static final String PROBLEM_SUMMARY = "problem_summary" ; private static final String PROBLEM_TAG = "problem" ; private static final String PROBLEMS = "problems" ; private static final String SOURCE = "source" ; private static final String SOURCES = "sources" ; private static final String STATS = "stats" ; private static final String TASK = "task" ; private static final String TASKS = "tasks" ; private static final String TIME = "time" ; private static final String VALUE = "value" ; private static final String WARNING = "WARNING" ; private static final String XML_HEADER = "<?xml<seq2seq4repair_space>version=\"1.0\"<seq2seq4repair_space>encoding=\"UTF-8\"?>" ; private static final String XML_DTD_DECLARATION = "<!DOCTYPE<seq2seq4repair_space>compiler<seq2seq4repair_space>SYSTEM<seq2seq4repair_space>\"compiler.dtd\">" ; private static final HashMap FIELD_TABLE = new HashMap ( ) ; private static void appendEscapedChar ( StringBuffer buffer , char c ) { } private static String getEscaped ( String s ) { } private static String getReplacement ( char c ) { } private PrintWriter err ; boolean isXml ; private PrintWriter log ; private PrintWriter out ; private int tab ; private HashMap parameters ; public Logger ( PrintWriter out , PrintWriter err ) { } public String buildFileName ( String outputPath , String relativeFileName ) { } public void close ( ) { } public void compiling ( ) { } private void endLoggingProblems ( ) { } public void endLoggingSource ( ) { } public void endLoggingSources ( ) { } public void endLoggingTasks ( ) { } public void endTag ( String name ) { } private String getFieldName ( int id ) { } public void flush ( ) { } public void logClasspath ( String [ ] classpaths ) { } public void logClassFile ( boolean generatePackagesStructure , String outputPath , String relativeFileName ) { } public void logCommandLineArguments ( String [ ] commandLineArguments ) { } public void logException ( Exception e ) { } public void logIncorrectClasspath ( String wrongClasspath ) { } public void logNoClassFileCreated ( String fileName ) { } public void logNoClasspath ( ) { } public void logNumberOfClassFilesGenerated ( int exportedClassFilesCounter ) { } public void logOptions ( Map options ) { } private void logProblem ( IProblem problem , int localErrorCount , int globalErrorCount , char [ ] unitSource ) { } public void logProblemsSummary ( int globalProblemsCount , int globalErrorsCount , int globalWarningsCount ) { if ( this . isXml ) { parameters . clear ( ) ; parameters . put ( Main . Logger . NUMBER_OF_PROBLEMS , new Integer ( globalProblemsCount ) ) ; parameters . put ( Main . Logger . NUMBER_OF_ERRORS , new Integer ( globalErrorsCount ) ) ; parameters . put ( Main . Logger . NUMBER_OF_WARNINGS , new Integer ( globalWarningsCount ) ) ; this . printTag ( Main . Logger . PROBLEM_SUMMARY , parameters , true , true ) ; } if ( globalProblemsCount == 1 ) { this . printErr ( Main . bind ( "compile.oneProblem" ) ) ; } else { String errorMessage = null ; String warningMessage = null ; if ( globalErrorsCount > 0 ) { if ( globalErrorsCount == 1 ) { errorMessage = Main . bind ( "compile.oneError" ) ; } else { errorMessage = Main . bind ( "compile.severalErrors" , String . valueOf ( globalErrorsCount ) ) ; } } if ( globalWarningsCount > 0 ) { if ( globalWarningsCount == 1 ) { warningMessage = Main . bind ( "compile.oneWarning" ) ; } else { warningMessage = Main . bind ( "compile.severalWarnings" , String . valueOf ( globalWarningsCount ) ) ; } } if ( ( errorMessage == null ) || ( warningMessage == null ) ) { if ( errorMessage == null ) { this . printErr ( Main . bind ( "compile.severalProblemsErrorsOrWarnings" , String . valueOf ( globalProblemsCount ) , warningMessage ) ) ; } else { this . printErr ( Main . bind ( "compile.severalProblemsErrorsOrWarnings" , String . valueOf ( globalProblemsCount ) , errorMessage ) ) ; } } else { <START_BUG> this . printErr ( Main . bind ( "compile.severalProblemsErrorsOrWarnings" , new String [ ] { String . valueOf ( globalProblemsCount ) , errorMessage , warningMessage } ) ) ; <END_BUG> } } } public int logProblems ( IProblem [ ] problems , char [ ] unitSource , Main currentMain ) { } public void logProgress ( ) { } public void logRepetition ( int i , int repetitions ) { } public void printStats ( Main main ) { } public void logTiming ( long time , long lineCount ) { } public void logUsage ( String usage ) { } public void logVersion ( ) { } public void logWrongJDK ( ) { } private void logXmlProblem ( IProblem problem , char [ ] unitSource ) { } private void logXmlTask ( IProblem problem , char [ ] unitSource ) { } private void printErr ( String s ) { } private void printlnErr ( String s ) { } private void printlnOut ( String s ) { } public void printNewLine ( ) { } private void printOut ( char c ) { } public void printTag ( String name , HashMap params , boolean insertNewLine , boolean closeTag ) { } public void setLog ( String logFileName ) throws InvalidInputException { } private void startLoggingProblems ( int errors , int warnings ) { } public void startLoggingSource ( CompilationResult compilationResult ) { } public void startLoggingSources ( ) { } public void startLoggingTasks ( int tasks ) { } } public static ResourceBundle bundle ; public static final String bundleName = "org.eclipse.jdt.internal.compiler.batch.messages" ; public String [ ] classpaths ; public String destinationPath ; public String [ ] encodings ; public Main . Logger logger ; public int exportedClassFilesCounter ; public String [ ] filenames ; public boolean generatePackagesStructure ; public int globalErrorsCount ; public int globalProblemsCount ;

Fix:
this . printErr ( Main . bind ( "compile.severalProblemsErrorsAndWarnings" , new String [ ] { String . valueOf ( globalProblemsCount ) , errorMessage , warningMessage } ) ) ;