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 2009/11/12 17:58:06 UTC
svn commit: r835443 -
/camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/RemoteFileProducer.java
Author: davsclaus
Date: Thu Nov 12 16:58:06 2009
New Revision: 835443
URL: http://svn.apache.org/viewvc?rev=835443&view=rev
Log:
CAMEL-2165: Fixed throwing original exception when write fails.
Modified:
camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/RemoteFileProducer.java
Modified: camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/RemoteFileProducer.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/RemoteFileProducer.java?rev=835443&r1=835442&r2=835443&view=diff
==============================================================================
--- camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/RemoteFileProducer.java (original)
+++ camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/RemoteFileProducer.java Thu Nov 12 16:58:06 2009
@@ -53,6 +53,10 @@
ExchangeHelper.copyResults(exchange, remoteExchange);
}
+ protected RemoteFileOperations getOperations() {
+ return (RemoteFileOperations) operations;
+ }
+
/**
* The file could not be written. We need to disconnect from the remote server.
*/
@@ -60,21 +64,28 @@
loggedIn = false;
if (isStopping() || isStopped()) {
// if we are stopping then ignore any exception during a poll
- log.debug("Exception occured during stopping: " + exception.getMessage());
+ log.debug("Exception occurred during stopping: " + exception.getMessage());
} else {
- log.debug("Exception occured during processing. ", exception);
- disconnect();
- // Rethrow to signify that we didn't poll
+ log.debug("Exception occurred during processing. ", exception);
+ try {
+ disconnect();
+ } catch (Exception e) {
+ // ignore exception
+ log.debug("Ignored exception during disconnect", e);
+ }
+ // Rethrow the original exception
throw exception;
}
}
public void disconnect() throws IOException {
loggedIn = false;
- if (log.isDebugEnabled()) {
- log.debug("Disconnecting from: " + getEndpoint());
+ if (getOperations().isConnected()) {
+ if (log.isDebugEnabled()) {
+ log.debug("Disconnecting from: " + getEndpoint());
+ }
+ getOperations().disconnect();
}
- ((RemoteFileOperations) operations).disconnect();
}
@Override
@@ -100,20 +111,19 @@
try {
disconnect();
} catch (Exception e) {
- log.debug("Exception occured during disconnecting from: " + getEndpoint() + " " + e.getMessage());
+ log.debug("Exception occurred during disconnecting from: " + getEndpoint() + " " + e.getMessage());
}
super.doStop();
}
protected void connectIfNecessary() throws IOException {
- if (!((RemoteFileOperations) operations).isConnected() || !loggedIn) {
+ if (!(getOperations()).isConnected() || !loggedIn) {
if (log.isDebugEnabled()) {
log.debug("Not already connected/logged in. Connecting to: " + getEndpoint());
}
- RemoteFileOperations rfo = (RemoteFileOperations) operations;
RemoteFileEndpoint rfe = (RemoteFileEndpoint) getEndpoint();
RemoteFileConfiguration conf = (RemoteFileConfiguration) rfe.getConfiguration();
- loggedIn = rfo.connect(conf);
+ loggedIn = getOperations().connect(conf);
if (!loggedIn) {
return;
}