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 2014/04/28 16:26:14 UTC

[jira] [Commented] (SLING-3474) Concurrent modification exception in installer

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

Carsten Ziegeler commented on SLING-3474:
-----------------------------------------

Actually the underlying problem is the same as described in SLING-3522.

> Concurrent modification exception in installer
> ----------------------------------------------
>
>                 Key: SLING-3474
>                 URL: https://issues.apache.org/jira/browse/SLING-3474
>             Project: Sling
>          Issue Type: Bug
>          Components: Installer
>    Affects Versions: Installer Core 3.5.0
>            Reporter: Carsten Ziegeler
>            Assignee: Carsten Ziegeler
>             Fix For: Installer Core 3.5.2
>
>
> The following exception might occur:
> 12.03.2014 23:21:49.899 *WARN* [CM Event Dispatcher (Fire ConfigurationEvent: pid=org.apache.sling.engine.impl.auth.SlingAuthenticator)] org.apache.sling.installer.core.impl.PersistentResourceList Unable to save persistent list: null
> java.util.ConcurrentModificationException: null
>     at java.util.HashMap$HashIterator.nextEntry(HashMap.java:926)
>     at java.util.HashMap$EntryIterator.next(HashMap.java:966)
>     at java.util.HashMap$EntryIterator.next(HashMap.java:964)
>     at java.util.HashMap.writeObject(HashMap.java:1131)
>     at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
>     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>     at java.lang.reflect.Method.invoke(Method.java:606)
>     at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:988)
>     at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1495)
>     at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1431)
>     at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1177)
>     at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:347)
>     at org.apache.sling.installer.core.impl.PersistentResourceList.save(PersistentResourceList.java:166)
>     at org.apache.sling.installer.core.impl.OsgiInstallerImpl.resourceAddedOrUpdated(OsgiInstallerImpl.java:965)
>     at org.apache.sling.installer.factories.configuration.impl.ConfigTaskCreator.configurationEvent(ConfigTaskCreator.java:138)
>     at org.apache.felix.cm.impl.ConfigurationManager$FireConfigurationEvent.sendEvent(ConfigurationManager.java:2032)
>     at org.apache.felix.cm.impl.ConfigurationManager$FireConfigurationEvent.run(ConfigurationManager.java:2002)
>     at org.apache.felix.cm.impl.UpdateThread.run(UpdateThread.java:103)
>     at java.lang.Thread.run(Thread.java:744)
> While the installer works under the assumption that only the main thread can modify the installer state, the writeback mechanism can actually also change and persists state (as seen above). Therefore the code needs to be guarded against concurrent access.



--
This message was sent by Atlassian JIRA
(v6.2#6252)