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.