Marcel Reutegger created SLING-9202:
---------------------------------------

             Summary: Repository init may fail with ClassCastException
                 Key: SLING-9202
                 URL: https://issues.apache.org/jira/browse/SLING-9202
             Project: Sling
          Issue Type: Bug
          Components: Repoinit
    Affects Versions: Repoinit JCR 1.1.20
            Reporter: Marcel Reutegger


A repoinit may fail when {{restriction()}} has multiple values.

{noformat}
java.lang.RuntimeException: Failed to set principal-based ACL (class 
org.apache.jackrabbit.oak.plugins.value.jcr.ValueImpl cannot be cast to class 
java.lang.Comparable (org.apache.jackrabbit.oak.plugins.value.jcr.ValueImpl is 
in unnamed module of loader 
org.apache.felix.framework.BundleWiringImpl$BundleClassLoader @37316529; 
java.lang.Comparable is in module java.base of loader 'bootstrap'))
        at 
org.apache.sling.jcr.repoinit.impl.AclVisitor.visitSetAclPrincipalBased(AclVisitor.java:109)
 [org.apache.sling.jcr.repoinit:1.1.20]
        at 
org.apache.sling.repoinit.parser.operations.SetAclPrincipalBased.accept(SetAclPrincipalBased.java:53)
 [org.apache.sling.repoinit.parser:1.4.2]
        at 
org.apache.sling.jcr.repoinit.impl.JcrRepoInitOpsProcessorImpl.apply(JcrRepoInitOpsProcessorImpl.java:54)
 [org.apache.sling.jcr.repoinit:1.1.20]
        at 
org.apache.sling.jcr.repoinit.impl.RepositoryInitializerFactory.processRepository(RepositoryInitializerFactory.java:126)
 [org.apache.sling.jcr.repoinit:1.1.20]
        at 
org.apache.sling.jcr.base.AbstractSlingRepositoryManager.executeRepositoryInitializers(AbstractSlingRepositoryManager.java:590)
 [org.apache.sling.jcr.base:3.1.0]
        at 
org.apache.sling.jcr.base.AbstractSlingRepositoryManager.initializeAndRegisterRepositoryService(AbstractSlingRepositoryManager.java:534)
 [org.apache.sling.jcr.base:3.1.0]
        at 
org.apache.sling.jcr.base.AbstractSlingRepositoryManager.access$300(AbstractSlingRepositoryManager.java:92)
 [org.apache.sling.jcr.base:3.1.0]
        at 
org.apache.sling.jcr.base.AbstractSlingRepositoryManager$4.run(AbstractSlingRepositoryManager.java:496)
 [org.apache.sling.jcr.base:3.1.0]
Caused by: java.lang.ClassCastException: class 
org.apache.jackrabbit.oak.plugins.value.jcr.ValueImpl cannot be cast to class 
java.lang.Comparable (org.apache.jackrabbit.oak.plugins.value.jcr.ValueImpl is 
in unnamed module of loader 
org.apache.felix.framework.BundleWiringImpl$BundleClassLoader @37316529; 
java.lang.Comparable is in module java.base of loader 'bootstrap')
        at 
java.base/java.util.ComparableTimSort.countRunAndMakeAscending(ComparableTimSort.java:320)
        at 
java.base/java.util.ComparableTimSort.sort(ComparableTimSort.java:188)
        at java.base/java.util.Arrays.sort(Arrays.java:1249)
        at 
org.apache.sling.jcr.repoinit.impl.AclUtil.compareArrays(AclUtil.java:315) 
[org.apache.sling.jcr.repoinit:1.1.20]
        at 
org.apache.sling.jcr.repoinit.impl.AclUtil$LocalAccessControlEntry.sameRestrictions(AclUtil.java:387)
 [org.apache.sling.jcr.repoinit:1.1.20]
        at 
org.apache.sling.jcr.repoinit.impl.AclUtil$LocalAccessControlEntry.isContainedIn(AclUtil.java:350)
 [org.apache.sling.jcr.repoinit:1.1.20]
        at 
org.apache.sling.jcr.repoinit.impl.AclUtil.contains(AclUtil.java:278) 
[org.apache.sling.jcr.repoinit:1.1.20]
        at 
org.apache.sling.jcr.repoinit.impl.AclUtil.containsEquivalentEntry(AclUtil.java:264)
 [org.apache.sling.jcr.repoinit:1.1.20]
        at 
org.apache.sling.jcr.repoinit.impl.AclUtil.setPrincipalAcl(AclUtil.java:190) 
[org.apache.sling.jcr.repoinit:1.1.20]
        at 
org.apache.sling.jcr.repoinit.impl.AclVisitor.visitSetAclPrincipalBased(AclVisitor.java:107)
 [org.apache.sling.jcr.repoinit:1.1.20]
        ... 7 common frames omitted
{noformat}



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

Reply via email to