You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jackrabbit.apache.org by "Jukka Zitting (JIRA)" <ji...@apache.org> on 2007/06/04 22:56:26 UTC
[jira] Updated: (JCR-897) ItemState constructor throws
IllegalArgumentException
[ https://issues.apache.org/jira/browse/JCR-897?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jukka Zitting updated JCR-897:
------------------------------
Fix Version/s: (was: 1.4)
1.3.1
Merged to the 1.3 branch in revision 544261.
> ItemState constructor throws IllegalArgumentException
> -----------------------------------------------------
>
> Key: JCR-897
> URL: https://issues.apache.org/jira/browse/JCR-897
> Project: Jackrabbit
> Issue Type: Bug
> Components: core
> Affects Versions: 1.3
> Reporter: Marcel Reutegger
> Assignee: Stefan Guggisberg
> Priority: Minor
> Fix For: 1.3.1
>
>
> When running ConcurrentReadWriteTest it may happen that a reading session gets an IllegalArgumentException:
> Exception in thread "Thread-7" java.lang.IllegalArgumentException: illegal status: 0
> at org.apache.jackrabbit.core.state.ItemState.<init>(ItemState.java:138)
> at org.apache.jackrabbit.core.state.PropertyState.<init>(PropertyState.java:79)
> at org.apache.jackrabbit.core.state.LocalItemStateManager.getPropertyState(LocalItemStateManager.java:121)
> at org.apache.jackrabbit.core.state.LocalItemStateManager.getItemState(LocalItemStateManager.java:152)
> at org.apache.jackrabbit.core.state.XAItemStateManager.getItemState(XAItemStateManager.java:226)
> at org.apache.jackrabbit.core.state.SessionItemStateManager.getItemState(SessionItemStateManager.java:175)
> at org.apache.jackrabbit.core.ItemManager.createItemInstance(ItemManager.java:495)
> at org.apache.jackrabbit.core.ItemManager.getItem(ItemManager.java:326)
> at org.apache.jackrabbit.core.LazyItemIterator.prefetchNext(LazyItemIterator.java:90)
> at org.apache.jackrabbit.core.LazyItemIterator.<init>(LazyItemIterator.java:75)
> at org.apache.jackrabbit.core.ItemManager.getChildProperties(ItemManager.java:485)
> at org.apache.jackrabbit.core.NodeImpl.getProperties(NodeImpl.java:2481)
> at org.apache.jackrabbit.core.ConcurrentReadWriteTest$1$1.execute(ConcurrentReadWriteTest.java:61)
> at org.apache.jackrabbit.core.AbstractConcurrencyTest$Executor.run(AbstractConcurrencyTest.java:107)
> at java.lang.Thread.run(Thread.java:595)
> Status 0 is STATUS_UNDEFINED. I think the following happens: when the reading session retrieves the ItemState from the SharedItemStateManager it is still valid but a short time later the writing session removes the item and changes the status to STATUS_UNDEFINED. Then the reading session tries to create an overlayed ItemState for the LocalItemStateManager using the changed status.
> Adding the STATUS_UNDEFINED to the list of 'valid' status in the ItemState constructor seems to solve the issue, but I'm not sure if that's the right way to do it.
> Opinions?
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.