You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Andrea Cosentino (Jira)" <ji...@apache.org> on 2019/11/06 13:38:00 UTC

[jira] [Updated] (CAMEL-14148) exception during first resolve of temporary jms destination causes infinitive wait

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

Andrea Cosentino updated CAMEL-14148:
-------------------------------------
    Affects Version/s:     (was: 2.24.3)
                       2.24.2

> exception during first resolve of temporary jms destination causes infinitive wait
> ----------------------------------------------------------------------------------
>
>                 Key: CAMEL-14148
>                 URL: https://issues.apache.org/jira/browse/CAMEL-14148
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-jms
>    Affects Versions: 2.24.2
>            Reporter: Bas Claessen
>            Priority: Minor
>
> An exception during the first attempt to resolve a temporary destination will cause an infinitive wait for next resolve attempts after the exception is cleared.
> A likely scenario for this behaviour to occur is when no connection to a jms server can be established during startup.
> This bug is caused by not setting the refreshWanted to false when no previous destination exists in the org.apache.camel.component.jms.reply.TemporaryQueueReplyManager$TemporaryReplyQueueDestinationResolver class.
> {code:java}
> public Destination resolveDestinationName(Session session, String destinationName, boolean pubSubDomain) throws JMSException {
>     // use a temporary queue to gather the reply message
>     synchronized (refreshWanted) {
>         if (queue == null || refreshWanted.compareAndSet(true, false)) {
>             queue = session.createTemporaryQueue();
>             setReplyTo(queue);
>             if (log.isDebugEnabled()) {
>                 log.debug("Refreshed Temporary ReplyTo Queue. New queue: {}", queue.getQueueName());
>             }
>             refreshWanted.notifyAll();
>         }
>     }
>     return queue;
> }
> {code}
> When queue == null the refreshWanted.compareAndSet(true, false) is not executed.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)