Buggy code:
private boolean iContractMissing = false ; private File srcDir = null ; private File instrumentDir = null ; private File buildDir = null ; private File repositoryDir = null ; private File repBuildDir = null ; private Path classpath = null ; private String failThrowable = "java.lang.Error" ; private String verbosity = "error*" ; private boolean quiet = false ; private boolean internalcompilation = false ; private File controlFile = null ; private boolean pre = true ; private boolean preModified = false ; private boolean post = true ; private boolean postModified = false ; private boolean invariant = true ; private boolean invariantModified = false ; private boolean instrumentall = false ; private boolean updateIcontrol = false ; private File classDir = null ; public void setBuilddir ( File buildDir ) { } public void setClassdir ( File classDir ) { } public void setClasspath ( Path path ) { } public void setClasspathRef ( Reference reference ) { } public void setControlfile ( File controlFile ) { } public void setFailthrowable ( String clazz ) { } public void setInstrumentdir ( File instrumentDir ) { } public void setInvariant ( boolean invariant ) { } public void setPost ( boolean post ) { } public void setPre ( boolean pre ) { } public void setQuiet ( boolean quiet ) { } public void setRepbuilddir ( File repBuildDir ) { } public void setRepositorydir ( File repositoryDir ) { } public void setSrcdir ( File srcDir ) { } public void setTargets ( File targets ) { } public void setUpdateicontrol ( boolean updateIcontrol ) { } public void setVerbosity ( String verbosity ) { } public Path createClasspath ( ) { } public void execute ( ) throws TaskException { preconditions ( ) ; scan ( ) ; if ( dirty ) { boolean useControlFile = ( ( controlFile ) != null ) && ( controlFile . exists ( ) ) ; if ( useControlFile && ( ! ( preModified ) ) ) { pre = false ; } if ( useControlFile && ( ! ( postModified ) ) ) { post = false ; } if ( useControlFile && ( ! ( invariantModified ) ) ) { invariant = false ; } if ( ( ( ( pre ) || ( post ) ) || ( invariant ) ) && ( ( controlFile ) != null ) ) { getLogger ( ) . info ( "WARNING:<seq2seq4repair_space>specifying<seq2seq4repair_space>pre,post<seq2seq4repair_space>or<seq2seq4repair_space>invariant<seq2seq4repair_space>will<seq2seq4repair_space>override<seq2seq4repair_space>control<seq2seq4repair_space>file<seq2seq4repair_space>settings" ) ; } getProject ( ) . addProjectListener ( new IContract . IContractPresenceDetector ( ) ) ; Mkdir mkdir = ( ( Mkdir ) ( getProject ( ) . createTask ( "mkdir" ) ) ) ; mkdir . setDir ( instrumentDir ) ; mkdir . execute ( ) ; mkdir . setDir ( buildDir ) ; mkdir . execute ( ) ; mkdir . setDir ( repositoryDir ) ; mkdir . execute ( ) ; Path baseClasspath = createClasspath ( ) ; <START_BUG> String compiler = getProject ( ) . getProperty ( "build.compiler" ) ; <END_BUG> IContract . ClasspathHelper classpathHelper = new IContract . ClasspathHelper ( compiler ) ; classpathHelper . modify ( baseClasspath ) ; Path beforeInstrumentationClasspath = ( ( Path ) ( baseClasspath . clone ( ) ) ) ; beforeInstrumentationClasspath . append ( new Path ( srcDir . getAbsolutePath ( ) ) ) ; Path afterInstrumentationClasspath = ( ( Path ) ( baseClasspath . clone ( ) ) ) ; afterInstrumentationClasspath . append ( new Path ( instrumentDir . getAbsolutePath ( ) ) ) ; afterInstrumentationClasspath . append ( new Path ( repositoryDir . getAbsolutePath ( ) ) ) ; afterInstrumentationClasspath . append ( new Path ( srcDir . getAbsolutePath ( ) ) ) ; afterInstrumentationClasspath . append ( new Path ( buildDir . getAbsolutePath ( ) ) ) ; Path repositoryClasspath = ( ( Path ) ( baseClasspath . clone ( ) ) ) ; repositoryClasspath . append ( new Path ( instrumentDir . getAbsolutePath ( ) ) ) ; repositoryClasspath . append ( new Path ( srcDir . getAbsolutePath ( ) ) ) ; repositoryClasspath . append ( new Path ( repositoryDir . getAbsolutePath ( ) ) ) ; repositoryClasspath . append ( new Path ( buildDir . getAbsolutePath ( ) ) ) ; Path iContractClasspath = ( ( Path ) ( baseClasspath . clone ( ) ) ) ; iContractClasspath . append ( new Path ( ( ( ( ( ( ( ( System . getProperty ( "java.home" ) ) + ( File . separator ) ) + ".." ) + ( File . separator ) ) + "lib" ) + ( File . separator ) ) + "tools.jar" ) ) ) ; iContractClasspath . append ( new Path ( srcDir . getAbsolutePath ( ) ) ) ; iContractClasspath . append ( new Path ( repositoryDir . getAbsolutePath ( ) ) ) ; iContractClasspath . append ( new Path ( instrumentDir . getAbsolutePath ( ) ) ) ; iContractClasspath . append ( new Path ( buildDir . getAbsolutePath ( ) ) ) ; Java iContract = ( ( Java ) ( getProject ( ) . createTask ( "java" ) ) ) ; iContract . setFork ( true ) ; iContract . setClassname ( "com.reliablesystems.iContract.Tool" ) ; iContract . setClasspath ( iContractClasspath ) ; StringBuffer args = new StringBuffer ( ) ; args . append ( directiveString ( ) ) ; args . append ( "-v" ) . append ( verbosity ) . append ( "<seq2seq4repair_space>" ) ; args . append ( "-b" ) . append ( "\"" ) . append ( icCompiler ) . append ( "<seq2seq4repair_space>-classpath<seq2seq4repair_space>" ) . append ( beforeInstrumentationClasspath ) . append ( "\"<seq2seq4repair_space>" ) ; args . append ( "-c" ) . append ( "\"" ) . append ( icCompiler ) . append ( "<seq2seq4repair_space>-classpath<seq2seq4repair_space>" ) . append ( afterInstrumentationClasspath ) . append ( "<seq2seq4repair_space>-d<seq2seq4repair_space>" ) . append ( buildDir ) . append ( "\"<seq2seq4repair_space>" ) ;

Fix:
String compiler = getProperty ( "build.compiler" ) . toString ( ) ;