[ 
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)

Reply via email to