[
https://issues.apache.org/jira/browse/SLING-12160?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17787649#comment-17787649
]
Joerg Hoh commented on SLING-12160:
-----------------------------------
Can you give me some context on that exception? The code in this area does not
modify the hashmap (just traverses the entrySet), so there must be clash
between iteration and modification of the internal Map (MapEntries.aliasMap).
Checking the MapEntries class itself, I would definitely say, that the aliasMap
is not guarded against concurrent access.
> ConcurrentModificationException in ResourceMapperImpl.readAliases()
> -------------------------------------------------------------------
>
> Key: SLING-12160
> URL: https://issues.apache.org/jira/browse/SLING-12160
> Project: Sling
> Issue Type: Bug
> Components: ResourceResolver
> Affects Versions: Resource Resolver 1.7.10
> Reporter: Konrad Windszus
> Priority: Major
>
> I have seen the following exception with Resource Resolver 1.7.10 triggered
> by calling {{ResourceResolver.map(...)}}
> {code}
> java.util.ConcurrentModificationException
> at
> java.base/java.util.LinkedHashMap$LinkedHashIterator.nextNode(LinkedHashMap.java:719)
> at
> java.base/java.util.LinkedHashMap$LinkedEntryIterator.next(LinkedHashMap.java:751)
> at
> java.base/java.util.LinkedHashMap$LinkedEntryIterator.next(LinkedHashMap.java:749)
> at java.base/java.util.Iterator.forEachRemaining(Iterator.java:133)
> at
> java.base/java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801)
> at
> java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
> at
> java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
> at
> java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913)
> at
> java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
> at
> java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578)
> at
> org.apache.sling.resourceresolver.impl.mapping.ResourceMapperImpl.readAliases(ResourceMapperImpl.java:249)
> at
> org.apache.sling.resourceresolver.impl.mapping.ResourceMapperImpl.loadAliasesIfApplicable(ResourceMapperImpl.java:209)
> at
> org.apache.sling.resourceresolver.impl.mapping.ResourceMapperImpl.getAllMappings(ResourceMapperImpl.java:147)
> at
> org.apache.sling.resourceresolver.impl.mapping.ResourceMapperImpl.getMapping(ResourceMapperImpl.java:73)
> at
> org.apache.sling.resourceresolver.impl.ResourceResolverImpl.map(ResourceResolverImpl.java:444)
> at
> org.apache.sling.resourceresolver.impl.ResourceResolverImpl.map(ResourceResolverImpl.java:431)
> {code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)