You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@sling.apache.org by "Timothee Maret (Jira)" <ji...@apache.org> on 2021/01/30 20:14:00 UTC

[jira] [Commented] (SLING-10088) PatternSyntaxException: Unclosed group near index x

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

Timothee Maret commented on SLING-10088:
----------------------------------------

PR [#46|https://github.com/apache/sling-org-apache-sling-distribution-core/pull/46] changed the way FileVault [DefaultPathFilter#isAbsolute |https://github.com/apache/jackrabbit-filevault/blob/master/vault-core/src/main/java/org/apache/jackrabbit/vault/fs/filter/DefaultPathFilter.java#L99-L101] and [DefaultPathFilter#translate|https://github.com/apache/jackrabbit-filevault/blob/master/vault-core/src/main/java/org/apache/jackrabbit/vault/fs/filter/DefaultPathFilter.java#L107-L121] quake. Those methods decide if a path is absolute by checking if the pattern starts with a {{/}}. This implementation fails when providing a quoted path like in PR [#46|https://github.com/apache/sling-org-apache-sling-distribution-core/pull/46]. This should be fixed in FileVault by using a matcher to decide absolute path instead of comparing the pattern string.

We could work around this issue in Sling while still quoting specials chars (this issue) with something along the lines of

{code}
if (path.startsWith("/")) {
  return "/" + Pattern.quote(path.substring(1));
} else {
  return Pattern.quote(path);
}
{code}


> PatternSyntaxException: Unclosed group near index x
> ---------------------------------------------------
>
>                 Key: SLING-10088
>                 URL: https://issues.apache.org/jira/browse/SLING-10088
>             Project: Sling
>          Issue Type: Bug
>          Components: Content Distribution
>    Affects Versions: Content Distribution Core 0.4.2
>            Reporter: Christian Schneider
>            Assignee: Christian Schneider
>            Priority: Critical
>             Fix For: Content Distribution Core 0.4.4
>
>          Time Spent: 0.5h
>  Remaining Estimate: 0h
>
> if a path contains a "(" the following exception will occur when we try to distribute it.
> As far as I can tell the problem is a missing escaping of the path in org.apache.sling.distribution.serialization.impl.vlt.VltUtils.createFilter.
> {code:java}
> [org.apache.sling.distribution.core:0.4.3.T20200720-c96d3fb]        at org.apache.sling.distribution.journal.impl.publisher.PackageMessageFactory.createAdd(PackageMessageFactory.java:95) [org.apache.sling.distribution.journal:0.2.0.T202009251421-0284693]        at org.apache.sling.distribution.journal.impl.publisher.PackageMessageFactory.create(PackageMessageFactory.java:86) [org.apache.sling.distribution.journal:0.2.0.T202009251421-0284693]        at org.apache.sling.distribution.journal.impl.publisher.DistributionPublisher.lambda$execute$1(DistributionPublisher.java:271) [org.apache.sling.distribution.journal:0.2.0.T202009251421-0284693]        at org.apache.sling.distribution.journal.shared.DistributionMetricsService.timed(DistributionMetricsService.java:147) [org.apache.sling.distribution.journal:0.2.0.T202009251421-0284693]        at org.apache.sling.distribution.journal.impl.publisher.DistributionPublisher.execute(DistributionPublisher.java:270) [org.apache.sling.distribution.journal:0.2.0.T202009251421-0284693]        at org.apache.sling.distribution.journal.impl.publisher.DistributionPublisher.execute(DistributionPublisher.java:259) [org.apache.sling.distribution.journal:0.2.0.T202009251421-0284693]        at org.apache.sling.distribution.impl.DefaultDistributor.distribute(DefaultDistributor.java:60) [org.apache.sling.distribution.core:0.4.3.T20200720-c96d3fb]        at org.apache.sling.distribution.chunked.ChunkedDistribution.distributeChunk(ChunkedDistribution.java:124) [org.apache.sling.distribution.chunked:0.1.0.20210121164255060]        at org.apache.sling.distribution.chunked.ChunkedDistribution.distribute(ChunkedDistribution.java:102) [org.apache.sling.distribution.chunked:0.1.0.20210121164255060]        at org.apache.sling.distribution.chunked.ChunkedDistribution.process(ChunkedDistribution.java:72) [org.apache.sling.distribution.chunked:0.1.0.20210121164255060]        at org.apache.sling.event.impl.jobs.queues.JobQueueImpl.startJob(JobQueueImpl.java:293) [org.apache.sling.event:4.2.12]        at org.apache.sling.event.impl.jobs.queues.JobQueueImpl.access$100(JobQueueImpl.java:60) [org.apache.sling.event:4.2.12]        at org.apache.sling.event.impl.jobs.queues.JobQueueImpl$1.run(JobQueueImpl.java:229) [org.apache.sling.event:4.2.12]        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)        at java.base/java.lang.Thread.run(Thread.java:834)Caused by: 
> java.util.regex.PatternSyntaxException: Unclosed group near index 20/nodewith(shouldwork        at java.base/java.util.regex.Pattern.error(Pattern.java:2027)        at java.base/java.util.regex.Pattern.accept(Pattern.java:1877)        at java.base/java.util.regex.Pattern.group0(Pattern.java:3060)        at java.base/java.util.regex.Pattern.sequence(Pattern.java:2123)        at java.base/java.util.regex.Pattern.expr(Pattern.java:2068)        at java.base/java.util.regex.Pattern.compile(Pattern.java:1782)        at java.base/java.util.regex.Pattern.<init>(Pattern.java:1428)        at java.base/java.util.regex.Pattern.compile(Pattern.java:1068)        at org.apache.jackrabbit.vault.fs.filter.DefaultPathFilter.setPattern(DefaultPathFilter.java:68) [org.apache.jackrabbit.vault:3.4.0]        at org.apache.jackrabbit.vault.fs.filter.DefaultPathFilter.<init>(DefaultPathFilter.java:48) [org.apache.jackrabbit.vault:3.4.0]        at org.apache.sling.distribution.serialization.impl.vlt.VltUtils.createFilter(VltUtils.java:92) [org.apache.sling.distribution.core:0.4.3.T20200720-c96d3fb]        at org.apache.sling.distribution.serialization.impl.vlt.FileVaultContentSerializer.exportToStream(FileVaultContentSerializer.java:115) [org.apache.sling.distribution.core:0.4.3.T20200720-c96d3fb]        ... 21 common frames omitted
> {code}
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)