[ https://issues.apache.org/jira/browse/SLING-7371?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16319893#comment-16319893 ]
Karl Pauls commented on SLING-7371: ----------------------------------- [~cziegeler], I did see that but it is synchronizing on the same member - hence, it shouldn't do any harm and it seemed saver to synchronize inside the method to avoid making the same mistake (calling it without the lock) at a later point. But I don't fell strongly about it either way - I'll commit it synchronizing the call in activate. Thanks! > 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)