[ https://issues.apache.org/jira/browse/SLING-8946?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17001076#comment-17001076 ]
Dirk Rudolph commented on SLING-8946: ------------------------------------- I created [https://github.com/apache/sling-org-apache-sling-resourceresolver/pull/16]. If accepted, I would like to have this change back ported to 1.5.x. Whats the process to follow for that? Also, when calling the new {{updateHandlers()}} there is always a {{update()}} called on the handler which again calls {{ResourceProvider#update(long)}} with a change set fixed to EXCLUDED_PATHS_CHANGED + OBSERVATION_LISTENER_CHANGED [1]. I would like to propose to do either or the other depending on where the update came from. To be followed up on in another improvement I guess. [1] https://github.com/apache/sling-org-apache-sling-resourceresolver/blob/master/src/main/java/org/apache/sling/resourceresolver/impl/providers/ResourceProviderHandler.java#L159 > Non-deterministic shadowing of resource observation > --------------------------------------------------- > > Key: SLING-8946 > URL: https://issues.apache.org/jira/browse/SLING-8946 > Project: Sling > Issue Type: Bug > Components: ResourceResolver > Affects Versions: Resource Resolver 1.5.34 > Reporter: Dirk Rudolph > Priority: Critical > Time Spent: 10m > Remaining Estimate: 0h > > The BasicObservationReporter implements shadowing of events being propagated > per ResourceProvider instance [1]. Assuming we do have 2 ResourceProviders > registered, where the one shadows the other like this: > - RP A registered on / > - RP B registered on /path > then currently the excludes given to the BasicObservationReporter are > different depending on either RP A or RP B gets registered first: > - RP A before RP B => excludes are empty > - RP B before RP A => excludes contain /path > This is because only the newly registered RP gets its ProviderContext updated > [2] > Same applies if RP B is registered before RP A and gets unregistered. In that > case the ObservationReporter of RP A stays untouched. > [1] > [https://github.com/apache/sling-org-apache-sling-resourceresolver/blob/master/src/main/java/org/apache/sling/resourceresolver/impl/observation/BasicObservationReporter.java#L102] > [2] > [https://github.com/apache/sling-org-apache-sling-resourceresolver/blob/master/src/main/java/org/apache/sling/resourceresolver/impl/providers/ResourceProviderTracker.java#L358] -- This message was sent by Atlassian Jira (v8.3.4#803005)