Buggy code:
private void printlnErr ( String s ) { } private void printlnOut ( String s ) { } public void printNewLine ( ) { } private void printOut ( char c ) { } public void printStats ( ) { } private void printTag ( String name , HashMap params , boolean insertNewLine , boolean closeTag ) { } public void setEmacs ( ) { } 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 final String bundleName = "org.eclipse.jdt.internal.compiler.batch.messages" ; public static final int DEFAULT_SIZE_CLASSPATH = 4 ; public static final String NONE = "none" ; public static boolean compile ( String commandLine ) { } public static boolean compile ( String commandLine , PrintWriter outWriter , PrintWriter errWriter ) { } public static File [ ] [ ] getLibrariesFiles ( File [ ] files ) { } public static void main ( String [ ] argv ) { } public static String [ ] tokenize ( String commandLine ) { } public Compiler batchCompiler ; public ResourceBundle bundle ; protected FileSystem . Classpath [ ] checkedClasspaths ; public Locale compilerLocale ; public CompilerOptions compilerOptions ; public String destinationPath ; public String [ ] destinationPaths ; private boolean didSpecifySource ; private boolean didSpecifyTarget ; public String [ ] encodings ; public int exportedClassFilesCounter ; public String [ ] filenames ; public int globalErrorsCount ; public int globalProblemsCount ; public int globalTasksCount ; public int globalWarningsCount ; private File javaHomeCache ; private boolean javaHomeChecked = false ; public long lineCount ; public String log ; public Main . Logger logger ; public int maxProblems ; public boolean noWarn = false ; public Map options ; protected PrintWriter out ; public boolean proceed = true ; public boolean proceedOnError = false ; public boolean produceRefInfo = false ; public int repetitions ; public boolean showProgress = false ; public long startTime ; public boolean systemExitWhenFinished = true ; public long [ ] times ; public int timesCounter ; public boolean timing = false ; public boolean verbose = false ; private String [ ] expandedCommandLine ; private PrintWriter err ; public Main ( PrintWriter outWriter , PrintWriter errWriter , boolean systemExitWhenFinished ) { } public Main ( PrintWriter outWriter , PrintWriter errWriter , boolean systemExitWhenFinished , Map customDefaultOptions ) { } protected void addNewEntry ( ArrayList paths , String currentClasspathName , ArrayList currentRuleSpecs , String customEncoding , String destPath , boolean isSourceOnly , boolean rejectDestinationPathOnJars ) throws InvalidInputException { } public String bind ( String id ) { } public String bind ( String id , String binding ) { } public String bind ( String id , String binding1 , String binding2 ) { } public String bind ( String id , String [ ] arguments ) { } public boolean compile ( String [ ] argv ) { } protected void handleWarningToken ( String token , boolean isEnabling , boolean useEnableJavadoc ) throws InvalidInputException { } protected ArrayList handleBootclasspath ( ArrayList bootclasspaths , String customEncoding ) throws InvalidInputException { } protected ArrayList handleClasspath ( ArrayList classpaths , String customEncoding ) throws InvalidInputException { } protected ArrayList handleExtdirs ( ArrayList extdirsClasspaths ) { } protected ArrayList handleEndorseddirs ( ArrayList endorsedDirClasspaths ) { } public void configure ( String [ ] argv ) throws InvalidInputException { } protected void disableWarnings ( ) { } public String extractDestinationPathFromSourceFile ( CompilationResult result ) { } public ICompilerRequestor getBatchRequestor ( ) { } public CompilationUnit [ ] getCompilationUnits ( ) throws InvalidInputException { } public IErrorHandlingPolicy getHandlingPolicy ( ) { } public File getJavaHome ( ) { } public FileSystem getLibraryAccess ( ) { } public IProblemFactory getProblemFactory ( ) { } protected void initialize ( PrintWriter outWriter , PrintWriter errWriter , boolean systemExit ) { } protected void initialize ( PrintWriter outWriter , PrintWriter errWriter , boolean systemExit , Map customDefaultOptions ) { } public void outputClassFiles ( CompilationResult unitResult ) { } public void performCompilation ( ) throws InvalidInputException { } protected void initializeAnnotationProcessorManager ( ) { try { <START_BUG> Class c = Class . forName ( "org.eclipse.jdt.internal.compiler.apt.dispatch.AnnotationProcessorManager" ) ; <END_BUG> AbstractAnnotationProcessorManager annotationManager = ( ( AbstractAnnotationProcessorManager ) ( c . newInstance ( ) ) ) ; annotationManager . configure ( this , this . expandedCommandLine ) ; annotationManager . setErr ( this . err ) ; annotationManager . setOut ( this . out ) ; this . batchCompiler . annotationProcessorManager = annotationManager ; } catch ( ClassNotFoundException e ) { } catch ( InstantiationException e ) { throw new org . eclipse . jdt . internal . compiler . problem . AbortCompilation ( ) ; } catch ( IllegalAccessException e ) { throw new org . eclipse . jdt . internal . compiler . problem . AbortCompilation ( ) ; } } public void printUsage ( ) { } private void printUsage ( String sectionID ) { } public void processPathEntries ( final int defaultSize , final ArrayList paths , final String currentPath , String customEncoding , boolean isSourceOnly , boolean rejectDestinationPathOnJars ) throws InvalidInputException { } private int processPaths ( String [ ] args , int index , String currentArg , ArrayList paths ) throws InvalidInputException { } private int processPaths ( String [ ] args , int index , String currentArg , String [ ] paths ) throws InvalidInputException { } public void relocalize ( ) { } private void relocalize ( Locale locale ) { } public void setLocale ( Locale locale ) { } protected void setDestinationPath ( String dest ) { } protected void setPaths ( ArrayList bootclasspaths , String sourcepathClasspathArg , ArrayList sourcepathClasspaths , ArrayList classpaths , ArrayList extdirsClasspaths , ArrayList endorsedDirClasspaths , String customEncoding ) throws InvalidInputException { } protected void validateOptions ( boolean didSpecifyCompliance ) throws InvalidInputException { } }

Fix:
Class c = Class . forName ( "org.eclipse.jdt.internal.compiler.apt.dispatch.BatchAnnotationProcessorManager" ) ;