Buggy code:
public class Rmic extends MatchingTask { private static final String FAIL_MSG = "Rmic<seq2seq4repair_space>failed;<seq2seq4repair_space>see<seq2seq4repair_space>the<seq2seq4repair_space>compiler<seq2seq4repair_space>error<seq2seq4repair_space>output<seq2seq4repair_space>for<seq2seq4repair_space>details." ; private File baseDir ; private String classname ; private File sourceBase ; private String stubVersion ; private Path compileClasspath ; private Path extdirs ; private boolean verify = false ; private boolean filtering = false ; private boolean iiop = false ; private String iiopopts ; private boolean idl = false ; private String idlopts ; private boolean debug = false ; private boolean includeAntRuntime = true ; private boolean includeJavaRuntime = false ; private Vector compileList = new Vector ( ) ; private ClassLoader loader = null ; private FileUtils fileUtils = FileUtils . newFileUtils ( ) ; private FacadeTaskHelper facade ; public Rmic ( ) { } public void setBase ( File base ) { } public File getBase ( ) { } public void setClassname ( String classname ) { } public String getClassname ( ) { } public void setSourceBase ( File sourceBase ) { } public File getSourceBase ( ) { } public void setStubVersion ( String stubVersion ) { } public String getStubVersion ( ) { } public void setFiltering ( boolean filter ) { } public boolean getFiltering ( ) { } public void setDebug ( boolean debug ) { } public boolean getDebug ( ) { } public void setClasspath ( Path classpath ) { } public Path createClasspath ( ) { } public void setClasspathRef ( Reference r ) { } public Path getClasspath ( ) { } public void setVerify ( boolean verify ) { } public boolean getVerify ( ) { } public void setIiop ( boolean iiop ) { } public boolean getIiop ( ) { } public void setIiopopts ( String iiopopts ) { } public String getIiopopts ( ) { } public void setIdl ( boolean idl ) { } public boolean getIdl ( ) { } public void setIdlopts ( String idlopts ) { } public String getIdlopts ( ) { } public Vector getFileList ( ) { } public void setIncludeantruntime ( boolean include ) { } public boolean getIncludeantruntime ( ) { } public void setIncludejavaruntime ( boolean include ) { } public boolean getIncludejavaruntime ( ) { } public void setExtdirs ( Path extdirs ) { } public Path createExtdirs ( ) { } public Path getExtdirs ( ) { } public Vector getCompileList ( ) { } public void setCompiler ( String compiler ) { } public String getCompiler ( ) { } public Rmic . ImplementationSpecificArgument createCompilerArg ( ) { } public String [ ] getCurrentCompilerArgs ( ) { } public void execute ( ) throws BuildException { if ( ( baseDir ) == null ) { throw new BuildException ( "base<seq2seq4repair_space>attribute<seq2seq4repair_space>must<seq2seq4repair_space>be<seq2seq4repair_space>set!" , getLocation ( ) ) ; } if ( ! ( baseDir . exists ( ) ) ) { throw new BuildException ( "base<seq2seq4repair_space>does<seq2seq4repair_space>not<seq2seq4repair_space>exist!" , getLocation ( ) ) ; } if ( verify ) { log ( "Verify<seq2seq4repair_space>has<seq2seq4repair_space>been<seq2seq4repair_space>turned<seq2seq4repair_space>on." , MSG_VERBOSE ) ; } RmicAdapter adapter = RmicAdapterFactory . getRmic ( getCompiler ( ) , this ) ; adapter . setRmic ( this ) ; Path classpath = adapter . getClasspath ( ) ; <START_BUG> loader = new org . apache . tools . ant . AntClassLoader ( getProject ( ) , classpath ) ; <END_BUG> try { if ( ( classname ) == null ) { DirectoryScanner ds = this . getDirectoryScanner ( baseDir ) ; String [ ] files = ds . getIncludedFiles ( ) ; scanDir ( baseDir , files , adapter . getMapper ( ) ) ; } else { scanDir ( baseDir , new String [ ] { ( classname . replace ( '.' , File . separatorChar ) ) + ".class" } , adapter . getMapper ( ) ) ; } int fileCount = compileList . size ( ) ; if ( fileCount > 0 ) { log ( ( ( ( ( ( "RMI<seq2seq4repair_space>Compiling<seq2seq4repair_space>" + fileCount ) + "<seq2seq4repair_space>class" ) + ( fileCount > 1 ? "es" : "" ) ) + "<seq2seq4repair_space>to<seq2seq4repair_space>" ) + ( baseDir ) ) , MSG_INFO ) ; if ( ! ( adapter . execute ( ) ) ) { throw new BuildException ( Rmic . FAIL_MSG , getLocation ( ) ) ; } } if ( ( ( null != ( sourceBase ) ) && ( ! ( baseDir . equals ( sourceBase ) ) ) ) && ( fileCount > 0 ) ) { if ( idl ) { log ( "Cannot<seq2seq4repair_space>determine<seq2seq4repair_space>sourcefiles<seq2seq4repair_space>in<seq2seq4repair_space>idl<seq2seq4repair_space>mode,<seq2seq4repair_space>" , MSG_WARN ) ; log ( "sourcebase<seq2seq4repair_space>attribute<seq2seq4repair_space>will<seq2seq4repair_space>be<seq2seq4repair_space>ignored." , MSG_WARN ) ; } else { for ( int j = 0 ; j < fileCount ; j ++ ) { moveGeneratedFile ( baseDir , sourceBase , ( ( String ) ( compileList . elementAt ( j ) ) ) , adapter ) ; } } } } finally { compileList . removeAllElements ( ) ; } } private void moveGeneratedFile ( File baseDir , File sourceBaseFile , String classname , RmicAdapter adapter ) throws BuildException { } protected void scanDir ( File baseDir , String [ ] files , FileNameMapper mapper ) { } public boolean isValidRmiRemote ( String classname ) { } public Class getRemoteInterface ( Class testClass ) { } private boolean isValidRmiRemote ( Class testClass ) { } public ClassLoader getLoader ( ) { } public class ImplementationSpecificArgument extends org . apache . tools . ant . util . facade . ImplementationSpecificArgument { public void setCompiler ( String impl ) { } } }

Fix:
loader = getProject ( ) . createClassLoader ( classpath ) ;