Preventing a divide by 0 error by taking a local reference to the
prefetch size to guarantee that the value doesn't change after the > 0
check
(cherry picked from commit 42dabb7a7a7f981eb57d46663456ac1d7c912acb)
Fixing PList size tracking by moving the null assignment on removal to
after the onRemoval method is called to make sure that the decrement is
done properly.
(cherry picked from commit d635a369404db25e1c450283a224ed89abf3c5a7)
Fixing an issue that caused statistics for a transactional temporary
queue to be updated twice by mistake. Moved the statistics update into
tryOrderedCursorAdd so that the update is called immediately only if
not inside a transaction.
(cherry picked from commit 903dec615c7932475bd3e6cd869af25f01de64b2)
Checking for the correct number of arguments before reflectively
invoking a method in DefaultAuthorizationMap
(cherry picked from commit 6be36305f6669ded47bcd33016583a86bdda04dd)
Checking for leading wildcard in the prefix for a virtualtopic,
modifying the behavior of shouldDispatch in the VirtualTopicInterceptor.
(cherry picked from commit 6bf5987921f6fdb6844652bb77e2fc14b002ccf2)
Added two new properties for configuration to a network bridge,
advisoryPrefetchSize and advisoryAckPercentage. By default
advisoryPrefetchSize is set to 0, which is disabled, and will use the
prefetchSize value unless otherwise set. Also added validation to
prefetchSize to make sure it is greater than 0 as 0 is not allowed.
(cherry picked from commit 297eadf7461fe4043c81c6f8d806a7c61b680731)
Make field volatile since it is written to outside of any locks and read
both in and out of locking.
(cherry picked from commit 8031d77f984e4d3c54782dd4934f48b35cf16c00)
Moving beforeMarshall back to the store implementations because we don't
want all store implementations to marshall (such as memory store)
This reverts commit 32913408a68ec92e3d202f5dcc3923d5c7d7588a.
Reverting the change to move clearMarshalledState into the callback
listener as beforeMarshall is now called before the async message add
Revert 7f5c09f2d77c77f87a47fb738870c5ee5bc78c27
Update for some added thread safety. Adds method healthStatus that will
regenrate the status from the healthList data which is more intuitive
than the getCurrentStatus which doesn't update state and requires
periodic calls to healthList to capture current metrics.
(cherry picked from commit 19fd084a83c990f9fb75a5f2becb48ac808a1b36)
Disabling async queue message store when persistJMSRedelivered is turned
on for a destination. That flag will cause a sync update later on
dispatch which can cause a race condition if the original message add is
processed after the update. This can cause a duplicate message to be
stored.
(cherry picked from commit b2327db3b79dffd42fd5c6ba85720a5d9c302052)
Moving clearedMarshalledState execution to the async listener on an
async add to the message store. This is necessary to make sure this
logic doens't execute until after the message is marshalled for the
store.
(cherry picked from commit 75990ef14a092b629bf8d2127bc4786e51b31684)
Fixing the removal logic on virtual destination remove inside of
Advisory Broker to clean up virtual destination maps properly. Added a
test to verify. Also added new debug logging to help track down any
future issues.
(cherry picked from commit a2781e3966ded41a241d24ffb8d85d410c39eb21)
- recoverSubscription()
-- map is defined as LinkedHashMap<MessageId, Message>
-- msg is defined as <map> entry.getValue() so must be a Message
-- condition if (msg.getClass() == MessageId.class) could never be true
-- no need to cast at all when using generics
- recoverNextMessages()
-- basically same code copy/pasted so same fix
Removed 2 conditions from ServerSessionPoolImpl that would result in impossible casts. Conditions removed were trying to cast ActiveMQQueueSession and ActiveMQTopicSession to ActiveMQSession which is illegal.
Since it isn't obvious what to do if you get an ActiveMQQueueSession or ActiveMQTopicSession from getServerSession() I make it fall back to the else condition which raises an async exception. This is better than getting a ClassCastException at runtime.
Remove impossible cast in MemoryMessageStore
(cherry picked from commit 4a937def7db8d5f8229c95c05843f98de1803068)
Adding NetworkBridgeStatistics and also a received count for bridges
when they are in duplex mode.
(cherry picked from commit 10c998b0bc9728276a738ed24d20c6fc82c6365a)
Ensure that a message sent to the store for the DLQ is rewritten so that
its updated values are written to prevent exirpation loops and loss of
reollback cause etc.
(cherry picked from commit 505a76a8bb7180debbd36637dce1b9101150d0b4)
AMQ-6122
Prevent messages on DLQ for looping back onto the same DLQ. Prevents
expired messages from bouncing back and duplicate messages from the
store from causing a deadlock.
(cherry picked from commit 66cfc7bab3dfa2e079bbc5276312c97ab02cae4f)
The JavaRuntimeConfigurationBroker can now apply a subset of policy
properties retrospectively to existing destinations versus applying
all properties of the policy update.
(cherry picked from commit a253ad3c71a07bb4d1883fe84be217af9855cfc6)