[
https://issues.apache.org/jira/browse/SLING-6350?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15728848#comment-15728848
]
Sandro Boehme commented on SLING-6350:
--------------------------------------
If we just replace {{**}} in the pattern with 0..N then the tests you mentioned
should still assertFalse as 0..N would still need to be between the two slashes:
{code}
final Path path_1 = new Path("glob:/apps/**/*.html");
assertFalse(path_1.matches("/apps/a.html"));
final Path path_3 = new Path("glob:/a/m-p/$structure/**/[cmp]/*.html");
assertFalse(path_3.matches("/a/m-p/$structure/1/2/3/4/5/6[cmp]/test.html"));
{code}
I would also assume that this
{code}
assertFalse(path.matches("glob:/**"));
assertFalse(path.matches("glob:/**/*.jsp"));
{code}
should assertTrue for {{final Path path = new Path("/apps/myproject");}}
> MountByFS does not work if the Provider Root mounts below /libs or /apps and
> has more than 2 slashes
> ----------------------------------------------------------------------------------------------------
>
> Key: SLING-6350
> URL: https://issues.apache.org/jira/browse/SLING-6350
> Project: Sling
> Issue Type: Bug
> Components: Extensions
> Affects Versions: API 2.15.0
> Reporter: Sandro Boehme
> Fix For: API 2.16.2
>
> Attachments: sling-api-patch.txt
>
>
> If I mount a file system path to e.g. '/libs/sling/resource-editor' jsp
> changes are not picked up by the jsp compiler.
> FileMonitor.sendEvents(... ObservationReporter) gets an ObservationReporter
> as a parameter that doesn't return ObserverConfigurations in
> getObserverConfigurations() thus no changes are reported to the jsp compiler.
> The reason is, that they are not added in it's constructor
> (BasicObservationReporter:99) because 'providerPath.matches(p.getPath())'
> returns false. If I manually change that in the debugger to true the mount
> works well. In this example the providerPath is '/libs/sling/resource-editor'
> and p.getPath() is 'glob:/libs/**/*.jsp'. (See patch for PathTest.java)
> org.apache.sling.api.resource.path.Path.matches() in line 128 and following
> counts three slashes for '/libs/sling/resource-editor' and uses the substring
> of the glob expression until a fourth (3+1) slash or the end of the string.
> This leads to a glob expression of 'glob:/libs/**/*.jsp' instead of
> 'glob:/libs/**' and returns false.
> I don't have an overview of all use cases but judging from the PathTest the
> amount of slashes counted should not exceed the amount of slashes in the glob
> expression minus one if the glob expression uses an extension. I will add a
> patch for org.apache.sling.api.resource.path.Path as well so you can choose
> not to apply it if it's not correct.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)