[jboss-svn-commits] JBL Code SVN: r32826 - labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/actions/routing/http.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Tue May 11 13:12:44 EDT 2010
Author: dward
Date: 2010-05-11 13:12:44 -0400 (Tue, 11 May 2010)
New Revision: 32826
Modified:
labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/actions/routing/http/AbstractHttpMethodFactory.java
labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/actions/routing/http/GETHttpMethodFactory.java
labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/actions/routing/http/POSTHttpMethodFactory.java
Log:
Fix for JBESB-3172 ( https://jira.jboss.org/jira/browse/JBESB-3172 ).
Modified: labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/actions/routing/http/AbstractHttpMethodFactory.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/actions/routing/http/AbstractHttpMethodFactory.java 2010-05-11 16:28:41 UTC (rev 32825)
+++ labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/actions/routing/http/AbstractHttpMethodFactory.java 2010-05-11 17:12:44 UTC (rev 32826)
@@ -19,8 +19,14 @@
*/
package org.jboss.soa.esb.actions.routing.http;
+import java.io.IOException;
+import java.net.SocketException;
import java.net.URL;
+import org.apache.commons.httpclient.DefaultHttpMethodRetryHandler;
+import org.apache.commons.httpclient.HttpMethod;
+import org.apache.commons.httpclient.HttpMethodRetryHandler;
+import org.apache.commons.httpclient.params.HttpMethodParams;
import org.jboss.soa.esb.ConfigurationException;
import org.jboss.soa.esb.helpers.ConfigTree;
@@ -54,5 +60,28 @@
}
public void setConfiguration(ConfigTree config) throws ConfigurationException {}
-
+
+ protected void wrapRetryHandler(HttpMethod method) {
+ HttpMethodParams params = method.getParams();
+ HttpMethodRetryHandler other = (HttpMethodRetryHandler)params.getParameter(HttpMethodParams.RETRY_HANDLER);
+ params.setParameter(HttpMethodParams.RETRY_HANDLER, new HttpMethodRetryHandlerWrapper(other));
+ }
+
+ private static class HttpMethodRetryHandlerWrapper implements HttpMethodRetryHandler {
+
+ private HttpMethodRetryHandler other;
+
+ private HttpMethodRetryHandlerWrapper(HttpMethodRetryHandler other) {
+ this.other = (other != null ? other : new DefaultHttpMethodRetryHandler());
+ }
+
+ public boolean retryMethod(HttpMethod method, IOException exception, int executionCount) {
+ boolean retry = other.retryMethod(method, exception, executionCount);
+ if (retry && exception instanceof SocketException) {
+ retry = false;
+ }
+ return retry;
+ }
+
+ }
}
Modified: labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/actions/routing/http/GETHttpMethodFactory.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/actions/routing/http/GETHttpMethodFactory.java 2010-05-11 16:28:41 UTC (rev 32825)
+++ labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/actions/routing/http/GETHttpMethodFactory.java 2010-05-11 17:12:44 UTC (rev 32826)
@@ -33,6 +33,8 @@
public class GETHttpMethodFactory extends AbstractHttpMethodFactory {
public HttpMethodBase getInstance(Message message) throws IOException {
- return new GetMethod( getEndpointPathAndQuery() );
+ GetMethod method = new GetMethod( getEndpointPathAndQuery() );
+ wrapRetryHandler(method);
+ return method;
}
}
\ No newline at end of file
Modified: labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/actions/routing/http/POSTHttpMethodFactory.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/actions/routing/http/POSTHttpMethodFactory.java 2010-05-11 16:28:41 UTC (rev 32825)
+++ labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/actions/routing/http/POSTHttpMethodFactory.java 2010-05-11 17:12:44 UTC (rev 32826)
@@ -83,6 +83,7 @@
}
method.setRequestEntity(entity);
+ wrapRetryHandler(method);
return method;
}
}
\ No newline at end of file
More information about the jboss-svn-commits
mailing list