[ https://issues.apache.org/jira/browse/OAK-7710?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16612630#comment-16612630 ]
Vikas Saurabh commented on OAK-7710: ------------------------------------ [~tomek.rekawek], afaiu, now locally observed events would be dispatched essentially from inside {{globalStore#merge}}. There's a good chunk of code (which, admittedly, I don't quite grasp) beyond {{globalStore#merge}} in {{merge}} method \[0] - the dispatched, afaiu, refers to new {{'global'NodeState}} but still old states from other stores (which would be ok afaict - those being read-only)... but there's that hookEnhancer thing (which I've no idea about). Can you please confirm that we're still ok? \[0]: {noformat} if (!hookEnhancer.getUpdatedBuilder().isPresent()) { // it means that the commit hook wasn't invoked, because there were // no changes on the global store. we should invoke it anyway. hookEnhancer.processCommit(globalResult, globalResult, info); } CompositeNodeBuilder updatedBuilder = hookEnhancer.getUpdatedBuilder().get(); // merge the partial builders for (MountedNodeStore mns : ctx.getNonDefaultStores()) { NodeBuilder partialBuilder = updatedBuilder.getNodeBuilder(mns); if (mns.getMount().isReadOnly()) { assertNoChange(mns, partialBuilder); resultStates.put(mns, mns.getNodeStore().getRoot()); } else { NodeState partialState = mns.getNodeStore().merge(partialBuilder, EmptyHook.INSTANCE, info); resultStates.put(mns, partialState); } } CompositeNodeState newRoot = ctx.createRootNodeState(resultStates); {noformat} > CompositeNodeStore does not dispatch external events to observers > ----------------------------------------------------------------- > > Key: OAK-7710 > URL: https://issues.apache.org/jira/browse/OAK-7710 > Project: Jackrabbit Oak > Issue Type: Bug > Components: composite > Reporter: Vikas Saurabh > Assignee: Tomek Rękawek > Priority: Major > Fix For: 1.10, 1.9.9 > > Attachments: OAK-7710-2.patch, OAK-7710-3.patch, OAK-7710.patch, > OAK-7710.test.patch > > > Currently {{CompositeNodeStore}} only ever dispatches changes from inside its > {{merge}} method. This then loses external events that could be read in > background read of some underlying {{DocumentNodeStore}}. > [^OAK-7710.test.patch] has an ignored test representing the scenario. -- This message was sent by Atlassian JIRA (v7.6.3#76005)