jkf 2005/03/14 11:19:20 Modified: src/main/org/apache/tools/ant/taskdefs/optional/net FTP.java Log: PR: 28797 FTP list command could crash with an ArrayIndexOutOfBoundsException. Revision Changes Path 1.66 +19 -16 ant/src/main/org/apache/tools/ant/taskdefs/optional/net/FTP.java Index: FTP.java =================================================================== RCS file: /home/cvs/ant/src/main/org/apache/tools/ant/taskdefs/optional/net/FTP.java,v retrieving revision 1.65 retrieving revision 1.66 diff -u -r1.65 -r1.66 --- FTP.java 4 Mar 2005 22:31:40 -0000 1.65 +++ FTP.java 14 Mar 2005 19:19:20 -0000 1.66 @@ -1861,31 +1861,34 @@ * @throws BuildException in unknown circumstances */ protected void listFile(FTPClient ftp, BufferedWriter bw, String filename) - throws IOException, BuildException { + throws IOException, BuildException { if (verbose) { log("listing " + filename); } + FTPFile[] ftpfiles = ftp.listFiles(resolveFile(filename)); - FTPFile ftpfile = ftp.listFiles(resolveFile(filename))[0]; - - bw.write(ftpfile.toString()); - bw.newLine(); - - transferred++; + if (ftpfiles != null && ftpfiles.length > 0) { + bw.write(ftpfiles[0].toString()); + bw.newLine(); + transferred++; + } } /** * Create the specified directory on the remote host. - * - * @param ftp The FTP client connection - * @param dir The directory to create (format must be correct for host - * type) - * @throws IOException in unknown circumstances - * @throws BuildException if ignoreNoncriticalErrors has not been set to true - * and a directory could not be created, for instance because it was - * already existing. Precisely, the codes 521, 550 and 553 will trigger - * a BuildException + * + * @param ftp + * The FTP client connection + * @param dir + * The directory to create (format must be correct for host type) + * @throws IOException + * in unknown circumstances + * @throws BuildException + * if ignoreNoncriticalErrors has not been set to true and a + * directory could not be created, for instance because it was + * already existing. Precisely, the codes 521, 550 and 553 will + * trigger a BuildException */ protected void makeRemoteDir(FTPClient ftp, String dir) throws IOException, BuildException {
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]