You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jackrabbit.apache.org by "quipere (JIRA)" <ji...@apache.org> on 2009/09/07 15:20:57 UTC

[jira] Created: (JCR-2298) NPE in EventStateCollection when removing version and restoring version containing a versionlabel within transaction.

NPE in EventStateCollection when removing version and restoring version containing a versionlabel within transaction.
---------------------------------------------------------------------------------------------------------------------

                 Key: JCR-2298
                 URL: https://issues.apache.org/jira/browse/JCR-2298
             Project: Jackrabbit Content Repository
          Issue Type: Bug
          Components: transactions, versioning
    Affects Versions: 1.6.0
            Reporter: quipere


When removing a Version with a versionlabel and restoring an other Version from the same containing history within 1 transaction, a NPE occured. When debugging I noticed the method createEventStates was entered with an UUID from a versionLabel. The ChangeLog.get(id) returned null.

Caused by: java.lang.NullPointerException
	at org.apache.jackrabbit.core.observation.EventStateCollection.getNodeType(EventStateCollection.java:614)
	at org.apache.jackrabbit.core.observation.EventStateCollection.createEventStates(EventStateCollection.java:381)
	at org.apache.jackrabbit.core.state.SharedItemStateManager$Update.begin(SharedItemStateManager.java:697)
	at org.apache.jackrabbit.core.state.SharedItemStateManager.beginUpdate(SharedItemStateManager.java:1085)
	at org.apache.jackrabbit.core.state.XAItemStateManager.prepare(XAItemStateManager.java:163)
	at org.apache.jackrabbit.core.version.XAVersionManager.prepare(XAVersionManager.java:509)
	at org.apache.jackrabbit.core.TransactionContext.prepare(TransactionContext.java:154)
	at org.apache.jackrabbit.core.XASessionImpl.prepare(XASessionImpl.java:331)
	at org.springmodules.jcr.jackrabbit.support.JackRabbitUserTransaction.commit(JackRabbitUserTransaction.java:100)
	at org.springmodules.jcr.jackrabbit.LocalTransactionManager.doCommit(LocalTransactionManager.java:192)

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


[jira] Updated: (JCR-2298) NPE in EventStateCollection

Posted by "Jukka Zitting (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/JCR-2298?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jukka Zitting updated JCR-2298:
-------------------------------

    Component/s: jackrabbit-core
        Summary: NPE in EventStateCollection  (was: NPE in EventStateCollection when removing version and restoring version containing a versionlabel within transaction.)

This seems like a more generic problem, as we've seen this problem also in a normal save() call with Jackrabbit 1.4.x:

java.lang.NullPointerException
	at org.apache.jackrabbit.core.observation.EventStateCollection.getNodeType(EventStateCollection.java:476)
	at org.apache.jackrabbit.core.observation.EventStateCollection.createEventStates(EventStateCollection.java:179)
	at org.apache.jackrabbit.core.state.SharedItemStateManager$Update.begin(SharedItemStateManager.java:672)
	at org.apache.jackrabbit.core.state.SharedItemStateManager.beginUpdate(SharedItemStateManager.java:843)
	at org.apache.jackrabbit.core.state.SharedItemStateManager.update(SharedItemStateManager.java:873)
	at org.apache.jackrabbit.core.state.LocalItemStateManager.update(LocalItemStateManager.java:334)
	at org.apache.jackrabbit.core.state.XAItemStateManager.update(XAItemStateManager.java:337)
	at org.apache.jackrabbit.core.state.LocalItemStateManager.update(LocalItemStateManager.java:310)
	at org.apache.jackrabbit.core.state.SessionItemStateManager.update(SessionItemStateManager.java:317)
	at org.apache.jackrabbit.core.ItemImpl.save(ItemImpl.java:1251)


> NPE in EventStateCollection
> ---------------------------
>
>                 Key: JCR-2298
>                 URL: https://issues.apache.org/jira/browse/JCR-2298
>             Project: Jackrabbit Content Repository
>          Issue Type: Bug
>          Components: jackrabbit-core, transactions, versioning
>    Affects Versions: 1.6.0
>            Reporter: quipere
>
> When removing a Version with a versionlabel and restoring an other Version from the same containing history within 1 transaction, a NPE occured. When debugging I noticed the method createEventStates was entered with an UUID from a versionLabel. The ChangeLog.get(id) returned null.
> Caused by: java.lang.NullPointerException
> 	at org.apache.jackrabbit.core.observation.EventStateCollection.getNodeType(EventStateCollection.java:614)
> 	at org.apache.jackrabbit.core.observation.EventStateCollection.createEventStates(EventStateCollection.java:381)
> 	at org.apache.jackrabbit.core.state.SharedItemStateManager$Update.begin(SharedItemStateManager.java:697)
> 	at org.apache.jackrabbit.core.state.SharedItemStateManager.beginUpdate(SharedItemStateManager.java:1085)
> 	at org.apache.jackrabbit.core.state.XAItemStateManager.prepare(XAItemStateManager.java:163)
> 	at org.apache.jackrabbit.core.version.XAVersionManager.prepare(XAVersionManager.java:509)
> 	at org.apache.jackrabbit.core.TransactionContext.prepare(TransactionContext.java:154)
> 	at org.apache.jackrabbit.core.XASessionImpl.prepare(XASessionImpl.java:331)
> 	at org.springmodules.jcr.jackrabbit.support.JackRabbitUserTransaction.commit(JackRabbitUserTransaction.java:100)
> 	at org.springmodules.jcr.jackrabbit.LocalTransactionManager.doCommit(LocalTransactionManager.java:192)

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


