Jaewoong Choi created AMQ-4669:
----------------------------------
Summary: StoreDurableSubscriberCursor cursor is instantiated twice
if PendingDurableSubscriberPolicy is explicitly configured, then results in
missing TopicStorePrefetch instance in it.
Key: AMQ-4669
URL: https://issues.apache.org/jira/browse/AMQ-4669
Project: ActiveMQ
Issue Type: Bug
Components: Broker
Affects Versions: 5.7.0
Reporter: Jaewoong Choi
If used, PendingDurableSubscriberPolicy is used twice for
StoreDurableSubscriberCursor instantiation, meaning
StoreDurableSubscriberCursor is instantiated twice: firstly at
TopicRegion#createSubscription and secondly at
DurableTopicSubscription#activate invocation.
The critical side effect by the above is that, TopicStorePrefetch (internal
PendingMessageCursor for persistent message store) is created/assigned only to
the 1st store cursor, and then this 1st store cursor is replaced by the 2nd
one. And this 2nd cursor is used at runtime but without having
TopicStorePrefetch cursor, so subscriptions cannot consume any published
message.
Simply, with the following code, topic durable subscribers never consume any
published message.
{code}
PolicyEntry policyEntry = new PolicyEntry();
policyEntry.setPendingDurableSubscriberPolicy(new
StorePendingDurableSubscriberMessageStoragePolicy());
{code}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira