You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicemix.apache.org by gn...@apache.org on 2008/06/17 15:41:01 UTC
svn commit: r668665 - in
/servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-http/src/main/java/org/apache/servicemix/http:
HttpEndpoint.java processors/ConsumerProcessor.java
processors/ProviderProcessor.java
Author: gnodet
Date: Tue Jun 17 06:41:01 2008
New Revision: 668665
URL: http://svn.apache.org/viewvc?rev=668665&view=rev
Log:
SM-1407, SM-1408: add a per-endpoint timeout, fix a memory leak when a timeout occurs
Modified:
servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-http/src/main/java/org/apache/servicemix/http/HttpEndpoint.java
servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-http/src/main/java/org/apache/servicemix/http/processors/ConsumerProcessor.java
servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-http/src/main/java/org/apache/servicemix/http/processors/ProviderProcessor.java
Modified: servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-http/src/main/java/org/apache/servicemix/http/HttpEndpoint.java
URL: http://svn.apache.org/viewvc/servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-http/src/main/java/org/apache/servicemix/http/HttpEndpoint.java?rev=668665&r1=668664&r2=668665&view=diff
==============================================================================
--- servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-http/src/main/java/org/apache/servicemix/http/HttpEndpoint.java (original)
+++ servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-http/src/main/java/org/apache/servicemix/http/HttpEndpoint.java Tue Jun 17 06:41:01 2008
@@ -60,6 +60,7 @@
protected ProxyParameters proxy;
protected boolean synchronous;
protected boolean wantContentTypeHeaderFromExchangeIntoHttpRequest;
+ protected int timeout;
public boolean isWantContentTypeHeaderFromExchangeIntoHttpRequest() {
return wantContentTypeHeaderFromExchangeIntoHttpRequest;
@@ -154,8 +155,8 @@
}
/**
- * @param basicAuthentication
- * The basicAuthentication to set.
+ * @param basicAuthCredentials
+ * The basicAuthCredentials to set.
*/
public void setBasicAuthentication(BasicAuthCredentials basicAuthCredentials) {
this.basicAuthentication = basicAuthCredentials;
@@ -184,6 +185,14 @@
super.setRoleAsString(role);
}
+ public int getTimeout() {
+ return timeout;
+ }
+
+ public void setTimeout(int timeout) {
+ this.timeout = timeout;
+ }
+
public void reloadWsdl() {
description = null;
definition = null;
Modified: servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-http/src/main/java/org/apache/servicemix/http/processors/ConsumerProcessor.java
URL: http://svn.apache.org/viewvc/servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-http/src/main/java/org/apache/servicemix/http/processors/ConsumerProcessor.java?rev=668665&r1=668664&r2=668665&view=diff
==============================================================================
--- servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-http/src/main/java/org/apache/servicemix/http/processors/ConsumerProcessor.java (original)
+++ servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-http/src/main/java/org/apache/servicemix/http/processors/ConsumerProcessor.java Tue Jun 17 06:41:01 2008
@@ -79,7 +79,10 @@
this.soapHelper = new SoapHelper(endpoint);
this.locks = new ConcurrentHashMap<String, Continuation>();
this.exchanges = new ConcurrentHashMap<String, MessageExchange>();
- this.suspentionTime = getConfiguration().getConsumerProcessorSuspendTime();
+ this.suspentionTime = endpoint.getTimeout();
+ if (suspentionTime <= 0) {
+ this.suspentionTime = getConfiguration().getConsumerProcessorSuspendTime();
+ }
}
public SslParameters getSsl() {
@@ -162,6 +165,7 @@
boolean result = cont.suspend(suspentionTime);
exchange = exchanges.remove(exchange.getExchangeId());
if (!result) {
+ locks.remove(exchange.getExchangeId());
throw new Exception("Error sending exchange: aborted");
}
request.removeAttribute(MessageExchange.class.getName());
@@ -172,7 +176,7 @@
sendFault(fault, request, response);
return;
} catch (Exception e) {
- SoapFault fault = new SoapFault(e);
+ SoapFault fault = new SoapFault(e);
sendFault(fault, request, response);
return;
}
Modified: servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-http/src/main/java/org/apache/servicemix/http/processors/ProviderProcessor.java
URL: http://svn.apache.org/viewvc/servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-http/src/main/java/org/apache/servicemix/http/processors/ProviderProcessor.java?rev=668665&r1=668664&r2=668665&view=diff
==============================================================================
--- servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-http/src/main/java/org/apache/servicemix/http/processors/ProviderProcessor.java (original)
+++ servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-http/src/main/java/org/apache/servicemix/http/processors/ProviderProcessor.java Tue Jun 17 06:41:01 2008
@@ -330,7 +330,9 @@
protected HttpClient getClient() {
HttpComponent comp = (HttpComponent) endpoint.getServiceUnit().getComponent();
- return comp.getClient();
+ HttpClient client = comp.getClient();
+ client.getParams().setSoTimeout(endpoint.getTimeout());
+ return client;
}
public static class StreamingRequestEntity implements RequestEntity {