Buggy code:
boolean cacheFileExists = true ; long cacheLastModified = Long . MAX_VALUE ; if ( ( cache ) != null ) { cacheFile = new File ( cache , Depend . CACHE_FILE_NAME ) ; cacheFileExists = cacheFile . exists ( ) ; cacheLastModified = cacheFile . lastModified ( ) ; if ( cacheFileExists ) { dependencyMap = readCachedDependencies ( cacheFile ) ; } } Enumeration classfileEnum = getClassFiles ( destPath ) . elements ( ) ; while ( classfileEnum . hasMoreElements ( ) ) { Depend . ClassFileInfo info = ( ( Depend . ClassFileInfo ) ( classfileEnum . nextElement ( ) ) ) ; log ( ( "Adding<seq2seq4repair_space>class<seq2seq4repair_space>info<seq2seq4repair_space>for<seq2seq4repair_space>" + ( info . className ) ) , MSG_DEBUG ) ; classFileInfoMap . put ( info . className , info ) ; Vector dependencyList = null ; if ( ( cache ) != null ) { if ( cacheFileExists && ( cacheLastModified > ( info . absoluteFile . lastModified ( ) ) ) ) { dependencyList = ( ( Vector ) ( dependencyMap . get ( info . className ) ) ) ; } } if ( dependencyList == null ) { DependencyAnalyzer analyzer = new AntAnalyzer ( ) ; analyzer . addRootClass ( info . className ) ; analyzer . addClassPath ( destPath ) ; analyzer . setClosure ( false ) ; dependencyList = new Vector ( ) ; Enumeration depEnum = analyzer . getClassDependencies ( ) ; while ( depEnum . hasMoreElements ( ) ) { dependencyList . addElement ( depEnum . nextElement ( ) ) ; } cacheDirty = true ; dependencyMap . put ( info . className , dependencyList ) ; } Enumeration depEnum = dependencyList . elements ( ) ; while ( depEnum . hasMoreElements ( ) ) { String dependentClass = ( ( String ) ( depEnum . nextElement ( ) ) ) ; Hashtable affectedClasses = ( ( Hashtable ) ( affectedClassMap . get ( dependentClass ) ) ) ; if ( affectedClasses == null ) { affectedClasses = new Hashtable ( ) ; affectedClassMap . put ( dependentClass , affectedClasses ) ; } affectedClasses . put ( info . className , info ) ; } } classpathDependencies = null ; Path checkPath = getCheckClassPath ( ) ; if ( checkPath != null ) { classpathDependencies = new Hashtable ( ) ; AntClassLoader loader = getProject ( ) . createClassLoader ( checkPath ) ; Hashtable classpathFileCache = new Hashtable ( ) ; Object nullFileMarker = new Object ( ) ; for ( Enumeration e = dependencyMap . keys ( ) ; e . hasMoreElements ( ) ; ) { String className = ( ( String ) ( e . nextElement ( ) ) ) ; Vector dependencyList = ( ( Vector ) ( dependencyMap . get ( className ) ) ) ; Hashtable dependencies = new Hashtable ( ) ; classpathDependencies . put ( className , dependencies ) ; Enumeration e2 = dependencyList . elements ( ) ; while ( e2 . hasMoreElements ( ) ) { String dependency = ( ( String ) ( e2 . nextElement ( ) ) ) ; Object classpathFileObject = classpathFileCache . get ( dependency ) ; if ( classpathFileObject == null ) { classpathFileObject = nullFileMarker ; if ( ( ! ( dependency . startsWith ( "java." ) ) ) && ( ! ( dependency . startsWith ( "javax." ) ) ) ) { URL classURL = loader . getResource ( ( ( dependency . replace ( '.' , '//' ) ) + ".class" ) ) ; if ( classURL != null ) { if ( classURL . getProtocol ( ) . equals ( "jar" ) ) { String jarFilePath = classURL . getFile ( ) ; int classMarker = jarFilePath . indexOf ( '!' ) ; jarFilePath = jarFilePath . substring ( 0 , classMarker ) ; if ( jarFilePath . startsWith ( "file:" ) ) { classpathFileObject = new File ( FileUtils . getFileUtils ( ) . fromURI ( jarFilePath ) ) ; } else { throw new IOException ( ( "Bizarre<seq2seq4repair_space>nested<seq2seq4repair_space>path<seq2seq4repair_space>in<seq2seq4repair_space>jar:<seq2seq4repair_space>protocol:<seq2seq4repair_space>" + jarFilePath ) ) ; } } else if ( classURL . getProtocol ( ) . equals ( "file" ) ) { classpathFileObject = new File ( FileUtils . getFileUtils ( ) . fromURI ( classURL . toExternalForm ( ) ) ) ; } log ( ( ( ( ( ( "Class<seq2seq4repair_space>" + className ) + "<seq2seq4repair_space>depends<seq2seq4repair_space>on<seq2seq4repair_space>" ) + classpathFileObject ) + "<seq2seq4repair_space>due<seq2seq4repair_space>to<seq2seq4repair_space>" ) + dependency ) , MSG_DEBUG ) ; } } classpathFileCache . put ( dependency , classpathFileObject ) ; } <START_BUG> if ( ( classpathFileObject != null ) && ( classpathFileObject != nullFileMarker ) ) { <END_BUG> File jarFile = ( ( File ) ( classpathFileObject ) ) ; dependencies . put ( jarFile , jarFile ) ; } } } } if ( ( ( cache ) != null ) && cacheDirty ) { writeCachedDependencies ( dependencyMap ) ; } } private int deleteAllAffectedFiles ( ) { } private int deleteAffectedFiles ( String className ) { } private void warnOutOfDateButNotDeleted ( Depend . ClassFileInfo affectedClassInfo , String affectedClass , String className ) { } private boolean isRmiStub ( String affectedClass , String className ) { } private boolean isStub ( String affectedClass , String baseClass , String suffix ) { } private void dumpDependencies ( ) { } private void determineOutOfDateClasses ( ) { } public void execute ( ) throws BuildException { } protected void scanDir ( File srcDir , String [ ] files ) { } private Vector getClassFiles ( Path classLocations ) { } private File findSourceFile ( String classname ) { } private void addClassFiles ( Vector classFileList , File dir , File root ) { } public void setSrcdir ( Path srcPath ) { } public void setDestDir ( Path destPath ) { } public void setCache ( File cache ) { } public void setClosure ( boolean closure ) { } public void setDump ( boolean dump ) { } }

Fix:
if ( classpathFileObject != nullFileMarker ) {