You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jackrabbit.apache.org by "Marcel Reutegger (JIRA)" <ji...@apache.org> on 2007/12/18 10:56:43 UTC

[jira] Commented: (JCR-935) ConcurrentModificationException during logout (cont'd)

    [ https://issues.apache.org/jira/browse/JCR-935?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12552673 ] 

Marcel Reutegger commented on JCR-935:
--------------------------------------

This issue is related to JCR-1271.

The cause is the same: LocalItemStateManager#cache is not properly synchronized. While one thread reads from the cache another thread notifying ItemState changes will modify the cache.

> ConcurrentModificationException during logout (cont'd)
> ------------------------------------------------------
>
>                 Key: JCR-935
>                 URL: https://issues.apache.org/jira/browse/JCR-935
>             Project: Jackrabbit
>          Issue Type: Bug
>          Components: jackrabbit-core
>    Affects Versions: 1.3
>            Reporter: Pablo Rios
>
> I "seldom" get a CME running ConcurrentReadWriteTest.testReadWrite test.
> Following are different stack traces of two runs:
>  
> Exception in thread "Thread-9" java.util.ConcurrentModificationException
>  at org.apache.commons.collections.map.AbstractReferenceMap$ReferenceEntrySetIterator.checkMod(AbstractReferenceMap.java:761)
>  at org.apache.commons.collections.map.AbstractReferenceMap$ReferenceEntrySetIterator.hasNext(AbstractReferenceMap.java:735)
>  at org.apache.commons.collections.map.AbstractReferenceMap$ReferenceValues.toArray(AbstractReferenceMap.java:543)
>  at java.util.Collections$UnmodifiableCollection.toArray(Unknown Source)
>  at java.util.Collections$UnmodifiableCollection.toArray(Unknown Source)
>  at org.apache.jackrabbit.core.state.LocalItemStateManager.dispose(LocalItemStateManager.java:341)
>  at org.apache.jackrabbit.core.state.SessionItemStateManager.dispose(SessionItemStateManager.java:316)
>  at org.apache.jackrabbit.core.SessionImpl.logout(SessionImpl.java:1269)
>  at org.apache.jackrabbit.core.XASessionImpl.logout(XASessionImpl.java:379)
>  at org.apache.jackrabbit.core.AbstractConcurrencyTest$Executor.run(AbstractConcurrencyTest.java:114)
>  at java.lang.Thread.run(Unknown Source)
> Exception in thread "Thread-9" java.util.ConcurrentModificationException
> 	at org.apache.commons.collections.map.AbstractReferenceMap$ReferenceEntrySetIterator.checkMod(AbstractReferenceMap.java:761)
> 	at org.apache.commons.collections.map.AbstractReferenceMap$ReferenceEntrySetIterator.nextEntry(AbstractReferenceMap.java:770)
> 	at org.apache.commons.collections.map.AbstractReferenceMap$ReferenceValuesIterator.next(AbstractReferenceMap.java:829)
> 	at org.apache.commons.collections.map.AbstractReferenceMap$ReferenceValues.toArray(AbstractReferenceMap.java:544)
> 	at java.util.Collections$UnmodifiableCollection.toArray(Unknown Source)
> 	at java.util.Collections$UnmodifiableCollection.toArray(Unknown Source)
> 	at org.apache.jackrabbit.core.state.LocalItemStateManager.dispose(LocalItemStateManager.java:341)
> 	at org.apache.jackrabbit.core.state.SessionItemStateManager.dispose(SessionItemStateManager.java:316)
> 	at org.apache.jackrabbit.core.SessionImpl.logout(SessionImpl.java:1269)
> 	at org.apache.jackrabbit.core.XASessionImpl.logout(XASessionImpl.java:379)
> 	at org.apache.jackrabbit.core.AbstractConcurrencyTest$Executor.run(AbstractConcurrencyTest.java:114)
> 	at java.lang.Thread.run(Unknown Source)
> My working copy is revision 538918 with both JCR-314 patches applied, using FineGrainedISMLocking strategy.
> I run this test manually from within Eclipse 3.2.1 / JRE 1.5.0_10-b03.
> The workstation were I run this test has an Intel Dual-Core Xeon 5130 2 GHz. To able to compare this CPU with another, with the default params of this test (NUM_NODES = 5, NUM_THREADS = 5, RUN_NUM_SECONDS = 20), the number of operations are ~ #writes performed: 300-400, #reads performed: 4700000 - 4900000.
> Regards,
> Pablo

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.