You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@sling.apache.org by "Carsten Ziegeler (JIRA)" <ji...@apache.org> on 2018/01/10 08:16:00 UTC
[jira] [Comment Edited] (SLING-7371)
ResourceProviderTracker.updateProviderContext can cause
ConcurrentModificationException
[ https://issues.apache.org/jira/browse/SLING-7371?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16319877#comment-16319877 ]
Carsten Ziegeler edited comment on SLING-7371 at 1/10/18 8:15 AM:
------------------------------------------------------------------
[~kpauls] No :) updateProviderContext is called from two places, one of them is already using a synchronized block, the other - activate is not. The fix is to put the sync around the call to updateProviderContext in activate.
was (Author: cziegeler):
[~pauls] No :) updateProviderContext is called from two places, one of them is already using a synchronized block, the other - activate is not. The fix is to put the sync around the call to updateProviderContext in activate.
> ResourceProviderTracker.updateProviderContext can cause ConcurrentModificationException
> ---------------------------------------------------------------------------------------
>
> Key: SLING-7371
> URL: https://issues.apache.org/jira/browse/SLING-7371
> Project: Sling
> Issue Type: Bug
> Components: ResourceResolver
> Affects Versions: Resource Resolver 1.5.32
> Reporter: Karl Pauls
> Assignee: Karl Pauls
> Fix For: Resource Resolver 1.5.34
>
>
> The updateProviderContext method accesses the "handler" member outside of a "synchronized (this.handler)" block which can lead to a ConcurrentModificationException similar to:
> {noformat}
> java.util.ConcurrentModificationException: null
> at java.util.HashMap$HashIterator.nextNode(HashMap.java:1442)
> at java.util.HashMap$KeyIterator.next(HashMap.java:1466)
> at org.apache.sling.resourceresolver.impl.providers.ResourceProviderTracker.updateProviderContext(ResourceProviderTracker.java:484)
> at org.apache.sling.resourceresolver.impl.providers.ResourceProviderTracker.activate(ResourceProviderTracker.java:352)
> at org.apache.sling.resourceresolver.impl.providers.ResourceProviderTracker.register(ResourceProviderTracker.java:190)
> at org.apache.sling.resourceresolver.impl.providers.ResourceProviderTracker.access$200(ResourceProviderTracker.java:59)
> at org.apache.sling.resourceresolver.impl.providers.ResourceProviderTracker$1.addingService(ResourceProviderTracker.java:130)
> at org.apache.sling.resourceresolver.impl.providers.ResourceProviderTracker$1.addingService(ResourceProviderTracker.java:106)
> at org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:941)
> at org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:870)
> at org.osgi.util.tracker.AbstractTracked.trackAdding(AbstractTracked.java:256)
> at org.osgi.util.tracker.AbstractTracked.track(AbstractTracked.java:229)
> at org.osgi.util.tracker.ServiceTracker$Tracked.serviceChanged(ServiceTracker.java:901)
> {noformat}
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)