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

Thomas Mueller commented on OAK-11529:
--------------------------------------

Hm, I don't understand how this could result in a recursion... I am reluctant 
to say this, but it looks like a JVM issue to me.

{noformat}
    protected String quote(String pathOrName) {
        pathOrName = pathOrName.replaceAll("]", "]]");  <== AstElement.java:45
        return '[' + pathOrName + ']';
    }

    @Override
    public String toString() {
        return quote(nodeTypeName) + " as " + quote(selectorName); <== 
SelectorImpl.java:261
    }

    @Override
    public String getPlan(NodeState rootState) {
        StringBuilder buff = new StringBuilder();
        buff.append(toString()); <== SelectorImpl.java:414


StringConcatHelper.stringOf
    static String stringOf(Object value) {
        String s;
        return (value == null || (s = value.toString()) == null) ? "null" : s;
    }
{noformat}

> RegExp recursion in AstElement
> ------------------------------
>
>                 Key: OAK-11529
>                 URL: https://issues.apache.org/jira/browse/OAK-11529
>             Project: Jackrabbit Oak
>          Issue Type: Bug
>          Components: query
>    Affects Versions: 1.76.0
>            Reporter: Julian Reschke
>            Priority: Major
>
> Seen in
> https://ci-builds.apache.org/job/Jackrabbit/job/jackrabbit-oak-trunk-derby-ibm-java21/90/org.apache.jackrabbit$oak-jcr/testReport/junit/org.apache.jackrabbit.oak.jcr.document/GetMixinNodeTypesTest/getMixinNodeTypes/
> {code}
> Fehlermeldung
> Stack overflow during pattern compilation
> ]
> Stacktrace
> java.util.regex.PatternSyntaxException: 
> Stack overflow during pattern compilation
> ]
>       at java.base/java.util.regex.Pattern.error(Pattern.java:2204)
>       at java.base/java.util.regex.Pattern.<init>(Pattern.java:1578)
>       at java.base/java.util.regex.Pattern.compile(Pattern.java:1101)
>       at java.base/java.lang.String.replaceAll(String.java:3837)
>       at 
> org.apache.jackrabbit.oak.query.ast.AstElement.quote(AstElement.java:45)
>       at 
> org.apache.jackrabbit.oak.query.ast.SelectorImpl.toString(SelectorImpl.java:261)
>       at 
> java.base/java.lang.StringConcatHelper.stringOf(StringConcatHelper.java:467)
>       at 
> org.apache.jackrabbit.oak.query.ast.SelectorImpl.toString(SelectorImpl.java:261)
>       at 
> java.base/java.lang.StringConcatHelper.stringOf(StringConcatHelper.java:467)
>       at 
> org.apache.jackrabbit.oak.query.ast.SelectorImpl.toString(SelectorImpl.java:261)
>       at 
> java.base/java.lang.StringConcatHelper.stringOf(StringConcatHelper.java:467)
> ...
>       at 
> java.base/java.lang.StringConcatHelper.stringOf(StringConcatHelper.java:467)
>       at 
> org.apache.jackrabbit.oak.query.ast.SelectorImpl.toString(SelectorImpl.java:261)
>       at 
> org.apache.jackrabbit.oak.query.ast.SelectorImpl.getPlan(SelectorImpl.java:414)
>       at org.apache.jackrabbit.oak.query.QueryImpl.getPlan(QueryImpl.java:708)
>       at org.apache.jackrabbit.oak.query.QueryImpl.getRows(QueryImpl.java:615)
>       at 
> org.apache.jackrabbit.oak.query.ResultImpl$1.iterator(ResultImpl.java:72)
>       at 
> org.apache.jackrabbit.oak.plugins.identifier.IdentifierManager.resolveUUIDToTree(IdentifierManager.java:353)
>       at 
> org.apache.jackrabbit.oak.plugins.identifier.IdentifierManager.getTree(IdentifierManager.java:135)
>       at 
> org.apache.jackrabbit.oak.security.user.AuthorizableBaseProvider.getByContentID(AuthorizableBaseProvider.java:59)
>       at 
> org.apache.jackrabbit.oak.security.user.AuthorizableBaseProvider.getByID(AuthorizableBaseProvider.java:54)
>       at 
> org.apache.jackrabbit.oak.security.user.UserProvider.getAuthorizable(UserProvider.java:209)
>       at 
> org.apache.jackrabbit.oak.security.user.UserManagerImpl.getAuthorizable(UserManagerImpl.java:125)
>       at 
> org.apache.jackrabbit.oak.security.user.UserInitializer.initialize(UserInitializer.java:141)
>       at 
> org.apache.jackrabbit.oak.OakInitializer.initialize(OakInitializer.java:59)
>       at org.apache.jackrabbit.oak.Oak.initialContent(Oak.java:715)
>       at 
> org.apache.jackrabbit.oak.Oak.createNewContentRepository(Oak.java:745)
> {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to