Hi Well, this gets really tricky, because as has been said, this is not expected.
The only advice I can give here is to do some (remote) debugging with a debugger and step through the process from the SlingMainServlet (actually probably RequestData.initResource). Regards Felix Am 14.01.2014 um 00:56 schrieb Olaf Otto <o...@x100.de>: > Hello > > Apparently, the behavior that the root path with .html extension was not > resolved at all was due to some persistent invalid internal state of the > resource resolver. After modifying an arbitrary resolver setting, the root > resource is now resolved (I re-installed Sling and the entire application to > make sure this remains the case). > > However, there still is an important difference: > > When requesting "/content/child1/child2/child3.html", the path passed to the > resource provider is "/content/child1/child2/child3.html", i.e. includes the > extension. When requesting /content/child1/child2.html, the resolver only > sees the path "/content/child1/child2". Since I am doing a subsequent > resource resolution, this results in a missing resolutionPathInfo=".html" of > the resolved resource. > > Thus, the remaining question is: Why are extensions not passed to the > provider in case the root path is requested? > > Kind regards, > Olaf > > -----Original Message----- > From: Olaf Otto [mailto:o...@x100.de] > Sent: Dienstag, 14. Januar 2014 07:29 > To: users@sling.apache.org > Subject: RE: ResourceProvider not invoked when provider root path is called > with HTML extension > > Hello, > > Thank you for the quick replies! The /child2 path is exclusively provided by > the custom resource provider. Would anyone know a hint why this just happens > in case of a .html extension? There must be some other actor influencing > this behavior. > > Kind regards, > Olaf > > -----Original Message----- > From: Felix Meschberger [mailto:fmesc...@adobe.com] > Sent: Montag, 13. Januar 2014 23:38 > To: users@sling.apache.org > Subject: Re: ResourceProvider not invoked when provider root path is called > with HTML extension > > Hi > > As Alex said, this is not expected, but . > > Do you happen to have a node /content/child1/child2.html in the repository ? > If so, this would overwrite the ResourceProvider because it has a full path > match as opposed to just ./child2. > > Regards > Felix > > Am 13.01.2014 um 14:09 schrieb Olaf Otto <o...@x100.de>: > >> Hi all, >> >> >> >> I have created a resource provider adding content as children into a >> tree of existing JCR content, like this: >> >> >> >> /content/child1 ß JCR content >> >> /content/child1/child2 ß Provided by ResourceProvider >> >> >> >> This works as expected: child2 is returned as a child of child1, and >> invoking /content/child1/child2 yields the provided resource. However, >> when calling /content/child1/child2.html, the resource provider is >> never asked for a resource. Instead, the default get servlet returns a >> synthetic resource, causing a redirect to >> /content/child1/child2.html/, resulting in a 404. Using a different >> extension works - when I call /content/child1/child2.json, the >> provider is called. Children of the root path however work with a >> .html extension: A request to /content/child1/child2/child3.html is >> mapped > to the resource provider. >> >> >> >> I have played with the resource provider's properties, trying both >> /content/child1/child2 and /content/child1/child2/ as root and setting >> owns root to true. This had no effect - the provider is only called if >> /content/child1/child2.html is added as a root path. This, however, is >> not an acceptable solution as child1 features both child2 and >> child2.html as children afterwards. >> >> >> >> In summary, this looks like a bug to me - am I right or am I missing a >> piece of the puzzle? >> >> >> >> Kind regards, >> >> Olaf >> > > >