I am getting concurrencyModificationException when I try to iterate through Authorizable.declaredMemberOf() which is OOTB.
The issue occurs intermittently and not always . I am not modifying the original list any where.
Please let me know what should be done in this case.
Please see some stack trace here :
Caused by: java.util.ConcurrentModificationException: null
at java.util.HashMap$Ha**bleep**erator.nextNode(Unknown Source)
at java.util.HashMap$KeyIterator.next(Unknown Source)
at org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.loadEntries(PermissionEntryProviderImpl.java:163) [org.apache.jackrabbit.oak-core:1.8.7]
at org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:142) [org.apache.jackrabbit.oak-core:1.8.7]
at org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getGroupEntries(CompiledPermissionImpl.java:579) [org.apache.jackrabbit.oak-core:1.8.7]
at org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:459) [org.apache.jackrabbit.oak-core:1.8.7]
at org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:624) [org.apache.jackrabbit.oak-core:1.8.7]
at org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:589) [org.apache.jackrabbit.oak-core:1.8.7]
at org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) [org.apache.jackrabbit.jackrabbit-jcr-commons:2.16.3]
at com.google.common.collect.Iterators$5.hasNext(Iterators.java:542)
at org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:531) [org.apache.jackrabbit.oak-core:1.8.7]
at org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:384) [org.apache.jackrabbit.oak-core:1.8.7]
at org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:180) [org.apache.jackrabbit.oak-core:1.8.7]
at org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getProperty(AbstractTree.java:251) [org.apache.jackrabbit.oak-core:1.8.7]
at org.apache.jackrabbit.oak.core.MutableTree.getProperty(MutableTree.java:128) [org.apache.jackrabbit.oak-core:1.8.7]
at org.apache.jackrabbit.oak.plugins.tree.TreeUtil.getStringInternal(TreeUtil.java:116) [org.apache.jackrabbit.oak-security-spi:1.8.7]
at org.apache.jackrabbit.oak.plugins.tree.TreeUtil.getPrimaryTypeName(TreeUtil.java:88) [org.apache.jackrabbit.oak-security-spi:1.8.7]
at org.apache.jackrabbit.oak.spi.security.user.util.UserUtil.isType(UserUtil.java:63) [org.apache.jackrabbit.oak-security-spi:1.8.7]
at org.apache.jackrabbit.oak.security.user.AuthorizableBaseProvider.getByPath(AuthorizableBaseProvider.java:72) [org.apache.jackrabbit.oak-core:1.8.7]
Solved! Go to Solution.
Views
Replies
Total Likes
The same issue reported here -https://experienceleaguecommunities.adobe.com/t5/adobe-experience-manager/concurrentmodificationexce...
Review and and see if this resolve the issue.
Regards
Albin I
The same issue reported here -https://experienceleaguecommunities.adobe.com/t5/adobe-experience-manager/concurrentmodificationexce...
Review and and see if this resolve the issue.
Regards
Albin I
Hi Albin,
I have visited the given link , but unfortunately it doesn't resolve my issue.
It gives the exception in OOTB classes when we are doing iterator.next() ,hence i am unsure about it.
Thanks,
Pallavi
Views
Replies
Total Likes
Please post the code used to iterate the details
Regards
Albin
Views
Replies
Total Likes
@Albin_Issacif you look at the stack trace the the HashMap throwing the exception is from Apache Jackrabbit Oak code at org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.loadEntries(PermissionEntryProviderImpl.java:163) [org.apache.jackrabbit.oak-core:1.8.7]
I filed an issue for this, if possible, please update with more details on the issue:
Views
Replies
Total Likes
@Albin_Issac :
The code iterates through user groups .
User user = (User) userManager.getAuthorizable("userId");
Iterator<Group> groups = user.declaredMemberOf();
while (groups.hasNext()) {
Group group = groups.next();
//some logic goes here..
}
@Andrew_Khoury : Thanks for creating a ticket.
Yes ,the issue comes OOTB classes , so we are unable to trace it out.
Views
Replies
Total Likes
Views
Replies
Total Likes
Views
Likes
Replies