You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jackrabbit.apache.org by "Martijn Hendriks (JIRA)" <ji...@apache.org> on 2007/09/28 13:28:50 UTC
[jira] Created: (JCR-1148) NullPoi
NullPoi
-------
Key: JCR-1148
URL: https://issues.apache.org/jira/browse/JCR-1148
Project: Jackrabbit
Issue Type: Bug
Reporter: Martijn Hendriks
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Issue Comment Edited: (JCR-1148) NullPointerException in
ItemState
Posted by "Esteban Franqueiro (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/JCR-1148?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12531022 ]
efranqueiro edited comment on JCR-1148 at 9/28/07 7:34 AM:
------------------------------------------------------------------
This issue is the same one Pablo mentioned in JCR-935. Are you using the fine grained locking strategy? Because in our testing this happened when using it.
was (Author: efranqueiro):
This issue is related to JCR-935.
> NullPointerException in ItemState
> ---------------------------------
>
> Key: JCR-1148
> URL: https://issues.apache.org/jira/browse/JCR-1148
> Project: Jackrabbit
> Issue Type: Bug
> Components: jackrabbit-core
> Affects Versions: 1.3
> Reporter: Martijn Hendriks
>
> The following happens quite regularly when multiple threads are adding, retrieving and removing nodes simultaneously. Looking at the code of the pull method, this seems due to under-synchronization somewhere as overlayedState was tested at line 153 for null.
> java.lang.NullPointerException
> at org.apache.jackrabbit.core.state.ItemState.pull(ItemState.java:156)
> at org.apache.jackrabbit.core.state.LocalItemStateManager.stateModified(LocalItemStateManager.java:421)
> at org.apache.jackrabbit.core.state.StateChangeDispatcher.notifyStateModified(StateChangeDispatcher.java:85)
> at org.apache.jackrabbit.core.state.SharedItemStateManager.stateModified(SharedItemStateManager.java:434)
> at org.apache.jackrabbit.core.state.ItemState.notifyStateUpdated(ItemState.java:241)
> at org.apache.jackrabbit.core.state.ChangeLog.persisted(ChangeLog.java:271)
> at org.apache.jackrabbit.core.state.SharedItemStateManager$Update.end(SharedItemStateManager.java:741)
> at org.apache.jackrabbit.core.state.SharedItemStateManager.update(SharedItemStateManager.java:937)
> at org.apache.jackrabbit.core.state.LocalItemStateManager.update(LocalItemStateManager.java:327)
> at org.apache.jackrabbit.core.state.XAItemStateManager.update(XAItemStateManager.java:313)
> at org.apache.jackrabbit.core.state.LocalItemStateManager.update(LocalItemStateManager.java:303)
> at org.apache.jackrabbit.core.state.SessionItemStateManager.update(SessionItemStateManager.java:307)
> at org.apache.jackrabbit.core.ItemImpl.save(ItemImpl.java:1374)
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Updated: (JCR-1148) NullPointerException in ItemState
Posted by "Martijn Hendriks (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/JCR-1148?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Martijn Hendriks updated JCR-1148:
----------------------------------
Component/s: jackrabbit-core
Description:
The following happens quite regularly when multiple threads are adding, retrieving and removing nodes simultaneously. Looking at the code of the pull method, this seems due to under-synchronization somewhere as overlayedState was tested at line 153 for null.
java.lang.NullPointerException
at org.apache.jackrabbit.core.state.ItemState.pull(ItemState.java:156)
at org.apache.jackrabbit.core.state.LocalItemStateManager.stateModified(LocalItemStateManager.java:421)
at org.apache.jackrabbit.core.state.StateChangeDispatcher.notifyStateModified(StateChangeDispatcher.java:85)
at org.apache.jackrabbit.core.state.SharedItemStateManager.stateModified(SharedItemStateManager.java:434)
at org.apache.jackrabbit.core.state.ItemState.notifyStateUpdated(ItemState.java:241)
at org.apache.jackrabbit.core.state.ChangeLog.persisted(ChangeLog.java:271)
at org.apache.jackrabbit.core.state.SharedItemStateManager$Update.end(SharedItemStateManager.java:741)
at org.apache.jackrabbit.core.state.SharedItemStateManager.update(SharedItemStateManager.java:937)
at org.apache.jackrabbit.core.state.LocalItemStateManager.update(LocalItemStateManager.java:327)
at org.apache.jackrabbit.core.state.XAItemStateManager.update(XAItemStateManager.java:313)
at org.apache.jackrabbit.core.state.LocalItemStateManager.update(LocalItemStateManager.java:303)
at org.apache.jackrabbit.core.state.SessionItemStateManager.update(SessionItemStateManager.java:307)
at org.apache.jackrabbit.core.ItemImpl.save(ItemImpl.java:1374)
Affects Version/s: 1.3
Summary: NullPointerException in ItemState (was: NullPoi)
> NullPointerException in ItemState
> ---------------------------------
>
> Key: JCR-1148
> URL: https://issues.apache.org/jira/browse/JCR-1148
> Project: Jackrabbit
> Issue Type: Bug
> Components: jackrabbit-core
> Affects Versions: 1.3
> Reporter: Martijn Hendriks
>
> The following happens quite regularly when multiple threads are adding, retrieving and removing nodes simultaneously. Looking at the code of the pull method, this seems due to under-synchronization somewhere as overlayedState was tested at line 153 for null.
> java.lang.NullPointerException
> at org.apache.jackrabbit.core.state.ItemState.pull(ItemState.java:156)
> at org.apache.jackrabbit.core.state.LocalItemStateManager.stateModified(LocalItemStateManager.java:421)
> at org.apache.jackrabbit.core.state.StateChangeDispatcher.notifyStateModified(StateChangeDispatcher.java:85)
> at org.apache.jackrabbit.core.state.SharedItemStateManager.stateModified(SharedItemStateManager.java:434)
> at org.apache.jackrabbit.core.state.ItemState.notifyStateUpdated(ItemState.java:241)
> at org.apache.jackrabbit.core.state.ChangeLog.persisted(ChangeLog.java:271)
> at org.apache.jackrabbit.core.state.SharedItemStateManager$Update.end(SharedItemStateManager.java:741)
> at org.apache.jackrabbit.core.state.SharedItemStateManager.update(SharedItemStateManager.java:937)
> at org.apache.jackrabbit.core.state.LocalItemStateManager.update(LocalItemStateManager.java:327)
> at org.apache.jackrabbit.core.state.XAItemStateManager.update(XAItemStateManager.java:313)
> at org.apache.jackrabbit.core.state.LocalItemStateManager.update(LocalItemStateManager.java:303)
> at org.apache.jackrabbit.core.state.SessionItemStateManager.update(SessionItemStateManager.java:307)
> at org.apache.jackrabbit.core.ItemImpl.save(ItemImpl.java:1374)
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Commented: (JCR-1148) NullPointerException in ItemState
Posted by "Marcel Reutegger (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/JCR-1148?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12552436 ]
Marcel Reutegger commented on JCR-1148:
---------------------------------------
I'm able to reproduce this issue with the test case ConcurrentyTest.testConcurrentWritingSessions() and FineGrainedISMLocking.
> NullPointerException in ItemState
> ---------------------------------
>
> Key: JCR-1148
> URL: https://issues.apache.org/jira/browse/JCR-1148
> Project: Jackrabbit
> Issue Type: Bug
> Components: jackrabbit-core
> Affects Versions: 1.3, 1.3.1, 1.3.3
> Reporter: Martijn Hendriks
> Fix For: 1.4
>
>
> The following happens quite regularly when multiple threads are adding, retrieving and removing nodes simultaneously. Looking at the code of the pull method, this seems due to under-synchronization somewhere as overlayedState was tested at line 153 for null.
> java.lang.NullPointerException
> at org.apache.jackrabbit.core.state.ItemState.pull(ItemState.java:156)
> at org.apache.jackrabbit.core.state.LocalItemStateManager.stateModified(LocalItemStateManager.java:421)
> at org.apache.jackrabbit.core.state.StateChangeDispatcher.notifyStateModified(StateChangeDispatcher.java:85)
> at org.apache.jackrabbit.core.state.SharedItemStateManager.stateModified(SharedItemStateManager.java:434)
> at org.apache.jackrabbit.core.state.ItemState.notifyStateUpdated(ItemState.java:241)
> at org.apache.jackrabbit.core.state.ChangeLog.persisted(ChangeLog.java:271)
> at org.apache.jackrabbit.core.state.SharedItemStateManager$Update.end(SharedItemStateManager.java:741)
> at org.apache.jackrabbit.core.state.SharedItemStateManager.update(SharedItemStateManager.java:937)
> at org.apache.jackrabbit.core.state.LocalItemStateManager.update(LocalItemStateManager.java:327)
> at org.apache.jackrabbit.core.state.XAItemStateManager.update(XAItemStateManager.java:313)
> at org.apache.jackrabbit.core.state.LocalItemStateManager.update(LocalItemStateManager.java:303)
> at org.apache.jackrabbit.core.state.SessionItemStateManager.update(SessionItemStateManager.java:307)
> at org.apache.jackrabbit.core.ItemImpl.save(ItemImpl.java:1374)
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Updated: (JCR-1148) NullPointerException in ItemState
Posted by "Jukka Zitting (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/JCR-1148?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jukka Zitting updated JCR-1148:
-------------------------------
Fix Version/s: 1.4
Affects Version/s: 1.3.3
1.3.1
> NullPointerException in ItemState
> ---------------------------------
>
> Key: JCR-1148
> URL: https://issues.apache.org/jira/browse/JCR-1148
> Project: Jackrabbit
> Issue Type: Bug
> Components: jackrabbit-core
> Affects Versions: 1.3, 1.3.1, 1.3.3
> Reporter: Martijn Hendriks
> Fix For: 1.4
>
>
> The following happens quite regularly when multiple threads are adding, retrieving and removing nodes simultaneously. Looking at the code of the pull method, this seems due to under-synchronization somewhere as overlayedState was tested at line 153 for null.
> java.lang.NullPointerException
> at org.apache.jackrabbit.core.state.ItemState.pull(ItemState.java:156)
> at org.apache.jackrabbit.core.state.LocalItemStateManager.stateModified(LocalItemStateManager.java:421)
> at org.apache.jackrabbit.core.state.StateChangeDispatcher.notifyStateModified(StateChangeDispatcher.java:85)
> at org.apache.jackrabbit.core.state.SharedItemStateManager.stateModified(SharedItemStateManager.java:434)
> at org.apache.jackrabbit.core.state.ItemState.notifyStateUpdated(ItemState.java:241)
> at org.apache.jackrabbit.core.state.ChangeLog.persisted(ChangeLog.java:271)
> at org.apache.jackrabbit.core.state.SharedItemStateManager$Update.end(SharedItemStateManager.java:741)
> at org.apache.jackrabbit.core.state.SharedItemStateManager.update(SharedItemStateManager.java:937)
> at org.apache.jackrabbit.core.state.LocalItemStateManager.update(LocalItemStateManager.java:327)
> at org.apache.jackrabbit.core.state.XAItemStateManager.update(XAItemStateManager.java:313)
> at org.apache.jackrabbit.core.state.LocalItemStateManager.update(LocalItemStateManager.java:303)
> at org.apache.jackrabbit.core.state.SessionItemStateManager.update(SessionItemStateManager.java:307)
> at org.apache.jackrabbit.core.ItemImpl.save(ItemImpl.java:1374)
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Updated: (JCR-1148) NullPointerException in ItemState
Posted by "Marcel Reutegger (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/JCR-1148?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Marcel Reutegger updated JCR-1148:
----------------------------------
Attachment: JCR-1148.patch
Proposed fix.
> NullPointerException in ItemState
> ---------------------------------
>
> Key: JCR-1148
> URL: https://issues.apache.org/jira/browse/JCR-1148
> Project: Jackrabbit
> Issue Type: Bug
> Components: jackrabbit-core
> Affects Versions: 1.3, 1.3.1, 1.3.3
> Reporter: Martijn Hendriks
> Fix For: 1.4
>
> Attachments: JCR-1148.patch
>
>
> The following happens quite regularly when multiple threads are adding, retrieving and removing nodes simultaneously. Looking at the code of the pull method, this seems due to under-synchronization somewhere as overlayedState was tested at line 153 for null.
> java.lang.NullPointerException
> at org.apache.jackrabbit.core.state.ItemState.pull(ItemState.java:156)
> at org.apache.jackrabbit.core.state.LocalItemStateManager.stateModified(LocalItemStateManager.java:421)
> at org.apache.jackrabbit.core.state.StateChangeDispatcher.notifyStateModified(StateChangeDispatcher.java:85)
> at org.apache.jackrabbit.core.state.SharedItemStateManager.stateModified(SharedItemStateManager.java:434)
> at org.apache.jackrabbit.core.state.ItemState.notifyStateUpdated(ItemState.java:241)
> at org.apache.jackrabbit.core.state.ChangeLog.persisted(ChangeLog.java:271)
> at org.apache.jackrabbit.core.state.SharedItemStateManager$Update.end(SharedItemStateManager.java:741)
> at org.apache.jackrabbit.core.state.SharedItemStateManager.update(SharedItemStateManager.java:937)
> at org.apache.jackrabbit.core.state.LocalItemStateManager.update(LocalItemStateManager.java:327)
> at org.apache.jackrabbit.core.state.XAItemStateManager.update(XAItemStateManager.java:313)
> at org.apache.jackrabbit.core.state.LocalItemStateManager.update(LocalItemStateManager.java:303)
> at org.apache.jackrabbit.core.state.SessionItemStateManager.update(SessionItemStateManager.java:307)
> at org.apache.jackrabbit.core.ItemImpl.save(ItemImpl.java:1374)
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Resolved: (JCR-1148) NullPointerException in ItemState
Posted by "Marcel Reutegger (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/JCR-1148?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Marcel Reutegger resolved JCR-1148.
-----------------------------------
Resolution: Fixed
Thank you for reviewing the patch.
I committed the patch in revision 605509
> NullPointerException in ItemState
> ---------------------------------
>
> Key: JCR-1148
> URL: https://issues.apache.org/jira/browse/JCR-1148
> Project: Jackrabbit
> Issue Type: Bug
> Components: jackrabbit-core
> Affects Versions: 1.3, 1.3.1, 1.3.3
> Reporter: Martijn Hendriks
> Fix For: 1.4
>
> Attachments: JCR-1148.patch
>
>
> The following happens quite regularly when multiple threads are adding, retrieving and removing nodes simultaneously. Looking at the code of the pull method, this seems due to under-synchronization somewhere as overlayedState was tested at line 153 for null.
> java.lang.NullPointerException
> at org.apache.jackrabbit.core.state.ItemState.pull(ItemState.java:156)
> at org.apache.jackrabbit.core.state.LocalItemStateManager.stateModified(LocalItemStateManager.java:421)
> at org.apache.jackrabbit.core.state.StateChangeDispatcher.notifyStateModified(StateChangeDispatcher.java:85)
> at org.apache.jackrabbit.core.state.SharedItemStateManager.stateModified(SharedItemStateManager.java:434)
> at org.apache.jackrabbit.core.state.ItemState.notifyStateUpdated(ItemState.java:241)
> at org.apache.jackrabbit.core.state.ChangeLog.persisted(ChangeLog.java:271)
> at org.apache.jackrabbit.core.state.SharedItemStateManager$Update.end(SharedItemStateManager.java:741)
> at org.apache.jackrabbit.core.state.SharedItemStateManager.update(SharedItemStateManager.java:937)
> at org.apache.jackrabbit.core.state.LocalItemStateManager.update(LocalItemStateManager.java:327)
> at org.apache.jackrabbit.core.state.XAItemStateManager.update(XAItemStateManager.java:313)
> at org.apache.jackrabbit.core.state.LocalItemStateManager.update(LocalItemStateManager.java:303)
> at org.apache.jackrabbit.core.state.SessionItemStateManager.update(SessionItemStateManager.java:307)
> at org.apache.jackrabbit.core.ItemImpl.save(ItemImpl.java:1374)
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Commented: (JCR-1148) NullPointerException in ItemState
Posted by "Esteban Franqueiro (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/JCR-1148?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12531022 ]
Esteban Franqueiro commented on JCR-1148:
-----------------------------------------
This issue is related to JCR-935.
> NullPointerException in ItemState
> ---------------------------------
>
> Key: JCR-1148
> URL: https://issues.apache.org/jira/browse/JCR-1148
> Project: Jackrabbit
> Issue Type: Bug
> Components: jackrabbit-core
> Affects Versions: 1.3
> Reporter: Martijn Hendriks
>
> The following happens quite regularly when multiple threads are adding, retrieving and removing nodes simultaneously. Looking at the code of the pull method, this seems due to under-synchronization somewhere as overlayedState was tested at line 153 for null.
> java.lang.NullPointerException
> at org.apache.jackrabbit.core.state.ItemState.pull(ItemState.java:156)
> at org.apache.jackrabbit.core.state.LocalItemStateManager.stateModified(LocalItemStateManager.java:421)
> at org.apache.jackrabbit.core.state.StateChangeDispatcher.notifyStateModified(StateChangeDispatcher.java:85)
> at org.apache.jackrabbit.core.state.SharedItemStateManager.stateModified(SharedItemStateManager.java:434)
> at org.apache.jackrabbit.core.state.ItemState.notifyStateUpdated(ItemState.java:241)
> at org.apache.jackrabbit.core.state.ChangeLog.persisted(ChangeLog.java:271)
> at org.apache.jackrabbit.core.state.SharedItemStateManager$Update.end(SharedItemStateManager.java:741)
> at org.apache.jackrabbit.core.state.SharedItemStateManager.update(SharedItemStateManager.java:937)
> at org.apache.jackrabbit.core.state.LocalItemStateManager.update(LocalItemStateManager.java:327)
> at org.apache.jackrabbit.core.state.XAItemStateManager.update(XAItemStateManager.java:313)
> at org.apache.jackrabbit.core.state.LocalItemStateManager.update(LocalItemStateManager.java:303)
> at org.apache.jackrabbit.core.state.SessionItemStateManager.update(SessionItemStateManager.java:307)
> at org.apache.jackrabbit.core.ItemImpl.save(ItemImpl.java:1374)
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Commented: (JCR-1148) NullPointerException in ItemState
Posted by "Stefan Guggisberg (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/JCR-1148?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12531025 ]
Stefan Guggisberg commented on JCR-1148:
----------------------------------------
what configuration are you using? any custom code/modifications involved?
are you able to reproduce it with an out-of-the-box jackrabbit release?
could you perhaps provide a simple test case?
> NullPointerException in ItemState
> ---------------------------------
>
> Key: JCR-1148
> URL: https://issues.apache.org/jira/browse/JCR-1148
> Project: Jackrabbit
> Issue Type: Bug
> Components: jackrabbit-core
> Affects Versions: 1.3
> Reporter: Martijn Hendriks
>
> The following happens quite regularly when multiple threads are adding, retrieving and removing nodes simultaneously. Looking at the code of the pull method, this seems due to under-synchronization somewhere as overlayedState was tested at line 153 for null.
> java.lang.NullPointerException
> at org.apache.jackrabbit.core.state.ItemState.pull(ItemState.java:156)
> at org.apache.jackrabbit.core.state.LocalItemStateManager.stateModified(LocalItemStateManager.java:421)
> at org.apache.jackrabbit.core.state.StateChangeDispatcher.notifyStateModified(StateChangeDispatcher.java:85)
> at org.apache.jackrabbit.core.state.SharedItemStateManager.stateModified(SharedItemStateManager.java:434)
> at org.apache.jackrabbit.core.state.ItemState.notifyStateUpdated(ItemState.java:241)
> at org.apache.jackrabbit.core.state.ChangeLog.persisted(ChangeLog.java:271)
> at org.apache.jackrabbit.core.state.SharedItemStateManager$Update.end(SharedItemStateManager.java:741)
> at org.apache.jackrabbit.core.state.SharedItemStateManager.update(SharedItemStateManager.java:937)
> at org.apache.jackrabbit.core.state.LocalItemStateManager.update(LocalItemStateManager.java:327)
> at org.apache.jackrabbit.core.state.XAItemStateManager.update(XAItemStateManager.java:313)
> at org.apache.jackrabbit.core.state.LocalItemStateManager.update(LocalItemStateManager.java:303)
> at org.apache.jackrabbit.core.state.SessionItemStateManager.update(SessionItemStateManager.java:307)
> at org.apache.jackrabbit.core.ItemImpl.save(ItemImpl.java:1374)
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Commented: (JCR-1148) NullPointerException in ItemState
Posted by "Martijn Hendriks (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/JCR-1148?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12532033 ]
Martijn Hendriks commented on JCR-1148:
---------------------------------------
Here are the stacktraces of two threads involved in the NPE:
The thread that throws the NPE (line information in ItemState has been changed due to debugging code):
Thread [Thread-38] (Suspended (breakpoint at line 158 in ItemState))
NodeState(ItemState).pull() line: 158
XAItemStateManager(LocalItemStateManager).stateModified(ItemState) line: 420
StateChangeDispatcher.notifyStateModified(ItemState) line: 85
SharedItemStateManager.stateModified(ItemState) line: 390
NodeState(ItemState).notifyStateUpdated() line: 244
ChangeLog.persisted() line: 271
SharedItemStateManager$Update.end() line: 702
SharedItemStateManager.update(ChangeLog, EventStateCollectionFactory) line: 855
XAItemStateManager(LocalItemStateManager).update(ChangeLog) line: 326
XAItemStateManager.update(ChangeLog) line: 313
XAItemStateManager(LocalItemStateManager).update() line: 302
SessionItemStateManager.update() line: 306
NodeImpl(ItemImpl).save() line: 1214
XASessionImpl(SessionImpl).save() line: 849
The thread that just reset the overlayedState of the ItemState in the above thread to null:
ItemState.disconnect(ItemState.java:209)
ChangeLog.modified(ChangeLog.java:70)
LocalItemStateManager.store(LocalItemStateManager.java:268)
SessionItemStateManager.store(SessionItemStateManager.java:283)
NodeImpl.makePersistent(NodeImpl.java:984)
ItemImpl.persistTransientItems(ItemImpl.java:687)
ItemImpl.save(ItemImpl.java:1198)
SessionImpl.save(SessionImpl.java:849)
The problem is that saving causes a call to disconnect of an ItemState of the LocalItemStateManager, and that saving another session in another thread causes a call to pull of that ItemState through the SISM notification mechanism.
> NullPointerException in ItemState
> ---------------------------------
>
> Key: JCR-1148
> URL: https://issues.apache.org/jira/browse/JCR-1148
> Project: Jackrabbit
> Issue Type: Bug
> Components: jackrabbit-core
> Affects Versions: 1.3
> Reporter: Martijn Hendriks
>
> The following happens quite regularly when multiple threads are adding, retrieving and removing nodes simultaneously. Looking at the code of the pull method, this seems due to under-synchronization somewhere as overlayedState was tested at line 153 for null.
> java.lang.NullPointerException
> at org.apache.jackrabbit.core.state.ItemState.pull(ItemState.java:156)
> at org.apache.jackrabbit.core.state.LocalItemStateManager.stateModified(LocalItemStateManager.java:421)
> at org.apache.jackrabbit.core.state.StateChangeDispatcher.notifyStateModified(StateChangeDispatcher.java:85)
> at org.apache.jackrabbit.core.state.SharedItemStateManager.stateModified(SharedItemStateManager.java:434)
> at org.apache.jackrabbit.core.state.ItemState.notifyStateUpdated(ItemState.java:241)
> at org.apache.jackrabbit.core.state.ChangeLog.persisted(ChangeLog.java:271)
> at org.apache.jackrabbit.core.state.SharedItemStateManager$Update.end(SharedItemStateManager.java:741)
> at org.apache.jackrabbit.core.state.SharedItemStateManager.update(SharedItemStateManager.java:937)
> at org.apache.jackrabbit.core.state.LocalItemStateManager.update(LocalItemStateManager.java:327)
> at org.apache.jackrabbit.core.state.XAItemStateManager.update(XAItemStateManager.java:313)
> at org.apache.jackrabbit.core.state.LocalItemStateManager.update(LocalItemStateManager.java:303)
> at org.apache.jackrabbit.core.state.SessionItemStateManager.update(SessionItemStateManager.java:307)
> at org.apache.jackrabbit.core.ItemImpl.save(ItemImpl.java:1374)
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Commented: (JCR-1148) NullPointerException in ItemState
Posted by "Jukka Zitting (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/JCR-1148?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12552810 ]
Jukka Zitting commented on JCR-1148:
------------------------------------
Looks good enough, though I must admit I'm having a hard time understanding the relevant data and control flows.
> NullPointerException in ItemState
> ---------------------------------
>
> Key: JCR-1148
> URL: https://issues.apache.org/jira/browse/JCR-1148
> Project: Jackrabbit
> Issue Type: Bug
> Components: jackrabbit-core
> Affects Versions: 1.3, 1.3.1, 1.3.3
> Reporter: Martijn Hendriks
> Fix For: 1.4
>
> Attachments: JCR-1148.patch
>
>
> The following happens quite regularly when multiple threads are adding, retrieving and removing nodes simultaneously. Looking at the code of the pull method, this seems due to under-synchronization somewhere as overlayedState was tested at line 153 for null.
> java.lang.NullPointerException
> at org.apache.jackrabbit.core.state.ItemState.pull(ItemState.java:156)
> at org.apache.jackrabbit.core.state.LocalItemStateManager.stateModified(LocalItemStateManager.java:421)
> at org.apache.jackrabbit.core.state.StateChangeDispatcher.notifyStateModified(StateChangeDispatcher.java:85)
> at org.apache.jackrabbit.core.state.SharedItemStateManager.stateModified(SharedItemStateManager.java:434)
> at org.apache.jackrabbit.core.state.ItemState.notifyStateUpdated(ItemState.java:241)
> at org.apache.jackrabbit.core.state.ChangeLog.persisted(ChangeLog.java:271)
> at org.apache.jackrabbit.core.state.SharedItemStateManager$Update.end(SharedItemStateManager.java:741)
> at org.apache.jackrabbit.core.state.SharedItemStateManager.update(SharedItemStateManager.java:937)
> at org.apache.jackrabbit.core.state.LocalItemStateManager.update(LocalItemStateManager.java:327)
> at org.apache.jackrabbit.core.state.XAItemStateManager.update(XAItemStateManager.java:313)
> at org.apache.jackrabbit.core.state.LocalItemStateManager.update(LocalItemStateManager.java:303)
> at org.apache.jackrabbit.core.state.SessionItemStateManager.update(SessionItemStateManager.java:307)
> at org.apache.jackrabbit.core.ItemImpl.save(ItemImpl.java:1374)
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Commented: (JCR-1148) NullPointerException in ItemState
Posted by "Martijn Hendriks (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/JCR-1148?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12531432 ]
Martijn Hendriks commented on JCR-1148:
---------------------------------------
> This issue is the same one Pablo mentioned in JCR-935.
Indeed, I didn't search JIRA well enough...
> what configuration are you using? any custom code/modifications involved?
> are you able to reproduce it with an out-of-the-box jackrabbit release?
We're using a patched 1.3 version, but I just reproduced it with the clean 1.3 release.
> could you perhaps provide a simple test case?
I will try. The problem is that this issue turned up during an integration test from which it is a long way down to Jackrabbit code.
> NullPointerException in ItemState
> ---------------------------------
>
> Key: JCR-1148
> URL: https://issues.apache.org/jira/browse/JCR-1148
> Project: Jackrabbit
> Issue Type: Bug
> Components: jackrabbit-core
> Affects Versions: 1.3
> Reporter: Martijn Hendriks
>
> The following happens quite regularly when multiple threads are adding, retrieving and removing nodes simultaneously. Looking at the code of the pull method, this seems due to under-synchronization somewhere as overlayedState was tested at line 153 for null.
> java.lang.NullPointerException
> at org.apache.jackrabbit.core.state.ItemState.pull(ItemState.java:156)
> at org.apache.jackrabbit.core.state.LocalItemStateManager.stateModified(LocalItemStateManager.java:421)
> at org.apache.jackrabbit.core.state.StateChangeDispatcher.notifyStateModified(StateChangeDispatcher.java:85)
> at org.apache.jackrabbit.core.state.SharedItemStateManager.stateModified(SharedItemStateManager.java:434)
> at org.apache.jackrabbit.core.state.ItemState.notifyStateUpdated(ItemState.java:241)
> at org.apache.jackrabbit.core.state.ChangeLog.persisted(ChangeLog.java:271)
> at org.apache.jackrabbit.core.state.SharedItemStateManager$Update.end(SharedItemStateManager.java:741)
> at org.apache.jackrabbit.core.state.SharedItemStateManager.update(SharedItemStateManager.java:937)
> at org.apache.jackrabbit.core.state.LocalItemStateManager.update(LocalItemStateManager.java:327)
> at org.apache.jackrabbit.core.state.XAItemStateManager.update(XAItemStateManager.java:313)
> at org.apache.jackrabbit.core.state.LocalItemStateManager.update(LocalItemStateManager.java:303)
> at org.apache.jackrabbit.core.state.SessionItemStateManager.update(SessionItemStateManager.java:307)
> at org.apache.jackrabbit.core.ItemImpl.save(ItemImpl.java:1374)
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.