[jboss-svn-commits] JBL Code SVN: r22744 - in labs/jbossesb/branches/JBESB_4_4_GA_CP/product: rosetta/src/org/jboss/internal/soa/esb/util and 2 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Sat Sep 13 17:01:43 EDT 2008
Author: mark.little at jboss.com
Date: 2008-09-13 17:01:43 -0400 (Sat, 13 Sep 2008)
New Revision: 22744
Modified:
labs/jbossesb/branches/JBESB_4_4_GA_CP/product/docs/AdministrationGuide.odt
labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/internal/soa/esb/util/FtpImpl.java
labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/soa/esb/common/Environment.java
labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/soa/esb/util/FtpClientUtil.java
labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/soa/esb/util/RemoteFileSystem.java
Log:
https://jira.jboss.org/jira/browse/JBESB-1995
Modified: labs/jbossesb/branches/JBESB_4_4_GA_CP/product/docs/AdministrationGuide.odt
===================================================================
(Binary files differ)
Modified: labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/internal/soa/esb/util/FtpImpl.java
===================================================================
--- labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/internal/soa/esb/util/FtpImpl.java 2008-09-13 19:48:10 UTC (rev 22743)
+++ labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/internal/soa/esb/util/FtpImpl.java 2008-09-13 21:01:43 UTC (rev 22744)
@@ -78,6 +78,8 @@
private String m_sFtpServer, m_sUser, m_sPasswd;
private String m_sRemoteDir, m_sLocalDir;
+
+ private int renameRetry;
/**
* Checks validity and completeness of parameters, and keeps the info
@@ -235,8 +237,24 @@
m_bPassive = false;
sAux = m_oParms.getAttribute(PARMS_PASSIVE);
m_bPassive = (null != sAux) && Boolean.parseBoolean(sAux);
+
+ String renameRetryString = ModulePropertyManager.getPropertyManager(
+ ModulePropertyManager.TRANSPORTS_MODULE).getProperty(
+ Environment.FTP_RENAME_RETRY, null);
- return;
+ if (renameRetryString != null)
+ {
+ try
+ {
+ renameRetry = Integer.parseInt(renameRetryString);
+ }
+ catch (Exception ex)
+ {
+ throw new ConfigurationException("Invalid rename retry limit: "+renameRetryString);
+ }
+ }
+ else
+ renameRetry = DEFAULT_RENAME_RETRY_NUMBER;
}
protected void configTreeFromEpr () throws RemoteFileSystemException
@@ -586,10 +604,31 @@
{
throw new RemoteFileSystemException("Failed to upload contents: " + m_oConn.getReplyString()) ;
}
- if (!m_oConn.rename(sRemoteTmp, p_sRemoteName))
+
+ boolean retryProblem = true; // https://jira.jboss.org/jira/browse/JBESB-1995
+
+ for (int i = 0; i < renameRetry; i++)
{
+ if (m_oConn.rename(sRemoteTmp, p_sRemoteName))
+ {
+ retryProblem = false;
+
+ break;
+ }
+ else
+ {
+ try
+ {
+ Thread.sleep(DEFAULT_RENAME_RETRY_TIMEOUT);
+ }
+ catch (final Exception ex)
+ {
+ }
+ }
+ }
+
+ if (retryProblem)
throw new RemoteFileSystemException("Failed to rename file: " + m_oConn.getReplyString());
- }
}
catch (final IOException ioe)
{
Modified: labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/soa/esb/common/Environment.java
===================================================================
--- labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/soa/esb/common/Environment.java 2008-09-13 19:48:10 UTC (rev 22743)
+++ labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/soa/esb/common/Environment.java 2008-09-13 21:01:43 UTC (rev 22744)
@@ -51,6 +51,7 @@
public static final String FTP_LOCALDIR = "org.jboss.soa.esb.ftp.localdir";
public static final String FTP_REMOTEDIR = "org.jboss.soa.esb.ftp.remotedir";
public static final String FTP_SOCKET_TIMEOUT = "org.jboss.soa.esb.ftp.timeout";
+ public static final String FTP_RENAME_RETRY = "org.jboss.soa.esb.ftp.renameretry";
public static final String JMS_CONNECTION_POOL_SIZE = "org.jboss.soa.esb.jms.connectionPool";
public static final String JMS_SESSION_SLEEP = "org.jboss.soa.esb.jms.sessionSleep";
Modified: labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/soa/esb/util/FtpClientUtil.java
===================================================================
--- labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/soa/esb/util/FtpClientUtil.java 2008-09-13 19:48:10 UTC (rev 22743)
+++ labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/soa/esb/util/FtpClientUtil.java 2008-09-13 21:01:43 UTC (rev 22744)
@@ -35,8 +35,12 @@
import org.apache.commons.net.ftp.FTPClient;
import org.jboss.internal.soa.esb.util.FtpUtils;
import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.common.Environment;
+import org.jboss.soa.esb.common.ModulePropertyManager;
import org.jboss.soa.esb.helpers.ConfigTree;
import org.jboss.soa.esb.helpers.KeyValuePair;
+import org.jboss.soa.esb.util.RemoteFileSystem;
+import org.jboss.soa.esb.util.RemoteFileSystemException;
/**
* Simplified FTP transfers
@@ -45,6 +49,8 @@
* establish the FTP connection are provided at construction time and cannot
* change during the lifetime of the object <br/>Hides low level details.
* </p>
+ *
+ * TODO why duplicate so much of FtpImpl.java?
*/
public class FtpClientUtil
@@ -66,7 +72,7 @@
public static final String PARMS_PASSIVE = "ftpPassive";
private static final String TMP_SUFFIX = ".rosettaPart";
-
+
public enum XFER_TYPE
{
ascii, binary
@@ -85,6 +91,8 @@
private FTPClient m_oConn = new FTPClient();
private boolean m_bAsciiTransferType ;
+
+ private int renameRetry;
public String getRemoteDir ()
{
@@ -361,10 +369,31 @@
{
throw new RemoteFileSystemException("Failed to upload contents: " + m_oConn.getReplyString()) ;
}
- if (!m_oConn.rename(sRemoteTmp, p_sRemoteName))
+
+ boolean retryProblem = true; // https://jira.jboss.org/jira/browse/JBESB-1995
+
+ for (int i = 0; i < renameRetry; i++)
{
+ if (m_oConn.rename(sRemoteTmp, p_sRemoteName))
+ {
+ retryProblem = false;
+
+ break;
+ }
+ else
+ {
+ try
+ {
+ Thread.sleep(RemoteFileSystem.DEFAULT_RENAME_RETRY_TIMEOUT);
+ }
+ catch (final Exception ex)
+ {
+ }
+ }
+ }
+
+ if (retryProblem)
throw new RemoteFileSystemException("Failed to rename file: " + m_oConn.getReplyString());
- }
}
catch (IOException ex)
{
@@ -476,6 +505,24 @@
m_bPassive = false;
sAux = m_oParms.getAttribute(PARMS_PASSIVE);
m_bPassive = (null != sAux) && Boolean.parseBoolean(sAux);
+
+ String renameRetryString = ModulePropertyManager.getPropertyManager(
+ ModulePropertyManager.TRANSPORTS_MODULE).getProperty(
+ Environment.FTP_RENAME_RETRY, null);
+
+ if (renameRetryString != null)
+ {
+ try
+ {
+ renameRetry = Integer.parseInt(renameRetryString);
+ }
+ catch (Exception ex)
+ {
+ throw new ConfigurationException("Invalid rename retry limit: "+renameRetryString);
+ }
+ }
+ else
+ renameRetry = RemoteFileSystem.DEFAULT_RENAME_RETRY_NUMBER;
} // __________________________________
public static String fileToFtpString (File p_oF)
Modified: labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/soa/esb/util/RemoteFileSystem.java
===================================================================
--- labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/soa/esb/util/RemoteFileSystem.java 2008-09-13 19:48:10 UTC (rev 22743)
+++ labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/soa/esb/util/RemoteFileSystem.java 2008-09-13 21:01:43 UTC (rev 22744)
@@ -58,6 +58,10 @@
public static final String PARMS_PASSPHRASE = "passphrase";
+ public static final int DEFAULT_RENAME_RETRY_NUMBER = 10; // default retries
+
+ public static final int DEFAULT_RENAME_RETRY_TIMEOUT = 1000; // 1 second
+
public String getRemoteDir ();
/**
More information about the jboss-svn-commits
mailing list