[jira] Resolved: (JCR-2298) NPE in EventStateCollection

Posted by "Jukka Zitting (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/JCR-2298?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jukka Zitting resolved JCR-2298.
--------------------------------

       Resolution: Fixed
    Fix Version/s: 2.2.0
         Assignee: Jukka Zitting

Resolving as fixed based on the above partial solution. If we need a more complete solution, we can do that in a separate followup issue.

> NPE in EventStateCollection
> ---------------------------
>
>                 Key: JCR-2298
>                 URL: https://issues.apache.org/jira/browse/JCR-2298
>             Project: Jackrabbit Content Repository
>          Issue Type: Bug
>          Components: jackrabbit-core, transactions, versioning
>    Affects Versions: 1.6.0
>            Reporter: quipere
>            Assignee: Jukka Zitting
>             Fix For: 2.2.0
>
>
> When removing a Version with a versionlabel and restoring an other Version from the same containing history within 1 transaction, a NPE occured. When debugging I noticed the method createEventStates was entered with an UUID from a versionLabel. The ChangeLog.get(id) returned null.
> Caused by: java.lang.NullPointerException
> 	at org.apache.jackrabbit.core.observation.EventStateCollection.getNodeType(EventStateCollection.java:614)
> 	at org.apache.jackrabbit.core.observation.EventStateCollection.createEventStates(EventStateCollection.java:381)
> 	at org.apache.jackrabbit.core.state.SharedItemStateManager$Update.begin(SharedItemStateManager.java:697)
> 	at org.apache.jackrabbit.core.state.SharedItemStateManager.beginUpdate(SharedItemStateManager.java:1085)
> 	at org.apache.jackrabbit.core.state.XAItemStateManager.prepare(XAItemStateManager.java:163)
> 	at org.apache.jackrabbit.core.version.XAVersionManager.prepare(XAVersionManager.java:509)
> 	at org.apache.jackrabbit.core.TransactionContext.prepare(TransactionContext.java:154)
> 	at org.apache.jackrabbit.core.XASessionImpl.prepare(XASessionImpl.java:331)
> 	at org.springmodules.jcr.jackrabbit.support.JackRabbitUserTransaction.commit(JackRabbitUserTransaction.java:100)
> 	at org.springmodules.jcr.jackrabbit.LocalTransactionManager.doCommit(LocalTransactionManager.java:192)

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


[jira] Commented: (JCR-2298) NPE in EventStateCollection

Posted by "Jukka Zitting (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/JCR-2298?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12790239#action_12790239 ] 

Jukka Zitting commented on JCR-2298:
------------------------------------

As a first step I added (r890401) a simple workaround that detects the case when the old parent of a moved node is no longer available and replaced the NPE with an error log message. Note that required REMOVE event is *not* fired in such cases,  so this is not a final solution to this problem. But at least the MOVED and ADDED events now get fired and no NPE is thrown.

> NPE in EventStateCollection
> ---------------------------
>
>                 Key: JCR-2298
>                 URL: https://issues.apache.org/jira/browse/JCR-2298
>             Project: Jackrabbit Content Repository
>          Issue Type: Bug
>          Components: jackrabbit-core, transactions, versioning
>    Affects Versions: 1.6.0
>            Reporter: quipere
>
> When removing a Version with a versionlabel and restoring an other Version from the same containing history within 1 transaction, a NPE occured. When debugging I noticed the method createEventStates was entered with an UUID from a versionLabel. The ChangeLog.get(id) returned null.
> Caused by: java.lang.NullPointerException
> 	at org.apache.jackrabbit.core.observation.EventStateCollection.getNodeType(EventStateCollection.java:614)
> 	at org.apache.jackrabbit.core.observation.EventStateCollection.createEventStates(EventStateCollection.java:381)
> 	at org.apache.jackrabbit.core.state.SharedItemStateManager$Update.begin(SharedItemStateManager.java:697)
> 	at org.apache.jackrabbit.core.state.SharedItemStateManager.beginUpdate(SharedItemStateManager.java:1085)
> 	at org.apache.jackrabbit.core.state.XAItemStateManager.prepare(XAItemStateManager.java:163)
> 	at org.apache.jackrabbit.core.version.XAVersionManager.prepare(XAVersionManager.java:509)
> 	at org.apache.jackrabbit.core.TransactionContext.prepare(TransactionContext.java:154)
> 	at org.apache.jackrabbit.core.XASessionImpl.prepare(XASessionImpl.java:331)
> 	at org.springmodules.jcr.jackrabbit.support.JackRabbitUserTransaction.commit(JackRabbitUserTransaction.java:100)
> 	at org.springmodules.jcr.jackrabbit.LocalTransactionManager.doCommit(LocalTransactionManager.java:192)

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