You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Claus Ibsen (JIRA)" <ji...@apache.org> on 2018/04/18 07:46:00 UTC
[jira] [Updated] (CAMEL-12451) Memory leak: camel-cxf componet
don't release UoW in case of using "robust" property
[ https://issues.apache.org/jira/browse/CAMEL-12451?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Claus Ibsen updated CAMEL-12451:
--------------------------------
Priority: Minor (was: Major)
> 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.2, 2.20.3
> Reporter: Filippov Mihail
> Priority: Minor
>
> 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)