Buggy code:
public class AjBuildManager { static final boolean FAIL_IF_RUNTIME_NOT_FOUND = false ; private IProgressListener progressListener = null ; private int compiledCount ; private int sourceFileCount ; private IHierarchy structureModel ; public AjBuildConfig buildConfig ; AjState state = new AjState ( this ) ; BcelWeaver bcelWeaver ; public BcelWorld bcelWorld ; public CountingMessageHandler handler ; public AjBuildManager ( IMessageHandler holder ) { } public boolean doGenerateModel ( ) { } public boolean batchBuild ( AjBuildConfig buildConfig , IMessageHandler baseHandler ) throws IOException , AbortException { } public boolean incrementalBuild ( AjBuildConfig buildConfig , IMessageHandler baseHandler ) throws IOException , AbortException { } protected boolean doBuild ( AjBuildConfig buildConfig , IMessageHandler baseHandler , boolean batch ) throws IOException , AbortException { } private void setupModel ( ) { } private void initBcelWorld ( IMessageHandler handler ) throws IOException { <START_BUG> bcelWorld = new BcelWorld ( buildConfig . getClasspath ( ) , handler ) ; <END_BUG> bcelWorld . setXnoInline ( buildConfig . isXnoInline ( ) ) ; bcelWeaver = new BcelWeaver ( bcelWorld ) ; for ( Iterator i = buildConfig . getAspectpath ( ) . iterator ( ) ; i . hasNext ( ) ; ) { File f = ( ( File ) ( i . next ( ) ) ) ; bcelWeaver . addLibraryJarFile ( f ) ; } String lintMode = buildConfig . getLintMode ( ) ; if ( buildConfig . getLintMode ( ) . equals ( AJLINT_DEFAULT ) ) { bcelWorld . getLint ( ) . loadDefaultProperties ( ) ; } else { bcelWorld . getLint ( ) . setAll ( buildConfig . getLintMode ( ) ) ; } if ( ( buildConfig . getLintSpecFile ( ) ) != null ) { bcelWorld . getLint ( ) . setFromProperties ( buildConfig . getLintSpecFile ( ) ) ; } for ( Iterator i = buildConfig . getInJars ( ) . iterator ( ) ; i . hasNext ( ) ; ) { File inJar = ( ( File ) ( i . next ( ) ) ) ; bcelWeaver . addJarFile ( inJar , buildConfig . getOutputDir ( ) , false ) ; } for ( Iterator i = buildConfig . getInpath ( ) . iterator ( ) ; i . hasNext ( ) ; ) { File inPathElement = ( ( File ) ( i . next ( ) ) ) ; bcelWeaver . addJarFile ( inPathElement , buildConfig . getOutputDir ( ) , true ) ; } if ( ( buildConfig . getSourcePathResources ( ) ) != null ) { for ( Iterator i = buildConfig . getSourcePathResources ( ) . keySet ( ) . iterator ( ) ; i . hasNext ( ) ; ) { String resource = ( ( String ) ( i . next ( ) ) ) ; bcelWeaver . addResource ( resource , ( ( File ) ( buildConfig . getSourcePathResources ( ) . get ( resource ) ) ) , buildConfig . getOutputDir ( ) ) ; } } bcelWorld . resolve ( "org.aspectj.lang.JoinPoint" ) ; } public World getWorld ( ) { } void addAspectClassFilesToWeaver ( List addedClassFiles ) throws IOException { } public boolean weaveAndGenerateClassFiles ( ) throws IOException { } public FileSystem getLibraryAccess ( String [ ] classpaths , String [ ] filenames ) { } public IProblemFactory getProblemFactory ( ) { } public CompilationUnit [ ] getCompilationUnits ( String [ ] filenames , String [ ] encodings ) { } public String extractDestinationPathFromSourceFile ( CompilationResult result ) { } public void performCompilation ( List files ) { } public ICompilerRequestor getBatchRequestor ( ) { } private boolean proceedOnError ( ) { } public void outputClassFiles ( CompilationResult unitResult ) { } private void setBuildConfig ( AjBuildConfig buildConfig ) { } String makeClasspathString ( ) { } public String checkRtJar ( AjBuildConfig buildConfig ) { } public String toString ( ) { } public void setStructureModel ( IHierarchy structureModel ) { } public IHierarchy getStructureModel ( ) { } public IProgressListener getProgressListener ( ) { } public void setProgressListener ( IProgressListener progressListener ) { } }

Fix:
bcelWorld = new BcelWorld ( buildConfig . getClasspath ( ) , handler , null ) ;