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)