Buggy code:
public class Delete extends MatchingTask { protected File file = null ; protected File dir = null ; protected Vector filesets = new Vector ( ) ; protected boolean usedMatchingTask = false ; private int verbosity = Project . MSG_VERBOSE ; public void setFile ( File file ) { } public void setDir ( File dir ) { } public void setVerbose ( boolean verbose ) { } public void addFileset ( FileSet set ) { } public NameEntry createInclude ( ) { } public NameEntry createExclude ( ) { } public PatternSet createPatternSet ( ) { } public void setIncludes ( String includes ) { } public void setExcludes ( String excludes ) { } public void setDefaultexcludes ( boolean useDefaultExcludes ) { } public void setIncludesfile ( File includesfile ) { } public void setExcludesfile ( File excludesfile ) { } public void execute ( ) throws BuildException { if ( usedMatchingTask ) { log ( "DEPRECATED<seq2seq4repair_space>-<seq2seq4repair_space>Use<seq2seq4repair_space>of<seq2seq4repair_space>the<seq2seq4repair_space>implicit<seq2seq4repair_space>FileSet<seq2seq4repair_space>is<seq2seq4repair_space>deprecated.<seq2seq4repair_space>Use<seq2seq4repair_space>a<seq2seq4repair_space>nested<seq2seq4repair_space>fileset<seq2seq4repair_space>element<seq2seq4repair_space>instead." ) ; } if ( ( ( ( file ) == null ) && ( ( dir ) == null ) ) && ( ( filesets . size ( ) ) == 0 ) ) { throw new BuildException ( "At<seq2seq4repair_space>least<seq2seq4repair_space>one<seq2seq4repair_space>of<seq2seq4repair_space>the<seq2seq4repair_space>file<seq2seq4repair_space>or<seq2seq4repair_space>dir<seq2seq4repair_space>attributes,<seq2seq4repair_space>or<seq2seq4repair_space>a<seq2seq4repair_space>fileset<seq2seq4repair_space>element,<seq2seq4repair_space>must<seq2seq4repair_space>be<seq2seq4repair_space>set." ) ; } if ( ( file ) != null ) { if ( file . exists ( ) ) { if ( file . isDirectory ( ) ) { log ( ( ( "Directory<seq2seq4repair_space>" + ( file . getAbsolutePath ( ) ) ) + "<seq2seq4repair_space>cannot<seq2seq4repair_space>be<seq2seq4repair_space>removed<seq2seq4repair_space>using<seq2seq4repair_space>the<seq2seq4repair_space>file<seq2seq4repair_space>attribute.<seq2seq4repair_space>Use<seq2seq4repair_space>dir<seq2seq4repair_space>instead." ) ) ; } else { log ( ( "Deleting:<seq2seq4repair_space>" + ( file . getAbsolutePath ( ) ) ) ) ; if ( ! ( file . delete ( ) ) ) { throw new BuildException ( ( "Unable<seq2seq4repair_space>to<seq2seq4repair_space>delete<seq2seq4repair_space>file<seq2seq4repair_space>" + ( file . getAbsolutePath ( ) ) ) ) ; } } } else { log ( ( ( "Could<seq2seq4repair_space>not<seq2seq4repair_space>find<seq2seq4repair_space>file<seq2seq4repair_space>" + ( file . getAbsolutePath ( ) ) ) + "<seq2seq4repair_space>to<seq2seq4repair_space>delete." ) ) ; } } <START_BUG> if ( ( ( dir ) != null ) && ( ! ( usedMatchingTask ) ) ) { <END_BUG> log ( ( "Deleting<seq2seq4repair_space>directory<seq2seq4repair_space>" + ( dir . getAbsolutePath ( ) ) ) ) ; removeDir ( dir ) ; } for ( int i = 0 ; i < ( filesets . size ( ) ) ; i ++ ) { FileSet fs = ( ( FileSet ) ( filesets . elementAt ( i ) ) ) ; DirectoryScanner ds = fs . getDirectoryScanner ( project ) ; String [ ] files = ds . getIncludedFiles ( ) ; removeFiles ( fs . getDir ( project ) , files ) ; } if ( ( usedMatchingTask ) && ( ( dir ) != null ) ) { DirectoryScanner ds = super . getDirectoryScanner ( dir ) ; String [ ] files = ds . getIncludedFiles ( ) ; removeFiles ( dir , files ) ; } } protected void removeDir ( File d ) { } protected void removeFiles ( File d , String [ ] files ) { } }

Fix:
if ( ( ( ( ( dir ) != null ) && ( dir . exists ( ) ) ) && ( dir . isDirectory ( ) ) ) && ( ! ( usedMatchingTask ) ) ) {