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 2008/09/23 07:52:25 UTC
svn commit: r698097 - in
/servicemix/components/bindings/servicemix-cxf-bc/trunk/src/main/java/org/apache/servicemix/cxfbc:
CxfBcProvider.java CxfBcProviderMessageObserver.java
Author: ffang
Date: Mon Sep 22 22:52:25 2008
New Revision: 698097
URL: http://svn.apache.org/viewvc?rev=698097&view=rev
Log:
[SM-1593]memory leak in cxf bc provider
Modified:
servicemix/components/bindings/servicemix-cxf-bc/trunk/src/main/java/org/apache/servicemix/cxfbc/CxfBcProvider.java
servicemix/components/bindings/servicemix-cxf-bc/trunk/src/main/java/org/apache/servicemix/cxfbc/CxfBcProviderMessageObserver.java
Modified: servicemix/components/bindings/servicemix-cxf-bc/trunk/src/main/java/org/apache/servicemix/cxfbc/CxfBcProvider.java
URL: http://svn.apache.org/viewvc/servicemix/components/bindings/servicemix-cxf-bc/trunk/src/main/java/org/apache/servicemix/cxfbc/CxfBcProvider.java?rev=698097&r1=698096&r2=698097&view=diff
==============================================================================
--- servicemix/components/bindings/servicemix-cxf-bc/trunk/src/main/java/org/apache/servicemix/cxfbc/CxfBcProvider.java (original)
+++ servicemix/components/bindings/servicemix-cxf-bc/trunk/src/main/java/org/apache/servicemix/cxfbc/CxfBcProvider.java Mon Sep 22 22:52:25 2008
@@ -120,6 +120,7 @@
private Bus bus;
private ConduitInitiator conduitInit;
+ private Conduit conduit;
private URI locationURI;
@@ -149,13 +150,10 @@
ei.setAddress((String) newDestinationURI);
}
- Conduit conduit = conduitInit.getConduit(ei);
- CxfBcProviderMessageObserver obs = new CxfBcProviderMessageObserver(
- exchange, this);
- conduit.setMessageObserver(obs);
Message message = ep.getBinding().createMessage();
message.put(MessageExchange.class, exchange);
Exchange cxfExchange = new ExchangeImpl();
+ cxfExchange.put(MessageExchange.class, exchange);
message.setExchange(cxfExchange);
cxfExchange.setOutMessage(message);
@@ -466,6 +464,9 @@
ConduitInitiatorManager.class);
conduitInit = conduitMgr.getConduitInitiator(ei
.getTransportId());
+ conduit = conduitInit.getConduit(ei);
+ CxfBcProviderMessageObserver obs = new CxfBcProviderMessageObserver(this);
+ conduit.setMessageObserver(obs);
super.validate();
}
} catch (DeploymentException e) {
Modified: servicemix/components/bindings/servicemix-cxf-bc/trunk/src/main/java/org/apache/servicemix/cxfbc/CxfBcProviderMessageObserver.java
URL: http://svn.apache.org/viewvc/servicemix/components/bindings/servicemix-cxf-bc/trunk/src/main/java/org/apache/servicemix/cxfbc/CxfBcProviderMessageObserver.java?rev=698097&r1=698096&r2=698097&view=diff
==============================================================================
--- servicemix/components/bindings/servicemix-cxf-bc/trunk/src/main/java/org/apache/servicemix/cxfbc/CxfBcProviderMessageObserver.java (original)
+++ servicemix/components/bindings/servicemix-cxf-bc/trunk/src/main/java/org/apache/servicemix/cxfbc/CxfBcProviderMessageObserver.java Mon Sep 22 22:52:25 2008
@@ -58,13 +58,10 @@
String contentType;
- private MessageExchange messageExchange;
private CxfBcProvider providerEndpoint;
- public CxfBcProviderMessageObserver(MessageExchange exchange,
- CxfBcProvider providerEndpoint) {
- this.messageExchange = exchange;
+ public CxfBcProviderMessageObserver(CxfBcProvider providerEndpoint) {
this.providerEndpoint = providerEndpoint;
}
@@ -83,6 +80,7 @@
public void onMessage(Message message) {
try {
+ MessageExchange messageExchange = message.getExchange().get(MessageExchange.class);
if (messageExchange.getStatus() != ExchangeStatus.ACTIVE) {
return;
}