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)

Reply via email to