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)