Buggy code:
public class CompilerAdapter { private AjBuildManager buildManager = null ; private CompilerAdapter . MessageHandlerAdapter messageHandler = null ; private BuildNotifierAdapter currNotifier = null ; private boolean initialized = false ; private boolean structureDirty = true ; private boolean showInfoMessages = false ; private boolean nextBuild = false ; public CompilerAdapter ( ) { } public void showInfoMessages ( boolean show ) { } public boolean getShowInfoMessages ( ) { } public void nextBuildFresh ( ) { } public void requestCompileExit ( ) { } public boolean isStructureDirty ( ) { } public void setStructureDirty ( boolean structureDirty ) { } public boolean compile ( String configFile , BuildProgressMonitor progressMonitor , boolean buildModel ) { if ( configFile == null ) { Ajde . getDefault ( ) . getErrorHandler ( ) . handleError ( "Tried<seq2seq4repair_space>to<seq2seq4repair_space>build<seq2seq4repair_space>null<seq2seq4repair_space>config<seq2seq4repair_space>file." ) ; } init ( ) ; try { AjBuildConfig buildConfig = genBuildConfig ( configFile ) ; buildConfig . setGenerateModelMode ( buildModel ) ; if ( null == buildConfig ) { return false ; } <START_BUG> currNotifier = new BuildNotifierAdapter ( progressMonitor ) ; <END_BUG> buildManager . setProgressListener ( currNotifier ) ; messageHandler . setBuildNotifierAdapter ( currNotifier ) ; String rtInfo = buildManager . checkRtJar ( buildConfig ) ; if ( rtInfo != null ) { Ajde . getDefault ( ) . getErrorHandler ( ) . handleWarning ( ( ( "AspectJ<seq2seq4repair_space>Runtime<seq2seq4repair_space>error:<seq2seq4repair_space>" + rtInfo ) + "<seq2seq4repair_space>Please<seq2seq4repair_space>place<seq2seq4repair_space>a<seq2seq4repair_space>valid<seq2seq4repair_space>aspectjrt.jar<seq2seq4repair_space>on<seq2seq4repair_space>the<seq2seq4repair_space>classpath." ) ) ; return false ; } boolean incrementalEnabled = ( buildConfig . isIncrementalMode ( ) ) || ( buildConfig . isIncrementalFileMode ( ) ) ; if ( incrementalEnabled && ( nextBuild ) ) { return buildManager . incrementalBuild ( buildConfig , messageHandler ) ; } else { if ( incrementalEnabled ) { nextBuild = incrementalEnabled ; } return buildManager . batchBuild ( buildConfig , messageHandler ) ; } } catch ( AbortException e ) { final IMessage message = e . getIMessage ( ) ; if ( null == message ) { signalThrown ( e ) ; } else if ( null != ( message . getMessage ( ) ) ) { Ajde . getDefault ( ) . getErrorHandler ( ) . handleWarning ( message . getMessage ( ) ) ; } else if ( null != ( message . getThrown ( ) ) ) { signalThrown ( message . getThrown ( ) ) ; } else { signalThrown ( e ) ; } return false ; } catch ( Throwable t ) { signalThrown ( t ) ; return false ; } } public AjBuildConfig genBuildConfig ( String configFilePath ) { } protected void signalText ( String text ) { } protected void signalThrown ( Throwable t ) { } private static boolean configureBuildOptions ( AjBuildConfig config , BuildOptionsAdapter options , IMessageHandler handler ) { } private static void disableWarnings ( Map options ) { } private static void enableWarnings ( Map options , Set warnings ) { } private static boolean configureNonStandardOptions ( AjBuildConfig config , String nonStdOptions , IMessageHandler messageHandler ) { } private void configureProjectOptions ( AjBuildConfig config , ProjectPropertiesAdapter properties ) { } void join ( Collection target , Collection source ) { } private void init ( ) { } class MessageHandlerAdapter extends MessageHandler { private TaskListManager taskListManager ; private BuildNotifierAdapter buildNotifierAdapter ; public MessageHandlerAdapter ( ) { } public boolean handleMessage ( IMessage message ) throws AbortException { } public void setBuildNotifierAdapter ( BuildNotifierAdapter buildNotifierAdapter ) { } } }

Fix:
currNotifier = new BuildNotifierAdapter ( progressMonitor , buildManager ) ;