You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ant.apache.org by st...@apache.org on 2002/05/22 22:22:53 UTC

cvs commit: jakarta-ant/src/main/org/apache/tools/ant/taskdefs/optional/net FTP.java

stevel      02/05/22 13:22:53

  Modified:    src/main/org/apache/tools/ant/taskdefs/optional/net Tag:
                        ANT_15_BRANCH FTP.java
  Log:
  PR 9320; not handling mkdir errors consistently. Fixed by refactoring the working routine into its own method, calling from both places.
  
  This is going to be a dog to add an explicit test for.
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.21.2.1  +18 -20    jakarta-ant/src/main/org/apache/tools/ant/taskdefs/optional/net/FTP.java
  
  Index: FTP.java
  ===================================================================
  RCS file: /home/cvs/jakarta-ant/src/main/org/apache/tools/ant/taskdefs/optional/net/FTP.java,v
  retrieving revision 1.21
  retrieving revision 1.21.2.1
  diff -u -r1.21 -r1.21.2.1
  --- FTP.java	15 Apr 2002 14:56:33 -0000	1.21
  +++ FTP.java	22 May 2002 20:22:52 -0000	1.21.2.1
  @@ -611,17 +611,8 @@
               if (!dirCache.contains(dir)) {
                   log("creating remote directory " + resolveFile(dir.getPath()),
                       Project.MSG_VERBOSE);
  -                ftp.makeDirectory(resolveFile(dir.getPath()));
  -                // Both codes 550 and 553 can be produced by FTP Servers
  -                //  to indicate that an attempt to create a directory has
  -                //  failed because the directory already exists.
  -                int result = ftp.getReplyCode();
  -
  -                if (!FTPReply.isPositiveCompletion(result) &&
  -                    (result != 550) && (result != 553) &&
  -                    !ignoreNoncriticalErrors) {
  -                    throw new BuildException("could not create directory: " +
  -                        ftp.getReplyString());
  +                if(!ftp.makeDirectory(resolveFile(dir.getPath()))) {
  +                    handleMkDirFailure(ftp);
                   }
                   dirCache.addElement(dir);
               }
  @@ -880,15 +871,7 @@
               // codes 521, 550 and 553 can be produced by FTP Servers
               //  to indicate that an attempt to create a directory has
               //  failed because the directory already exists.
  -
  -            int rc = ftp.getReplyCode();
  -
  -            if (!(ignoreNoncriticalErrors
  -                 && (rc == 550 || rc == 553 || rc == 521))) {
  -                throw new BuildException("could not create directory: " +
  -                    ftp.getReplyString());
  -            }
  -
  +            handleMkDirFailure(ftp);
               if (verbose) {
                   log("directory already exists");
               }
  @@ -899,6 +882,21 @@
           }
       }
   
  +    /**
  +     * look at the response for a failed mkdir action, decide whether
  +     * it matters or not. If it does, we throw an exception
  +     * @param ftp current ftp connection
  +     * @throws BuildException if this is an error to signal
  +     */
  +    private void handleMkDirFailure(FTPClient ftp) 
  +            throws BuildException {
  +        int rc=ftp.getReplyCode();
  +        if (!(ignoreNoncriticalErrors
  +             && (rc == 550 || rc == 553 || rc == 521))) {
  +            throw new BuildException("could not create directory: " +
  +                ftp.getReplyString());
  +        }
  +    }
   
       /** Runs the task.  */
       public void execute()
  
  
  

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>