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

Sonal commented on SLING-8946:
------------------------------

[~diru] I tried to apply this change on Sling resource resolver 1.6.8 by cherry 
picking commit : 
[https://github.com/apache/sling-org-apache-sling-resourceresolver/commit/4f48deeddde060447cdcd00730263a9cb8e9ae6d]
 but after applying this fix integration tests are failing with random resource 
not found errors. Around 50 tests are failing on AEM servers. Can you please 
suggest on this? All tests were passing before applying this fix. Any 
suggestion to fix these.

 
{quote}org.apache.sling.testing.clients.ClientException: Expected HTTP Status: 
302 . Instead 403 was 
returned!org.apache.sling.testing.clients.ClientException: Expected HTTP 
Status: 302 . Instead 403 was returned! Response Content:<!DOCTYPE HTML PUBLIC 
"-//IETF//DTD HTML 2.0//EN"><html>    <head><title>403 Forbidden</title></head> 
   <body>        <h1>Forbidden</h1>        <p>Cannot serve request to 
/content/we-retail/qatestpage_c90223f8-8b8f-4a91-8520-8d5fd440dec4.commerce.smartlist.management.html
 on this server</p>                                <hr>        
<address>ApacheSling/2.6 (jetty/9.4.12.v20180830, Java HotSpot(TM) 64-Bit 
Server VM 1.8.0_144, Windows 10 10.0 amd64)</address>    </body></html>(return 
code=403) at 
org.apache.sling.testing.clients.util.HttpUtils.throwError(HttpUtils.java:102) 
at 
org.apache.sling.testing.clients.util.HttpUtils.verifyHttpStatus(HttpUtils.java:40)
 at 
org.apache.sling.testing.clients.AbstractSlingClient.doStreamRequest(AbstractSlingClient.java:325)
 at 
org.apache.sling.testing.clients.AbstractSlingClient.doRequest(AbstractSlingClient.java:471)
 at 
org.apache.sling.testing.clients.AbstractSlingClient.doPost(AbstractSlingClient.java:571)
 at 
com.adobe.cq.testing.client.CommerceClient.createSmartList(CommerceClient.java:493)
 at 
com.adobe.cq.commerce.it.http.SmartlistIT.testAddNewSmartlistNotDefault(SmartlistIT.java:152)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 at java.lang.reflect.Method.invoke(Method.java:498) at 
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
 at 
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
 at 
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
 at 
org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
 at 
org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26) 
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27) 
at org.junit.rules.ExternalResource$1.evaluate(ExternalResource.java:48) at 
org.junit.rules.TestWatcher$1.evaluate(TestWatcher.java:55) at 
org.junit.rules.TestWatcher$1.evaluate(TestWatcher.java:55) at 
org.junit.rules.TestWatcher$1.evaluate(TestWatcher.java:55) at 
org.apache.sling.testing.junit.rules.TestStickyCookieRule$1.evaluate(TestStickyCookieRule.java:34)
 at org.junit.rules.RunRules.evaluate(RunRules.java:20) at 
org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325) at 
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
 at 
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
 at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) at 
org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) at 
org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) at 
org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) at 
org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) at 
org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26) 
at org.junit.rules.ExternalResource$1.evaluate(ExternalResource.java:48) at 
org.junit.rules.ExternalResource$1.evaluate(ExternalResource.java:48) at 
com.adobe.granite.testing.junit.rules.DefaultReplicationAgents$1.evaluate(DefaultReplicationAgents.java:50)
 at 
org.apache.sling.testing.junit.rules.instance.ExistingInstanceStatement.evaluate(ExistingInstanceStatement.java:62)
 at 
org.apache.sling.testing.junit.rules.instance.ExistingInstanceStatement.evaluate(ExistingInstanceStatement.java:62)
 at org.junit.rules.RunRules.evaluate(RunRules.java:20) at 
org.junit.runners.ParentRunner.run(ParentRunner.java:363) at 
org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:89)
 at 
org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:41) 
at 
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:541)
 at 
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:763)
 at 
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:463)
 at 
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:209)
{quote}

> 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)

Reply via email to