cxf-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Christian Schneider (JIRA)" <j...@apache.org>
Subject [jira] [Resolved] (CXF-7079) JMSConduit – is not removing entry from corelationMap if relpyMessage is null (timeout)
Date Wed, 19 Apr 2017 14:23:41 GMT

     [ https://issues.apache.org/jira/browse/CXF-7079?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Christian Schneider resolved CXF-7079.
--------------------------------------
       Resolution: Fixed
         Assignee: Christian Schneider
    Fix Version/s: 3.0.13
                   3.1.11
                   3.2.0

This was fixed in the linked issue. So you should upgrade to one of the versions mentioned
in fix versions.

> JMSConduit – is not removing entry from corelationMap if relpyMessage is null (timeout)
> ---------------------------------------------------------------------------------------
>
>                 Key: CXF-7079
>                 URL: https://issues.apache.org/jira/browse/CXF-7079
>             Project: CXF
>          Issue Type: Bug
>          Components: JMS
>    Affects Versions: 3.1.7
>         Environment: apache CXF 3.0.5
> TIBCO
>            Reporter: ARSLAN ALI
>            Assignee: Christian Schneider
>             Fix For: 3.2.0, 3.1.11, 3.0.13
>
>
> We have the problem, that if a timeout is raised the temporary queue is not been deleted.
> After code review of the JmsConduit class in both 3.0.5 and even in 3.1.7 we have seen,
that in case of a timeout, cxf is only raises only an RuntimeException (JmsConduit line 256)
>  javax.jms.Message replyMessage = jmsTemplate.receiveSelected(replyToDestination, messageSelector);
>                     if (replyMessage == null) {
>                         throw new RuntimeException("Timeout receiving message with correlationId
" + correlationId);
>                     } else {
>                         doReplyMessage(exchange, replyMessage);
>                     }
> And RuntimeException is not handled in JMSConduit resulting in correlationMap is not
removing the entry. 
> public static Message receive(Session session,
> Destination replyToDestination,
> String correlationId,
> long receiveTimeout,
> boolean pubSubNoLocal) {
> ResourceCloser closer = new ResourceCloser();
> try {
> String messageSelector = correlationId == null ? null : "JMSCorrelationID = '" + correlationId
+ "'";
> javax.jms.Message replyMessage = consumer.receive(receiveTimeout);
> if (replyMessage == null) 
> { throw new RuntimeException("Timeout receiving message with correlationId " + correlationId);
} 
> Is this the problem why the temporary queue is not been closed in case of a timeout?
Is there an solution for this problem?



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

Mime
View raw message