You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2010/09/19 09:10:02 UTC

svn commit: r998603 - in /camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote: FtpOperations.java SftpOperations.java

Author: davsclaus
Date: Sun Sep 19 07:10:02 2010
New Revision: 998603

URL: http://svn.apache.org/viewvc?rev=998603&view=rev
Log:
CAMEL-3134: Delete in progress file if failed to completely download from ftp server to a local work dir.

Modified:
    camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/FtpOperations.java
    camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/SftpOperations.java

Modified: camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/FtpOperations.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/FtpOperations.java?rev=998603&r1=998602&r2=998603&view=diff
==============================================================================
--- camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/FtpOperations.java (original)
+++ camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/FtpOperations.java Sun Sep 19 07:10:02 2010
@@ -385,6 +385,16 @@ public class FtpOperations implements Re
             changeCurrentDirectory(currentDir);
 
         } catch (IOException e) {
+            if (log.isTraceEnabled()) {
+                log.trace("Error occurred during retrieving file: " + name + " to local directory. Deleting local work file: " + temp);
+            }
+            // failed to retrieve the file so we need to close streams and delete in progress file
+            // must close stream before deleting file
+            IOHelper.close(os, "retrieve: " + name, log);
+            boolean deleted = FileUtil.deleteFile(temp);
+            if (!deleted) {
+                log.warn("Error occurred during retrieving file: " + name + " to local directory. Cannot delete local work file: " + temp);
+            }
             throw new GenericFileOperationFailedException(client.getReplyCode(), client.getReplyString(), e.getMessage(), e);
         } finally {
             // need to close the stream before rename it

Modified: camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/SftpOperations.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/SftpOperations.java?rev=998603&r1=998602&r2=998603&view=diff
==============================================================================
--- camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/SftpOperations.java (original)
+++ camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/SftpOperations.java Sun Sep 19 07:10:02 2010
@@ -456,6 +456,16 @@ public class SftpOperations implements R
             file.setBody(local);
             channel.get(name, os);
         } catch (SftpException e) {
+            if (LOG.isTraceEnabled()) {
+                LOG.trace("Error occurred during retrieving file: " + name + " to local directory. Deleting local work file: " + temp);
+            }
+            // failed to retrieve the file so we need to close streams and delete in progress file
+            // must close stream before deleting file
+            IOHelper.close(os, "retrieve: " + name, LOG);
+            boolean deleted = FileUtil.deleteFile(temp);
+            if (!deleted) {
+                LOG.warn("Error occurred during retrieving file: " + name + " to local directory. Cannot delete local work file: " + temp);
+            }
             throw new GenericFileOperationFailedException("Cannot retrieve file: " + name, e);
         } finally {
             IOHelper.close(os, "retrieve: " + name, LOG);