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