You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicemix.apache.org by ff...@apache.org on 2010/09/04 10:32:30 UTC
svn commit: r992560 -
/servicemix/components/bindings/servicemix-cxf-bc/trunk/src/main/java/org/apache/servicemix/cxfbc/CxfBcConsumer.java
Author: ffang
Date: Sat Sep 4 08:32:30 2010
New Revision: 992560
URL: http://svn.apache.org/viewvc?rev=992560&view=rev
Log:
[SMXCOMP-797]servicemix-cxf-bc may cause memory leak for InOnly message
Modified:
servicemix/components/bindings/servicemix-cxf-bc/trunk/src/main/java/org/apache/servicemix/cxfbc/CxfBcConsumer.java
Modified: servicemix/components/bindings/servicemix-cxf-bc/trunk/src/main/java/org/apache/servicemix/cxfbc/CxfBcConsumer.java
URL: http://svn.apache.org/viewvc/servicemix/components/bindings/servicemix-cxf-bc/trunk/src/main/java/org/apache/servicemix/cxfbc/CxfBcConsumer.java?rev=992560&r1=992559&r2=992560&view=diff
==============================================================================
--- servicemix/components/bindings/servicemix-cxf-bc/trunk/src/main/java/org/apache/servicemix/cxfbc/CxfBcConsumer.java (original)
+++ servicemix/components/bindings/servicemix-cxf-bc/trunk/src/main/java/org/apache/servicemix/cxfbc/CxfBcConsumer.java Sat Sep 4 08:32:30 2010
@@ -292,6 +292,16 @@ public class CxfBcConsumer extends Consu
public void process(MessageExchange exchange) throws Exception {
if (exchange.getStatus() == ExchangeStatus.DONE) {
+ Message message = messages.get(exchange.getExchangeId());
+ if (message == null) {
+ return;
+ }
+ boolean oneway = message.getExchange().get(BindingOperationInfo.class)
+ .getOperationInfo().isOneWay();
+ if (oneway) {
+ //ensure remove message if oneway to avoid memory leak
+ messages.remove(exchange.getExchangeId());
+ }
return;
}
Message message = messages.remove(exchange.getExchangeId());