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

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

Bas Claessen created CAMEL-14148:
------------------------------------

             Summary: 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.3
            Reporter: Bas Claessen


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)