You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@sling.apache.org by "Sonal (Jira)" <ji...@apache.org> on 2020/01/29 09:38:00 UTC

[jira] [Comment Edited] (SLING-8946) Non-deterministic shadowing of resource observation

    [ https://issues.apache.org/jira/browse/SLING-8946?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17025741#comment-17025741 ] 

Sonal edited comment on SLING-8946 at 1/29/20 9:37 AM:
-------------------------------------------------------

If i keep a time delay of 5 secs between 2 tests ,all tests pass. So some operation is taking time to complete and making the server state incompatible during that time.

Also as per the change update() is happening at activation which was not the case earlier. Can you please suggest why is this required?

[https://github.com/apache/sling-org-apache-sling-resourceresolver/commit/4f48deeddde060447cdcd00730263a9cb8e9ae6d#diff-c2a07f6ec3732814e0957272901af295R489]


was (Author: sonagupt31):
If i keeps a time delay between the tests are tests pass. So some operation is taking time to complete and making the server state incompatible during that time.

Also as per the change update() is happening at activation which was not the case earlier. Can you please suggest why is this required?

[https://github.com/apache/sling-org-apache-sling-resourceresolver/commit/4f48deeddde060447cdcd00730263a9cb8e9ae6d#diff-c2a07f6ec3732814e0957272901af295R489]

> 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
>            Assignee: Robert Munteanu
>            Priority: Critical
>             Fix For: Resource Resolver 1.6.10
>
>          Time Spent: 1.5h
>  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)