You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cxf.apache.org by "Augusto Sellhorn (JIRA)" <ji...@apache.org> on 2017/02/21 01:22:44 UTC

[jira] [Commented] (CXF-5754) JMSConduit - temporary queue not beeing closed if relpyMessage is null (timeout)

    [ https://issues.apache.org/jira/browse/CXF-5754?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15875203#comment-15875203 ] 

Augusto Sellhorn commented on CXF-5754:
---------------------------------------

Yes, still an issue in CXF 3.0.4 and 3.0.5

I have a test that will make calls to a server with a component that processes calls that timeout, you can see the memory increase over a 4 hour period and make the VM get an OOM error.

!memory-leak-due-to-timeouts-4hrs.png!

When you do an analysis on the Eclipse Memory Analyzer, it detects the leak in JMSConduit

!eclipse-mem-analyzer.png!

The top objects stored in memory turn out to be HashMap related (java.util.HashMap$Node)

> JMSConduit - temporary queue not beeing closed if relpyMessage is null (timeout)
> --------------------------------------------------------------------------------
>
>                 Key: CXF-5754
>                 URL: https://issues.apache.org/jira/browse/CXF-5754
>             Project: CXF
>          Issue Type: Bug
>          Components: WS-* Components
>    Affects Versions: 2.7.11
>            Reporter: Philipp Hahn
>         Attachments: eclipse-mem-analyzer.png, memory-leak-due-to-timeouts-4hrs.png
>
>
> Our implementation:
> CXF 2.7.11
> JMS Queue on TIBCO
> We have the problem, that if a timeout is raised the temporary queue is not been deleted.
> After code review of the JmsConduit class we have seen, that in case of a timeout, cxf is only raises only an RuntimeException (JmsConduit line 256)
> {code}
>  javax.jms.Message replyMessage = jmsTemplate.receiveSelected(replyToDestination, messageSelector);
>                     if (replyMessage == null) {
>                         throw new RuntimeException("Timeout receiving message with correlationId " + correlationId);
>                     } else {
>                         doReplyMessage(exchange, replyMessage);
>                     }
> {code} 
> Is this the problem why the temporary queue is not been closed in case of a timeout? Is there an solution for this problem?
> Thanks!



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)