Hi everyone I found the issue - luckily, it is a simple one:
https://issues.apache.org/jira/browse/SLING-3319 In essence, the split() function of ResourceProviderEntry requires a fix. Kind regards, Olaf -----Original Message----- From: Felix Meschberger [mailto:fmesc...@adobe.com] Sent: Dienstag, 14. Januar 2014 18:54 To: users@sling.apache.org Subject: Re: ResourceProvider not invoked when provider root path is called with HTML extension 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 >> > > >