You are viewing a plain text version of this content. The canonical link for it is here.
Posted to wagon-commits@maven.apache.org by br...@apache.org on 2006/01/05 09:08:44 UTC

svn commit: r366115 - /maven/wagon/trunk/wagon-providers/wagon-ftp/src/main/java/org/apache/maven/wagon/providers/ftp/FtpWagon.java

Author: brett
Date: Thu Jan  5 00:08:41 2006
New Revision: 366115

URL: http://svn.apache.org/viewcvs?rev=366115&view=rev
Log:
[WAGONFTP-9] prevent hanging on get when file exists due to misplaced directory change

Modified:
    maven/wagon/trunk/wagon-providers/wagon-ftp/src/main/java/org/apache/maven/wagon/providers/ftp/FtpWagon.java

Modified: maven/wagon/trunk/wagon-providers/wagon-ftp/src/main/java/org/apache/maven/wagon/providers/ftp/FtpWagon.java
URL: http://svn.apache.org/viewcvs/maven/wagon/trunk/wagon-providers/wagon-ftp/src/main/java/org/apache/maven/wagon/providers/ftp/FtpWagon.java?rev=366115&r1=366114&r2=366115&view=diff
==============================================================================
--- maven/wagon/trunk/wagon-providers/wagon-ftp/src/main/java/org/apache/maven/wagon/providers/ftp/FtpWagon.java (original)
+++ maven/wagon/trunk/wagon-providers/wagon-ftp/src/main/java/org/apache/maven/wagon/providers/ftp/FtpWagon.java Thu Jan  5 00:08:41 2006
@@ -55,6 +55,11 @@
             throw new IllegalArgumentException( "Authentication Credentials cannot be null for FTP protocol" );
         }
 
+        if ( authInfo.getUserName() == null )
+        {
+            authInfo.setUserName( System.getProperty( "user.name" ) );
+        }
+
         String username = authInfo.getUserName();
 
         String password = authInfo.getPassword();
@@ -135,14 +140,6 @@
             // behind firewalls these days.
             // TODO [BP]: make optional based on a flag
             ftp.enterLocalPassiveMode();
-
-            boolean dirChanged = ftp.changeWorkingDirectory( getRepository().getBasedir() );
-
-            if ( !dirChanged )
-            {
-                throw new ConnectionException(
-                    "Required directory: '" + getRepository().getBasedir() + "' " + "is missing" );
-            }
         }
         catch ( IOException e )
         {
@@ -219,7 +216,6 @@
     public void fillOutputData( OutputData outputData )
         throws TransferFailedException
     {
-
         OutputStream os;
 
         Resource resource = outputData.getResource();
@@ -228,6 +224,12 @@
 
         try
         {
+            if ( !ftp.changeWorkingDirectory( getRepository().getBasedir() ) )
+            {
+                throw new TransferFailedException(
+                    "Required directory: '" + getRepository().getBasedir() + "' " + "is missing" );
+            }
+
             String[] dirs = PathUtils.dirnames( resource.getName() );
 
             for ( int i = 0; i < dirs.length; i++ )
@@ -265,12 +267,9 @@
 
             // we come back to orginal basedir so
             // FTP wagon is ready for next requests
-            for ( int i = 0; i < dirs.length; i++ )
+            if ( !ftp.changeWorkingDirectory( getRepository().getBasedir() ) )
             {
-                if ( !ftp.changeWorkingDirectory( ".." ) )
-                {
-                    throw new TransferFailedException( "Unable to return to the base directory" );
-                }
+                throw new TransferFailedException( "Unable to return to the base directory" );
             }
 
             os = ftp.storeFileStream( resource.getName() );
@@ -309,6 +308,12 @@
 
         try
         {
+            if ( !ftp.changeWorkingDirectory( getRepository().getBasedir() ) )
+            {
+                throw new TransferFailedException(
+                    "Required directory: '" + getRepository().getBasedir() + "' " + "is missing" );
+            }
+
             String[] dirs = PathUtils.dirnames( resource.getName() );
 
             for ( int i = 0; i < dirs.length; i++ )
@@ -343,14 +348,6 @@
             resource.setLastModified( lastModified );
 
             is = ftp.retrieveFileStream( filename );
-
-            for ( int i = 0; i < dirs.length; i++ )
-            {
-                if ( !ftp.changeWorkingDirectory( ".." ) )
-                {
-                    throw new TransferFailedException( "Error changing directory to .." );
-                }
-            }
         }
         catch ( IOException e )
         {



---------------------------------------------------------------------
To unsubscribe, e-mail: wagon-commits-unsubscribe@maven.apache.org
For additional commands, e-mail: wagon-commits-help@maven.apache.org