Fixing a race condition in ActiveMQMessageConsumer that could cause a
NPE when the consumer is closing by only modifing pendingAck inside of
the deliveredMessagesMutex
Thanks to Michael Wong for providing the test case for this issue.
(cherry picked from commit c02bc64846)
Fixing a race condition in ActiveMQMessageConsumer that could cause a
NPE when the consumer is closing
Thanks to Michael Wong for providing the test case for this issue.
(cherry picked from commit 6bfa13b6e7)
Better management of shared resources between the background run thread
and the main start / stop thread. Makes sure to cleanup all resources
before finally throwing on stop to prevent leaking and resources.
(cherry picked from commit ff99872263)
Conflicts:
activemq-client/src/main/java/org/apache/activemq/transport/tcp/TcpTransportServer.java
Prevent conccurent calls to handleTransportFailure from closing an
already reconnected transport instance.
(cherry picked from commit 23a5beb86c)
Conflicts:
activemq-client/src/main/java/org/apache/activemq/transport/failover/FailoverTransport.java
Don't log the pull timed out messages that might still be in the
unconsumed list during rollback of unconsumed messages
(cherry picked from commit aaecdff8b4)
Moving the bytes copy to the parent Message class to solve this this
issue for all message types as that is the root cause
(cherry picked from commit e69c2cbad6)
Synchronizing ActiveMQText message on state changes for the content and
text fields so that they are always changed together. This will prevent
race conditions where data can be lost when using concurrent store and
dispatch.
(cherry picked from commit e0c5499964)
Fixing copy method of ActiveMQTextMessage to prevent a race condition
when concurrent store and dispatch is used with Queues
We may need explicity synchronization between the text and content fields
in the future if other issues pop up
(cherry picked from commit ea09159a40)
Update the threads created by the SelectorManager to be daemon threads.
(cherry picked from commit e2b4ca2c59)
Conflicts:
activemq-client/src/main/java/org/apache/activemq/transport/nio/SelectorManager.java
Fixing CronParserTest so that it checks 24 hour format properly when
using a timezone shifted by 30 minutes
Thanks to Jamie Goodyear for the patch
(cherry picked from commit 0f445a535f)
Fixing a race condition that exists in the decompress method of
ActiveMQBytesMessage that can cause an invalid length to be read.
(cherry picked from commit 5f7a81f928)
The chooseValue method in DestinationMap will now always return the
exact match, if there is one, else it will then sort as before.
(cherry picked from commit 8e2176d93c)
Adding support for consumers on virtual destinations to create network
demand. This behavior is turned off by default but can be enabled.
For example, if a consumer comes online for a queue that is part of a
VirtualTopic, this will cause a network of brokers to forward messages
because a demand subscription will be created. Same for if a consumer
comes online for a forwarded destination from a composite
destination.
There is also an option to enable flow based on the existence of a
virtual destination if the virtual destination is forwarding to a
Queue.
Full configuration instructions for this feature will be on the wiki page.