ResourceLifecycleManager needs to be thread-safe
------------------------------------------------
Key: AMQCPP-288
URL: https://issues.apache.org/activemq/browse/AMQCPP-288
Project: ActiveMQ C++ Client
Issue Type: Bug
Components: CMS Impl
Affects Versions: 3.1, 3.0.1
Reporter: Ivan Pechorin
Assignee: Timothy Bish
We use ActiveMQ C++ 3.x client in a multi-threaded application. In particular,
we use activemq::cmsutil::SessionPool and activemq::cmsutil::PooledSession.
Methods createCachedProducer and createCachedConsumer of class PooledSession do
not synchronize access to their shared ResourceLifecycleManager, and
ResourceLifecycleManager itself is not thread-safe. Therefore, it is not safe
to use pooled session from multiple threads, even if we guarantee that each
PooledSession is used from one thread at any given time.
To resolve this issue, ResourceLifecycleManager needs to be thread-safe, i.e.
we need to add synchronization to all of its add* methods.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.