[ 
https://issues.apache.org/jira/browse/SLING-12160?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17787921#comment-17787921
 ] 

Konrad Windszus edited comment on SLING-12160 at 11/20/23 9:57 AM:
-------------------------------------------------------------------

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 in another thread (triggered through Resource 
Observation).


was (Author: kwin):
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)

Reply via email to