[
https://issues.apache.org/jira/browse/SLING-12160?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17787921#comment-17787921
]
Konrad Windszus commented on SLING-12160:
-----------------------------------------
bq. 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).
Yes for sure. But this must not happen as in general one cannot prevent updates
from happening at the same time (triggered through Resource Observation).
> 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)