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

Reply via email to