Christopher L. Shannon created AMQ-9436:
-------------------------------------------

             Summary: StoreQueueCursor creates different audits for persistent 
and non persistent cursors
                 Key: AMQ-9436
                 URL: https://issues.apache.org/jira/browse/AMQ-9436
             Project: ActiveMQ Classic
          Issue Type: Bug
          Components: Broker
    Affects Versions: 6.0.1, 5.18.3
            Reporter: Christopher L. Shannon
            Assignee: Christopher L. Shannon
             Fix For: 6.1.0, 5.18.4, 6.0.2


While working on AMQ-9435 I noticed that StoreQueueCursor incorrectly sets the 
start flag to true first before calling calling super.start() in the start 
method. This means that when super is called the message audit is never 
initialized as it thinks it was already started so it stays null forever. This 
causes both the persistent and non-persistent cursors to create their own 
audits which ends up duplicating objects when they should share the same audit 
so we get duplicate detection across persistent and non persistent messages and 
also so that we save memory by not duplicating the objects and allowing audit 
depth config to control how large the audit is. 

Something else I noticed is that the start/stop methods do not protect against 
calling them more than once and they should to prevent duplicate initialization 
so I also will fix that.

I checked and durables are already correct with their audit tracking (the audit 
is passed down to all of the sub prefetches and shared)



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to