[
https://issues.apache.org/jira/browse/CAMEL-7585?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Maurice Betzel updated CAMEL-7585:
----------------------------------
Description:
On bundle shutdown the DMLC for the temporary queue does not get discarded.
When stop() is called on the request reply JmsEndpoint the
runningMessageListeners.get() count returns 1 preventing to call stop on
ServiceSupport. Then inside the DMLC in refreshConnectionUntilSuccessful()
isRunning() gets called resulting in a JmsEndpoint isRunning() returning true
from ServiceSupport.
As a quick and dirty solution one can do this on bundle shutdown:
JmsEndpoint jmsEndpoint = camelContext.getEndpoint("amq:queue:Endpoint",
JmsEndpoint.class);
jmsEndpoint.onListenerContainerStopped(null);
This will decrement the runningMessageListeners (which should always be one for
temp queues because a singlethreadexecuter is used) to zero allowing stop() to
propagate to ServiceSupport.
was:
In bundle shutdown the DMLC for the temporairy queue does not get discarded.
When stop() is called on the request reply JmsEndpoint the
runningMessageListeners.get() count returns 1 preventing to call stop on
ServiceSupport. Then inside the DMLC in refreshConnectionUntilSuccessful()
isRunning() gets called resulting in a JmsEndpoint isRunning() returning true
from ServiceSupport.
As a quick and dirty solution one can do this on bundle shutdown:
JmsEndpoint jmsEndpoint = camelContext.getEndpoint("amq:queue:Endpoint",
JmsEndpoint.class);
jmsEndpoint.onListenerContainerStopped(null);
This will decrement the runningMessageListeners (which should always be one for
temp queues because a singlethreadexecuter is used) to zero allowing stop() to
propagate to ServiceSupport.
> Cyclic behaviour in shutdown of temporary queues used in a proxy
> ----------------------------------------------------------------
>
> Key: CAMEL-7585
> URL: https://issues.apache.org/jira/browse/CAMEL-7585
> Project: Camel
> Issue Type: Bug
> Components: camel-jms
> Affects Versions: 2.13.0, 2.13.2
> Environment: Windows 7 64
> Karaf 2.3.4
> ActiveMQ 5.9.0 / 5.10.0
> Spring 3.2.4
> Reporter: Maurice Betzel
> Priority: Minor
>
> On bundle shutdown the DMLC for the temporary queue does not get discarded.
> When stop() is called on the request reply JmsEndpoint the
> runningMessageListeners.get() count returns 1 preventing to call stop on
> ServiceSupport. Then inside the DMLC in refreshConnectionUntilSuccessful()
> isRunning() gets called resulting in a JmsEndpoint isRunning() returning true
> from ServiceSupport.
> As a quick and dirty solution one can do this on bundle shutdown:
> JmsEndpoint jmsEndpoint = camelContext.getEndpoint("amq:queue:Endpoint",
> JmsEndpoint.class);
> jmsEndpoint.onListenerContainerStopped(null);
> This will decrement the runningMessageListeners (which should always be one
> for temp queues because a singlethreadexecuter is used) to zero allowing
> stop() to propagate to ServiceSupport.
--
This message was sent by Atlassian JIRA
(v6.2#6252)