Filippov Mihail created CAMEL-12451:
---------------------------------------
Summary: Memory leak: camel-cxf componet don't release UoW in
case of using "robust" property
Key: CAMEL-12451
URL: https://issues.apache.org/jira/browse/CAMEL-12451
Project: Camel
Issue Type: Bug
Components: camel-cxf
Affects Versions: 2.20.3, 2.20.2
Reporter: Filippov Mihail
In case of using "org.apache.cxf.oneway.robust" property camel-cxf component
doesn't release UoW that leads to huge memory leak. I think it's relied with
the feature of output chain of cxf framwork which doesn't invoke additional
interceptors in case of oneway operation.
in other words, this code is not called:
https://github.com/apache/camel/blob/master/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfConsumer.java
{code:java}
private class UnitOfWorkCloserInterceptor extends
AbstractPhaseInterceptor<Message> {
public UnitOfWorkCloserInterceptor() {
super(Phase.POST_LOGICAL_ENDING);
}
@Override
public void handleMessage(Message message) throws Fault {
Exchange cxfExchange = null;
if ((cxfExchange = message.getExchange()) != null) {
org.apache.camel.Exchange exchange =
cxfExchange.get(org.apache.camel.Exchange.class);
if (exchange != null) {
doneUoW(exchange);
}
}
}
}
{code}
minimal example:
{code:java}
<cxf:cxfEndpoint id="soap_in1"
address="/service1"
xmlns:tns="urn:api:service1"
wsdlURL="wsdl/service1.wsdl"
serviceName="tns:service1"
endpointName="tns:HTTP_Port">
<cxf:properties>
<entry key="dataFormat" value="PAYLOAD"/>
<entry key="org.apache.cxf.oneway.robust" value="true"/>
</cxf:properties>
</cxf:cxfEndpoint>
<camelContext xmlns="http://camel.apache.org/schema/blueprint" id="context1">
<route id="loadTest1">
<from uri="cxf:bean:soap_in1"/>
<to uri="log:end"/>
</route>
</camelContext>
{code}
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)