Buggy code:
public AntFTPFile ( FTP . FTPDirectoryScanner . AntFTPFile parent , String path ) { } private String findPathElementCaseUnsensitive ( String parentPath , String soughtPathElement ) { } public boolean exists ( ) { } public String getLink ( ) { } public String getName ( ) { } public String getAbsolutePath ( ) { } public String getFastRelativePath ( ) { } public String getRelativePath ( ) throws IOException , BuildException { } private String getRelativePath ( String currentPath , String currentRelativePath ) { } public FTPFile getFile ( FTPFile [ ] theFiles , String lastpathelement ) { } public boolean isDirectory ( ) { } public boolean isSymbolicLink ( ) { } protected FTPClient getClient ( ) { } protected void setCurpwd ( String curpwd ) { } public String getCurpwd ( ) { } public boolean isTraverseSymlinks ( ) throws IOException , BuildException { } } protected class AntFTPRootFile extends FTP . FTPDirectoryScanner . AntFTPFile { private String remotedir ; public AntFTPRootFile ( FTPClient aclient , String remotedir ) { } public String getAbsolutePath ( ) { } public String getRelativePath ( ) throws IOException , BuildException { } } } private boolean isFunctioningAsDirectory ( FTPClient ftp , String dir , FTPFile file ) { } private boolean isFunctioningAsFile ( FTPClient ftp , String dir , FTPFile file ) { } public void setRemotedir ( String dir ) { } public void setServer ( String server ) { } public void setPort ( int port ) { } public void setUserid ( String userid ) { } public void setPassword ( String password ) { } public void setBinary ( boolean binary ) { } public void setPassive ( boolean passive ) { } public void setVerbose ( boolean verbose ) { } public void setNewer ( boolean newer ) { } public void setTimeDiffMillis ( long timeDiffMillis ) { } public void setTimeDiffAuto ( boolean timeDiffAuto ) { } public void setPreserveLastModified ( boolean preserveLastModified ) { } public void setDepends ( boolean depends ) { } public void setSeparator ( String separator ) { } public void setChmod ( String theMode ) { } public void setUmask ( String theUmask ) { } public void addFileset ( FileSet set ) { } public void setAction ( String action ) throws BuildException { } public void setAction ( FTP . Action action ) throws BuildException { } public void setListing ( File listing ) { } public void setSkipFailedTransfers ( boolean skipFailedTransfers ) { } public void setIgnoreNoncriticalErrors ( boolean ignoreNoncriticalErrors ) { } protected void checkConfiguration ( ) throws BuildException { } protected int transferFiles ( FTPClient ftp , FileSet fs ) throws IOException , BuildException { } protected void transferFiles ( FTPClient ftp ) throws IOException , BuildException { } protected String resolveFile ( String file ) { } protected void createParents ( FTPClient ftp , String filename ) throws IOException , BuildException { } private long getTimeDiff ( FTPClient ftp ) { } private File findFileName ( FTPClient ftp ) { } protected boolean isUpToDate ( FTPClient ftp , File localFile , String remoteFile ) throws IOException , BuildException { } protected void doSiteCommand ( FTPClient ftp , String theCMD ) throws IOException , BuildException { } protected void sendFile ( FTPClient ftp , String dir , String filename ) throws IOException , BuildException { InputStream instream = null ; try { File file = getProject ( ) . resolveFile ( new File ( dir , filename ) . getPath ( ) ) ; if ( ( newerOnly ) && ( isUpToDate ( ftp , file , resolveFile ( filename ) ) ) ) { return ; } if ( verbose ) { log ( ( "transferring<seq2seq4repair_space>" + ( file . getAbsolutePath ( ) ) ) ) ; } instream = new BufferedInputStream ( new FileInputStream ( file ) ) ; createParents ( ftp , filename ) ; ftp . storeFile ( resolveFile ( filename ) , instream ) ; boolean success = FTPReply . isPositiveCompletion ( ftp . getReplyCode ( ) ) ; if ( ! success ) { String s = "could<seq2seq4repair_space>not<seq2seq4repair_space>put<seq2seq4repair_space>file:<seq2seq4repair_space>" + ( ftp . getReplyString ( ) ) ; if ( skipFailedTransfers ) { log ( s , MSG_WARN ) ; ( skipped ) ++ ; } else { throw new BuildException ( s ) ; } } else { if ( ( chmod ) != null ) { <START_BUG> doSiteCommand ( ftp , ( ( ( "chmod<seq2seq4repair_space>" + ( chmod ) ) + "<seq2seq4repair_space>" ) + filename ) ) ; <END_BUG> } log ( ( ( ( "File<seq2seq4repair_space>" + ( file . getAbsolutePath ( ) ) ) + "<seq2seq4repair_space>copied<seq2seq4repair_space>to<seq2seq4repair_space>" ) + ( server ) ) , MSG_VERBOSE ) ; ( transferred ) ++ ; } } finally { if ( instream != null ) { try { instream . close ( ) ; } catch ( IOException ex ) { } } } } protected void delFile ( FTPClient ftp , String filename ) throws IOException , BuildException { } protected void rmDir ( FTPClient ftp , String dirname ) throws IOException , BuildException { } protected void getFile ( FTPClient ftp , String dir , String filename ) throws IOException , BuildException { } protected void listFile ( FTPClient ftp , BufferedWriter bw , String filename ) throws IOException , BuildException { } protected void makeRemoteDir ( FTPClient ftp , String dir ) throws IOException , BuildException { } private void handleMkDirFailure ( FTPClient ftp ) throws BuildException { } public void execute ( ) throws BuildException { } public static class Action extends EnumeratedAttribute { private static final String [ ] VALID_ACTIONS = new String [ ] { "send" , "put" , "recv" , "get" , "del" , "delete" , "list" , "mkdir" , "chmod" , "rmdir" } ; public String [ ] getValues ( ) { } public int getAction ( ) { } } }

Fix:
doSiteCommand ( ftp , ( ( ( "chmod<seq2seq4repair_space>" + ( chmod ) ) + "<seq2seq4repair_space>" ) + ( resolveFile ( filename ) ) ) ) ;