You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jackrabbit.apache.org by "Sebastian Sickelmann (JIRA)" <ji...@apache.org> on 2010/08/12 13:57:18 UTC

[jira] Created: (JCR-2712) Dirty Internal State on Transaction-Rollback during Global Transaction (container managed transaction)

Dirty Internal State on Transaction-Rollback during Global Transaction (container managed transaction)
------------------------------------------------------------------------------------------------------

                 Key: JCR-2712
                 URL: https://issues.apache.org/jira/browse/JCR-2712
             Project: Jackrabbit Content Repository
          Issue Type: Bug
          Components: transactions
    Affects Versions: 1.6.2
         Environment: Websphere 7 (IBM JRE 6), RessourceAdapter (Jackrabbit), Global Transaction (JTA)
            Reporter: Sebastian Sickelmann
            Priority: Critical


Running the following code inside an Global Transaction (JTA, container managed transaction) causes problems.

Session session = getRepsoitorySession(); 
      Node rootNode = session.getRootNode(); 

      Node test = rootNode.addNode("test"); 
      test.addMixin(CTVRepositoryKonstanten.NODE_MIX_TYP_VERSION); 
      session.save(); 
      throw new RuntimeException("testException");

Everythink is fine, but if we execute it a second time we get an org.apache.jackrabbit.core.state.NoSuchItemStateException

org.apache.jackrabbit.core.state.NoSuchItemStateException: b36d91bc-8687-428c-a767-2e087b13191a 
at org.apache.jackrabbit.core.state.SharedItemStateManager.getItemState(SharedItemStateManager.java:270) 
at org.apache.jackrabbit.core.state.LocalItemStateManager.getNodeState(LocalItemStateManager.java:107) 
at org.apache.jackrabbit.core.state.LocalItemStateManager.getItemState(LocalItemStateManager.java:172) 
at org.apache.jackrabbit.core.state.XAItemStateManager.getItemState(XAItemStateManager.java:260) 
at org.apache.jackrabbit.core.version.NodeStateEx.store(NodeStateEx.java:519) 
at org.apache.jackrabbit.core.version.NodeStateEx.store(NodeStateEx.java:489) 
at org.apache.jackrabbit.core.version.AbstractVersionManager.getParentNode(AbstractVersionManager.java:414) 
at org.apache.jackrabbit.core.version.AbstractVersionManager.createVersionHistory(AbstractVersionManager.java:357) 
at org.apache.jackrabbit.core.version.XAVersionManager.createVersionHistory(XAVersionManager.java:148) 
at org.apache.jackrabbit.core.version.AbstractVersionManager.getVersionHistory(AbstractVersionManager.java:273) 
at org.apache.jackrabbit.core.ItemImpl.initVersionHistories(ItemImpl.java:738) 
at org.apache.jackrabbit.core.ItemImpl.save(ItemImpl.java:1097) 
at org.apache.jackrabbit.core.SessionImpl.save(SessionImpl.java:915) 
at org.apache.jackrabbit.jca.JCASessionHandle.save(JCASessionHandle.java:180) 
at de.continentale.repo.CTVRepository.erstelleDokument(CTVRepository.java:2267)

We think that there is some internal state that is not cleaned up on rollback.
Restarting the runtime (Application Server) "solved" this.

May be there are some same causes like in: JCR-2503, JCR-2613



-- 
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-2712) Dirty Internal State on Transaction-Rollback during Global Transaction (container managed transaction)

Posted by "Dominik Klaholt (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/JCR-2712?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12913528#action_12913528 ] 

Dominik Klaholt edited comment on JCR-2712 at 9/22/10 9:04 AM:
---------------------------------------------------------------

Executing the following method within XATest.java (  http://svn.apache.org/repos/asf/jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/XATest.java ) provokes the error as well:

public void testXAVersionManagerProblem() throws Exception {
    Session session = null;
    try {
        session = getHelper().getSuperuserSession();
	if (session.getRootNode().hasNode("testNode")) {
	    session.getRootNode().getNode("testNode").remove();
	    session.save();
        }
			
        UserTransaction utx;
        for (int i = 0; i < 2; i++) {
            utx = new UserTransactionImpl(session);
	    utx.begin();
	    session.getRootNode().addNode("testNode").addMixin(NodeType.MIX_VERSIONABLE);
	    session.save();
				
	    utx.rollback();
        }
    } finally {
	if (session != null) {
	    session.logout();
	}
    }
}

      was (Author: dokla):
    Executing the following method with XATest.java (  http://svn.apache.org/repos/asf/jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/XATest.java ) provokes the error as well:

public void testXAVersionManagerProblem() throws Exception {
		Session session = null;
		try {
			session = getHelper().getSuperuserSession();
			if (session.getRootNode().hasNode("testNode")) {
				session.getRootNode().getNode("testNode").remove();
				session.save();
			}
			
			UserTransaction utx;
			for (int i = 0; i < 2; i++) {
				utx = new UserTransactionImpl(session);
				utx.begin();
				session.getRootNode().addNode("testNode").addMixin(NodeType.MIX_VERSIONABLE);
				session.save();
				
				utx.rollback();
			}
		} finally {
			if (session != null) {
				session.logout();
			}
		}
}
  
> Dirty Internal State on Transaction-Rollback during Global Transaction (container managed transaction)
> ------------------------------------------------------------------------------------------------------
>
>                 Key: JCR-2712
>                 URL: https://issues.apache.org/jira/browse/JCR-2712
>             Project: Jackrabbit Content Repository
>          Issue Type: Bug
>          Components: jackrabbit-core, jackrabbit-jca, transactions
>    Affects Versions: 1.6.2, 2.1.1
>         Environment: Websphere 7 (IBM JRE 6), RessourceAdapter (Jackrabbit), Global Transaction (JTA)
>            Reporter: Sebastian Sickelmann
>            Priority: Critical
>
> Running the following code inside an Global Transaction (JTA, container managed transaction) causes problems.
> Session session = getRepsoitorySession(); 
>       Node rootNode = session.getRootNode(); 
>       Node test = rootNode.addNode("test"); 
>       test.addMixin(CTVRepositoryKonstanten.NODE_MIX_TYP_VERSION); 
>       session.save(); 
>       throw new RuntimeException("testException");
> Everythink is fine, but if we execute it a second time we get an org.apache.jackrabbit.core.state.NoSuchItemStateException
> org.apache.jackrabbit.core.state.NoSuchItemStateException: b36d91bc-8687-428c-a767-2e087b13191a 
> at org.apache.jackrabbit.core.state.SharedItemStateManager.getItemState(SharedItemStateManager.java:270) 
> at org.apache.jackrabbit.core.state.LocalItemStateManager.getNodeState(LocalItemStateManager.java:107) 
> at org.apache.jackrabbit.core.state.LocalItemStateManager.getItemState(LocalItemStateManager.java:172) 
> at org.apache.jackrabbit.core.state.XAItemStateManager.getItemState(XAItemStateManager.java:260) 
> at org.apache.jackrabbit.core.version.NodeStateEx.store(NodeStateEx.java:519) 
> at org.apache.jackrabbit.core.version.NodeStateEx.store(NodeStateEx.java:489) 
> at org.apache.jackrabbit.core.version.AbstractVersionManager.getParentNode(AbstractVersionManager.java:414) 
> at org.apache.jackrabbit.core.version.AbstractVersionManager.createVersionHistory(AbstractVersionManager.java:357) 
> at org.apache.jackrabbit.core.version.XAVersionManager.createVersionHistory(XAVersionManager.java:148) 
> at org.apache.jackrabbit.core.version.AbstractVersionManager.getVersionHistory(AbstractVersionManager.java:273) 
> at org.apache.jackrabbit.core.ItemImpl.initVersionHistories(ItemImpl.java:738) 
> at org.apache.jackrabbit.core.ItemImpl.save(ItemImpl.java:1097) 
> at org.apache.jackrabbit.core.SessionImpl.save(SessionImpl.java:915) 
> at org.apache.jackrabbit.jca.JCASessionHandle.save(JCASessionHandle.java:180) 
> at de.continentale.repo.CTVRepository.erstelleDokument(CTVRepository.java:2267)
> We think that there is some internal state that is not cleaned up on rollback.
> Restarting the runtime (Application Server) "solved" this.
> May be there are some same causes like in: JCR-2503, JCR-2613

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


[jira] Updated: (JCR-2712) Dirty Internal State on Transaction-Rollback during Global Transaction (container managed transaction)

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

Sebastian Sickelmann updated JCR-2712:
--------------------------------------

    Component/s: jackrabbit-core

I think this bug relates to jackrabbit core. Because the cause of the bug is in  java.org.apache.jackrabbit.core.version.InternalXAVersionManager

> Dirty Internal State on Transaction-Rollback during Global Transaction (container managed transaction)
> ------------------------------------------------------------------------------------------------------
>
>                 Key: JCR-2712
>                 URL: https://issues.apache.org/jira/browse/JCR-2712
>             Project: Jackrabbit Content Repository
>          Issue Type: Bug
>          Components: jackrabbit-core, jackrabbit-jca, transactions
>    Affects Versions: 1.6.2, 2.1.1
>         Environment: Websphere 7 (IBM JRE 6), RessourceAdapter (Jackrabbit), Global Transaction (JTA)
>            Reporter: Sebastian Sickelmann
>            Priority: Critical
>
> Running the following code inside an Global Transaction (JTA, container managed transaction) causes problems.
> Session session = getRepsoitorySession(); 
>       Node rootNode = session.getRootNode(); 
>       Node test = rootNode.addNode("test"); 
>       test.addMixin(CTVRepositoryKonstanten.NODE_MIX_TYP_VERSION); 
>       session.save(); 
>       throw new RuntimeException("testException");
> Everythink is fine, but if we execute it a second time we get an org.apache.jackrabbit.core.state.NoSuchItemStateException
> org.apache.jackrabbit.core.state.NoSuchItemStateException: b36d91bc-8687-428c-a767-2e087b13191a 
> at org.apache.jackrabbit.core.state.SharedItemStateManager.getItemState(SharedItemStateManager.java:270) 
> at org.apache.jackrabbit.core.state.LocalItemStateManager.getNodeState(LocalItemStateManager.java:107) 
> at org.apache.jackrabbit.core.state.LocalItemStateManager.getItemState(LocalItemStateManager.java:172) 
> at org.apache.jackrabbit.core.state.XAItemStateManager.getItemState(XAItemStateManager.java:260) 
> at org.apache.jackrabbit.core.version.NodeStateEx.store(NodeStateEx.java:519) 
> at org.apache.jackrabbit.core.version.NodeStateEx.store(NodeStateEx.java:489) 
> at org.apache.jackrabbit.core.version.AbstractVersionManager.getParentNode(AbstractVersionManager.java:414) 
> at org.apache.jackrabbit.core.version.AbstractVersionManager.createVersionHistory(AbstractVersionManager.java:357) 
> at org.apache.jackrabbit.core.version.XAVersionManager.createVersionHistory(XAVersionManager.java:148) 
> at org.apache.jackrabbit.core.version.AbstractVersionManager.getVersionHistory(AbstractVersionManager.java:273) 
> at org.apache.jackrabbit.core.ItemImpl.initVersionHistories(ItemImpl.java:738) 
> at org.apache.jackrabbit.core.ItemImpl.save(ItemImpl.java:1097) 
> at org.apache.jackrabbit.core.SessionImpl.save(SessionImpl.java:915) 
> at org.apache.jackrabbit.jca.JCASessionHandle.save(JCASessionHandle.java:180) 
> at de.continentale.repo.CTVRepository.erstelleDokument(CTVRepository.java:2267)
> We think that there is some internal state that is not cleaned up on rollback.
> Restarting the runtime (Application Server) "solved" this.
> May be there are some same causes like in: JCR-2503, JCR-2613

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


[jira] Commented: (JCR-2712) Dirty Internal State on Transaction-Rollback during Global Transaction (container managed transaction)

Posted by "Patrick Meyer (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/JCR-2712?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12900675#action_12900675 ] 

Patrick Meyer  commented on JCR-2712:
-------------------------------------

In Jackrabbit Version 2.1.1 the same issue occurs

> Dirty Internal State on Transaction-Rollback during Global Transaction (container managed transaction)
> ------------------------------------------------------------------------------------------------------
>
>                 Key: JCR-2712
>                 URL: https://issues.apache.org/jira/browse/JCR-2712
>             Project: Jackrabbit Content Repository
>          Issue Type: Bug
>          Components: transactions
>    Affects Versions: 1.6.2
>         Environment: Websphere 7 (IBM JRE 6), RessourceAdapter (Jackrabbit), Global Transaction (JTA)
>            Reporter: Sebastian Sickelmann
>            Priority: Critical
>
> Running the following code inside an Global Transaction (JTA, container managed transaction) causes problems.
> Session session = getRepsoitorySession(); 
>       Node rootNode = session.getRootNode(); 
>       Node test = rootNode.addNode("test"); 
>       test.addMixin(CTVRepositoryKonstanten.NODE_MIX_TYP_VERSION); 
>       session.save(); 
>       throw new RuntimeException("testException");
> Everythink is fine, but if we execute it a second time we get an org.apache.jackrabbit.core.state.NoSuchItemStateException
> org.apache.jackrabbit.core.state.NoSuchItemStateException: b36d91bc-8687-428c-a767-2e087b13191a 
> at org.apache.jackrabbit.core.state.SharedItemStateManager.getItemState(SharedItemStateManager.java:270) 
> at org.apache.jackrabbit.core.state.LocalItemStateManager.getNodeState(LocalItemStateManager.java:107) 
> at org.apache.jackrabbit.core.state.LocalItemStateManager.getItemState(LocalItemStateManager.java:172) 
> at org.apache.jackrabbit.core.state.XAItemStateManager.getItemState(XAItemStateManager.java:260) 
> at org.apache.jackrabbit.core.version.NodeStateEx.store(NodeStateEx.java:519) 
> at org.apache.jackrabbit.core.version.NodeStateEx.store(NodeStateEx.java:489) 
> at org.apache.jackrabbit.core.version.AbstractVersionManager.getParentNode(AbstractVersionManager.java:414) 
> at org.apache.jackrabbit.core.version.AbstractVersionManager.createVersionHistory(AbstractVersionManager.java:357) 
> at org.apache.jackrabbit.core.version.XAVersionManager.createVersionHistory(XAVersionManager.java:148) 
> at org.apache.jackrabbit.core.version.AbstractVersionManager.getVersionHistory(AbstractVersionManager.java:273) 
> at org.apache.jackrabbit.core.ItemImpl.initVersionHistories(ItemImpl.java:738) 
> at org.apache.jackrabbit.core.ItemImpl.save(ItemImpl.java:1097) 
> at org.apache.jackrabbit.core.SessionImpl.save(SessionImpl.java:915) 
> at org.apache.jackrabbit.jca.JCASessionHandle.save(JCASessionHandle.java:180) 
> at de.continentale.repo.CTVRepository.erstelleDokument(CTVRepository.java:2267)
> We think that there is some internal state that is not cleaned up on rollback.
> Restarting the runtime (Application Server) "solved" this.
> May be there are some same causes like in: JCR-2503, JCR-2613

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


[jira] Commented: (JCR-2712) Dirty Internal State on Transaction-Rollback during Global Transaction (container managed transaction)

Posted by "Patrick Meyer (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/JCR-2712?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12901829#action_12901829 ] 

Patrick Meyer  commented on JCR-2712:
-------------------------------------

The problem seems to be that ItemStates that are stored in InternalXAVersionmanager are not rollbacked until the boolean vmgrLocked is true.

see Line 624 of  InternalXAVersionManager last changed by mreutegg in Revision 637865
http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/InternalXAVersionManager.java?view=markup  

This variable can only be true after an prepare Call to the XASession (First Call in 2 Phase Commit) . But our "rollback trigger" occurs before the call of XASession.prepare.
see Line 654 of InternalXAVersionManager 

The changeset http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/InternalXAVersionManager.java?r1=637864&r2=637865& checks logging before commit. I think checking vmgrLocked in rollback case is wrong.

Does it have any other side-effect if we remove the check of vmgrLocked in rollback case?
Revision 637865 was for fixing JCR-1480


> Dirty Internal State on Transaction-Rollback during Global Transaction (container managed transaction)
> ------------------------------------------------------------------------------------------------------
>
>                 Key: JCR-2712
>                 URL: https://issues.apache.org/jira/browse/JCR-2712
>             Project: Jackrabbit Content Repository
>          Issue Type: Bug
>          Components: jackrabbit-jca, transactions
>    Affects Versions: 1.6.2, 2.1.1
>         Environment: Websphere 7 (IBM JRE 6), RessourceAdapter (Jackrabbit), Global Transaction (JTA)
>            Reporter: Sebastian Sickelmann
>            Priority: Critical
>
> Running the following code inside an Global Transaction (JTA, container managed transaction) causes problems.
> Session session = getRepsoitorySession(); 
>       Node rootNode = session.getRootNode(); 
>       Node test = rootNode.addNode("test"); 
>       test.addMixin(CTVRepositoryKonstanten.NODE_MIX_TYP_VERSION); 
>       session.save(); 
>       throw new RuntimeException("testException");
> Everythink is fine, but if we execute it a second time we get an org.apache.jackrabbit.core.state.NoSuchItemStateException
> org.apache.jackrabbit.core.state.NoSuchItemStateException: b36d91bc-8687-428c-a767-2e087b13191a 
> at org.apache.jackrabbit.core.state.SharedItemStateManager.getItemState(SharedItemStateManager.java:270) 
> at org.apache.jackrabbit.core.state.LocalItemStateManager.getNodeState(LocalItemStateManager.java:107) 
> at org.apache.jackrabbit.core.state.LocalItemStateManager.getItemState(LocalItemStateManager.java:172) 
> at org.apache.jackrabbit.core.state.XAItemStateManager.getItemState(XAItemStateManager.java:260) 
> at org.apache.jackrabbit.core.version.NodeStateEx.store(NodeStateEx.java:519) 
> at org.apache.jackrabbit.core.version.NodeStateEx.store(NodeStateEx.java:489) 
> at org.apache.jackrabbit.core.version.AbstractVersionManager.getParentNode(AbstractVersionManager.java:414) 
> at org.apache.jackrabbit.core.version.AbstractVersionManager.createVersionHistory(AbstractVersionManager.java:357) 
> at org.apache.jackrabbit.core.version.XAVersionManager.createVersionHistory(XAVersionManager.java:148) 
> at org.apache.jackrabbit.core.version.AbstractVersionManager.getVersionHistory(AbstractVersionManager.java:273) 
> at org.apache.jackrabbit.core.ItemImpl.initVersionHistories(ItemImpl.java:738) 
> at org.apache.jackrabbit.core.ItemImpl.save(ItemImpl.java:1097) 
> at org.apache.jackrabbit.core.SessionImpl.save(SessionImpl.java:915) 
> at org.apache.jackrabbit.jca.JCASessionHandle.save(JCASessionHandle.java:180) 
> at de.continentale.repo.CTVRepository.erstelleDokument(CTVRepository.java:2267)
> We think that there is some internal state that is not cleaned up on rollback.
> Restarting the runtime (Application Server) "solved" this.
> May be there are some same causes like in: JCR-2503, JCR-2613

-- 
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-2712) Dirty Internal State on Transaction-Rollback during Global Transaction (container managed transaction)

Posted by "Patrick Meyer (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/JCR-2712?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12900675#action_12900675 ] 

Patrick Meyer  edited comment on JCR-2712 at 8/20/10 7:54 AM:
--------------------------------------------------------------

In Jackrabbit Version 2.1.1 the same issue occurs

Caused by: org.apache.jackrabbit.core.state.NoSuchItemStateException: 4ac5058c-060a-45ce-9d75-b5dbc0456c63
	at org.apache.jackrabbit.core.state.SharedItemStateManager.getItemState(SharedItemStateManager.java:274)
	at org.apache.jackrabbit.core.state.LocalItemStateManager.getNodeState(LocalItemStateManager.java:107)
	at org.apache.jackrabbit.core.state.LocalItemStateManager.getItemState(LocalItemStateManager.java:172)
	at org.apache.jackrabbit.core.state.XAItemStateManager.getItemState(XAItemStateManager.java:260)
	at org.apache.jackrabbit.core.version.NodeStateEx.store(NodeStateEx.java:741)
	at org.apache.jackrabbit.core.version.NodeStateEx.store(NodeStateEx.java:715)
	at org.apache.jackrabbit.core.version.InternalVersionManagerBase.getParentNode(InternalVersionManagerBase.java:547)
	at org.apache.jackrabbit.core.version.InternalVersionManagerBase.internalCreateVersionHistory(InternalVersionManagerBase.java:411)
	at org.apache.jackrabbit.core.version.InternalXAVersionManager.createVersionHistory(InternalXAVersionManager.java:167)
	at org.apache.jackrabbit.core.version.InternalVersionManagerBase.getVersionHistory(InternalVersionManagerBase.java:322)
	at org.apache.jackrabbit.core.version.InternalXAVersionManager.getVersionHistory(InternalXAVersionManager.java:58)
	at org.apache.jackrabbit.core.ItemImpl.initVersionHistories(ItemImpl.java:778)
	at org.apache.jackrabbit.core.ItemImpl.save(ItemImpl.java:1119)
	at org.apache.jackrabbit.core.SessionImpl.save(SessionImpl.java:920)
	at org.apache.jackrabbit.jca.JCASessionHandle.save(JCASessionHandle.java:184)

      was (Author: patrickconti):
    In Jackrabbit Version 2.1.1 the same issue occurs
  
> Dirty Internal State on Transaction-Rollback during Global Transaction (container managed transaction)
> ------------------------------------------------------------------------------------------------------
>
>                 Key: JCR-2712
>                 URL: https://issues.apache.org/jira/browse/JCR-2712
>             Project: Jackrabbit Content Repository
>          Issue Type: Bug
>          Components: transactions
>    Affects Versions: 1.6.2
>         Environment: Websphere 7 (IBM JRE 6), RessourceAdapter (Jackrabbit), Global Transaction (JTA)
>            Reporter: Sebastian Sickelmann
>            Priority: Critical
>
> Running the following code inside an Global Transaction (JTA, container managed transaction) causes problems.
> Session session = getRepsoitorySession(); 
>       Node rootNode = session.getRootNode(); 
>       Node test = rootNode.addNode("test"); 
>       test.addMixin(CTVRepositoryKonstanten.NODE_MIX_TYP_VERSION); 
>       session.save(); 
>       throw new RuntimeException("testException");
> Everythink is fine, but if we execute it a second time we get an org.apache.jackrabbit.core.state.NoSuchItemStateException
> org.apache.jackrabbit.core.state.NoSuchItemStateException: b36d91bc-8687-428c-a767-2e087b13191a 
> at org.apache.jackrabbit.core.state.SharedItemStateManager.getItemState(SharedItemStateManager.java:270) 
> at org.apache.jackrabbit.core.state.LocalItemStateManager.getNodeState(LocalItemStateManager.java:107) 
> at org.apache.jackrabbit.core.state.LocalItemStateManager.getItemState(LocalItemStateManager.java:172) 
> at org.apache.jackrabbit.core.state.XAItemStateManager.getItemState(XAItemStateManager.java:260) 
> at org.apache.jackrabbit.core.version.NodeStateEx.store(NodeStateEx.java:519) 
> at org.apache.jackrabbit.core.version.NodeStateEx.store(NodeStateEx.java:489) 
> at org.apache.jackrabbit.core.version.AbstractVersionManager.getParentNode(AbstractVersionManager.java:414) 
> at org.apache.jackrabbit.core.version.AbstractVersionManager.createVersionHistory(AbstractVersionManager.java:357) 
> at org.apache.jackrabbit.core.version.XAVersionManager.createVersionHistory(XAVersionManager.java:148) 
> at org.apache.jackrabbit.core.version.AbstractVersionManager.getVersionHistory(AbstractVersionManager.java:273) 
> at org.apache.jackrabbit.core.ItemImpl.initVersionHistories(ItemImpl.java:738) 
> at org.apache.jackrabbit.core.ItemImpl.save(ItemImpl.java:1097) 
> at org.apache.jackrabbit.core.SessionImpl.save(SessionImpl.java:915) 
> at org.apache.jackrabbit.jca.JCASessionHandle.save(JCASessionHandle.java:180) 
> at de.continentale.repo.CTVRepository.erstelleDokument(CTVRepository.java:2267)
> We think that there is some internal state that is not cleaned up on rollback.
> Restarting the runtime (Application Server) "solved" this.
> May be there are some same causes like in: JCR-2503, JCR-2613

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


[jira] Updated: (JCR-2712) Dirty Internal State on Transaction-Rollback during Global Transaction (container managed transaction)

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

Sebastian Sickelmann updated JCR-2712:
--------------------------------------

    Affects Version/s: 2.1.1

> Dirty Internal State on Transaction-Rollback during Global Transaction (container managed transaction)
> ------------------------------------------------------------------------------------------------------
>
>                 Key: JCR-2712
>                 URL: https://issues.apache.org/jira/browse/JCR-2712
>             Project: Jackrabbit Content Repository
>          Issue Type: Bug
>          Components: transactions
>    Affects Versions: 1.6.2, 2.1.1
>         Environment: Websphere 7 (IBM JRE 6), RessourceAdapter (Jackrabbit), Global Transaction (JTA)
>            Reporter: Sebastian Sickelmann
>            Priority: Critical
>
> Running the following code inside an Global Transaction (JTA, container managed transaction) causes problems.
> Session session = getRepsoitorySession(); 
>       Node rootNode = session.getRootNode(); 
>       Node test = rootNode.addNode("test"); 
>       test.addMixin(CTVRepositoryKonstanten.NODE_MIX_TYP_VERSION); 
>       session.save(); 
>       throw new RuntimeException("testException");
> Everythink is fine, but if we execute it a second time we get an org.apache.jackrabbit.core.state.NoSuchItemStateException
> org.apache.jackrabbit.core.state.NoSuchItemStateException: b36d91bc-8687-428c-a767-2e087b13191a 
> at org.apache.jackrabbit.core.state.SharedItemStateManager.getItemState(SharedItemStateManager.java:270) 
> at org.apache.jackrabbit.core.state.LocalItemStateManager.getNodeState(LocalItemStateManager.java:107) 
> at org.apache.jackrabbit.core.state.LocalItemStateManager.getItemState(LocalItemStateManager.java:172) 
> at org.apache.jackrabbit.core.state.XAItemStateManager.getItemState(XAItemStateManager.java:260) 
> at org.apache.jackrabbit.core.version.NodeStateEx.store(NodeStateEx.java:519) 
> at org.apache.jackrabbit.core.version.NodeStateEx.store(NodeStateEx.java:489) 
> at org.apache.jackrabbit.core.version.AbstractVersionManager.getParentNode(AbstractVersionManager.java:414) 
> at org.apache.jackrabbit.core.version.AbstractVersionManager.createVersionHistory(AbstractVersionManager.java:357) 
> at org.apache.jackrabbit.core.version.XAVersionManager.createVersionHistory(XAVersionManager.java:148) 
> at org.apache.jackrabbit.core.version.AbstractVersionManager.getVersionHistory(AbstractVersionManager.java:273) 
> at org.apache.jackrabbit.core.ItemImpl.initVersionHistories(ItemImpl.java:738) 
> at org.apache.jackrabbit.core.ItemImpl.save(ItemImpl.java:1097) 
> at org.apache.jackrabbit.core.SessionImpl.save(SessionImpl.java:915) 
> at org.apache.jackrabbit.jca.JCASessionHandle.save(JCASessionHandle.java:180) 
> at de.continentale.repo.CTVRepository.erstelleDokument(CTVRepository.java:2267)
> We think that there is some internal state that is not cleaned up on rollback.
> Restarting the runtime (Application Server) "solved" this.
> May be there are some same causes like in: JCR-2503, JCR-2613

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


[jira] Commented: (JCR-2712) Dirty Internal State on Transaction-Rollback during Global Transaction (container managed transaction)

Posted by "Dominik Klaholt (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/JCR-2712?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12913528#action_12913528 ] 

Dominik Klaholt commented on JCR-2712:
--------------------------------------

Executing the following method with XATest.java (  http://svn.apache.org/repos/asf/jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/XATest.java ) provokes the error as well:

public void testXAVersionManagerProblem() throws Exception {
		Session session = null;
		try {
			session = getHelper().getSuperuserSession();
			if (session.getRootNode().hasNode("testNode")) {
				session.getRootNode().getNode("testNode").remove();
				session.save();
			}
			
			UserTransaction utx;
			for (int i = 0; i < 2; i++) {
				utx = new UserTransactionImpl(session);
				utx.begin();
				session.getRootNode().addNode("testNode").addMixin(NodeType.MIX_VERSIONABLE);
				session.save();
				
				utx.rollback();
			}
		} finally {
			if (session != null) {
				session.logout();
			}
		}
}

> Dirty Internal State on Transaction-Rollback during Global Transaction (container managed transaction)
> ------------------------------------------------------------------------------------------------------
>
>                 Key: JCR-2712
>                 URL: https://issues.apache.org/jira/browse/JCR-2712
>             Project: Jackrabbit Content Repository
>          Issue Type: Bug
>          Components: jackrabbit-core, jackrabbit-jca, transactions
>    Affects Versions: 1.6.2, 2.1.1
>         Environment: Websphere 7 (IBM JRE 6), RessourceAdapter (Jackrabbit), Global Transaction (JTA)
>            Reporter: Sebastian Sickelmann
>            Priority: Critical
>
> Running the following code inside an Global Transaction (JTA, container managed transaction) causes problems.
> Session session = getRepsoitorySession(); 
>       Node rootNode = session.getRootNode(); 
>       Node test = rootNode.addNode("test"); 
>       test.addMixin(CTVRepositoryKonstanten.NODE_MIX_TYP_VERSION); 
>       session.save(); 
>       throw new RuntimeException("testException");
> Everythink is fine, but if we execute it a second time we get an org.apache.jackrabbit.core.state.NoSuchItemStateException
> org.apache.jackrabbit.core.state.NoSuchItemStateException: b36d91bc-8687-428c-a767-2e087b13191a 
> at org.apache.jackrabbit.core.state.SharedItemStateManager.getItemState(SharedItemStateManager.java:270) 
> at org.apache.jackrabbit.core.state.LocalItemStateManager.getNodeState(LocalItemStateManager.java:107) 
> at org.apache.jackrabbit.core.state.LocalItemStateManager.getItemState(LocalItemStateManager.java:172) 
> at org.apache.jackrabbit.core.state.XAItemStateManager.getItemState(XAItemStateManager.java:260) 
> at org.apache.jackrabbit.core.version.NodeStateEx.store(NodeStateEx.java:519) 
> at org.apache.jackrabbit.core.version.NodeStateEx.store(NodeStateEx.java:489) 
> at org.apache.jackrabbit.core.version.AbstractVersionManager.getParentNode(AbstractVersionManager.java:414) 
> at org.apache.jackrabbit.core.version.AbstractVersionManager.createVersionHistory(AbstractVersionManager.java:357) 
> at org.apache.jackrabbit.core.version.XAVersionManager.createVersionHistory(XAVersionManager.java:148) 
> at org.apache.jackrabbit.core.version.AbstractVersionManager.getVersionHistory(AbstractVersionManager.java:273) 
> at org.apache.jackrabbit.core.ItemImpl.initVersionHistories(ItemImpl.java:738) 
> at org.apache.jackrabbit.core.ItemImpl.save(ItemImpl.java:1097) 
> at org.apache.jackrabbit.core.SessionImpl.save(SessionImpl.java:915) 
> at org.apache.jackrabbit.jca.JCASessionHandle.save(JCASessionHandle.java:180) 
> at de.continentale.repo.CTVRepository.erstelleDokument(CTVRepository.java:2267)
> We think that there is some internal state that is not cleaned up on rollback.
> Restarting the runtime (Application Server) "solved" this.
> May be there are some same causes like in: JCR-2503, JCR-2613

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


[jira] Resolved: (JCR-2712) Dirty Internal State on Transaction-Rollback during Global Transaction (container managed transaction)

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

Jukka Zitting resolved JCR-2712.
--------------------------------

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

Thanks for the accurate review of the problem and especially for the test case that made it easy to reproduce and fix this!

It seems to me that the problem is not that much the vmgrLocked check in the rollback() case, but rather the fact that the code calling rollback() has not called prepare() first. This is the case for the UserTransactionImpl utility class in Jackrabbit and apparently also in some transaction managers. However the InternalXAVersionManager class expects that a commit() or a rollback() can only happen after prepare() has already been called.

To better handle such situations I modified the InternalXAVersionManager to always make sure that the transaction is prepared before a commit() or a rollback() is performed. See revision 1000385 for this fix.

> Dirty Internal State on Transaction-Rollback during Global Transaction (container managed transaction)
> ------------------------------------------------------------------------------------------------------
>
>                 Key: JCR-2712
>                 URL: https://issues.apache.org/jira/browse/JCR-2712
>             Project: Jackrabbit Content Repository
>          Issue Type: Bug
>          Components: jackrabbit-core, jackrabbit-jca, transactions
>    Affects Versions: 1.6.2, 2.1.1
>         Environment: Websphere 7 (IBM JRE 6), RessourceAdapter (Jackrabbit), Global Transaction (JTA)
>            Reporter: Sebastian Sickelmann
>            Assignee: Jukka Zitting
>            Priority: Critical
>             Fix For: 2.2.0
>
>
> Running the following code inside an Global Transaction (JTA, container managed transaction) causes problems.
> Session session = getRepsoitorySession(); 
>       Node rootNode = session.getRootNode(); 
>       Node test = rootNode.addNode("test"); 
>       test.addMixin(CTVRepositoryKonstanten.NODE_MIX_TYP_VERSION); 
>       session.save(); 
>       throw new RuntimeException("testException");
> Everythink is fine, but if we execute it a second time we get an org.apache.jackrabbit.core.state.NoSuchItemStateException
> org.apache.jackrabbit.core.state.NoSuchItemStateException: b36d91bc-8687-428c-a767-2e087b13191a 
> at org.apache.jackrabbit.core.state.SharedItemStateManager.getItemState(SharedItemStateManager.java:270) 
> at org.apache.jackrabbit.core.state.LocalItemStateManager.getNodeState(LocalItemStateManager.java:107) 
> at org.apache.jackrabbit.core.state.LocalItemStateManager.getItemState(LocalItemStateManager.java:172) 
> at org.apache.jackrabbit.core.state.XAItemStateManager.getItemState(XAItemStateManager.java:260) 
> at org.apache.jackrabbit.core.version.NodeStateEx.store(NodeStateEx.java:519) 
> at org.apache.jackrabbit.core.version.NodeStateEx.store(NodeStateEx.java:489) 
> at org.apache.jackrabbit.core.version.AbstractVersionManager.getParentNode(AbstractVersionManager.java:414) 
> at org.apache.jackrabbit.core.version.AbstractVersionManager.createVersionHistory(AbstractVersionManager.java:357) 
> at org.apache.jackrabbit.core.version.XAVersionManager.createVersionHistory(XAVersionManager.java:148) 
> at org.apache.jackrabbit.core.version.AbstractVersionManager.getVersionHistory(AbstractVersionManager.java:273) 
> at org.apache.jackrabbit.core.ItemImpl.initVersionHistories(ItemImpl.java:738) 
> at org.apache.jackrabbit.core.ItemImpl.save(ItemImpl.java:1097) 
> at org.apache.jackrabbit.core.SessionImpl.save(SessionImpl.java:915) 
> at org.apache.jackrabbit.jca.JCASessionHandle.save(JCASessionHandle.java:180) 
> at de.continentale.repo.CTVRepository.erstelleDokument(CTVRepository.java:2267)
> We think that there is some internal state that is not cleaned up on rollback.
> Restarting the runtime (Application Server) "solved" this.
> May be there are some same causes like in: JCR-2503, JCR-2613

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


[jira] Updated: (JCR-2712) Dirty Internal State on Transaction-Rollback during Global Transaction (container managed transaction)

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

Stefan Guggisberg updated JCR-2712:
-----------------------------------

    Component/s: jackrabbit-jca

> Dirty Internal State on Transaction-Rollback during Global Transaction (container managed transaction)
> ------------------------------------------------------------------------------------------------------
>
>                 Key: JCR-2712
>                 URL: https://issues.apache.org/jira/browse/JCR-2712
>             Project: Jackrabbit Content Repository
>          Issue Type: Bug
>          Components: jackrabbit-jca, transactions
>    Affects Versions: 1.6.2, 2.1.1
>         Environment: Websphere 7 (IBM JRE 6), RessourceAdapter (Jackrabbit), Global Transaction (JTA)
>            Reporter: Sebastian Sickelmann
>            Priority: Critical
>
> Running the following code inside an Global Transaction (JTA, container managed transaction) causes problems.
> Session session = getRepsoitorySession(); 
>       Node rootNode = session.getRootNode(); 
>       Node test = rootNode.addNode("test"); 
>       test.addMixin(CTVRepositoryKonstanten.NODE_MIX_TYP_VERSION); 
>       session.save(); 
>       throw new RuntimeException("testException");
> Everythink is fine, but if we execute it a second time we get an org.apache.jackrabbit.core.state.NoSuchItemStateException
> org.apache.jackrabbit.core.state.NoSuchItemStateException: b36d91bc-8687-428c-a767-2e087b13191a 
> at org.apache.jackrabbit.core.state.SharedItemStateManager.getItemState(SharedItemStateManager.java:270) 
> at org.apache.jackrabbit.core.state.LocalItemStateManager.getNodeState(LocalItemStateManager.java:107) 
> at org.apache.jackrabbit.core.state.LocalItemStateManager.getItemState(LocalItemStateManager.java:172) 
> at org.apache.jackrabbit.core.state.XAItemStateManager.getItemState(XAItemStateManager.java:260) 
> at org.apache.jackrabbit.core.version.NodeStateEx.store(NodeStateEx.java:519) 
> at org.apache.jackrabbit.core.version.NodeStateEx.store(NodeStateEx.java:489) 
> at org.apache.jackrabbit.core.version.AbstractVersionManager.getParentNode(AbstractVersionManager.java:414) 
> at org.apache.jackrabbit.core.version.AbstractVersionManager.createVersionHistory(AbstractVersionManager.java:357) 
> at org.apache.jackrabbit.core.version.XAVersionManager.createVersionHistory(XAVersionManager.java:148) 
> at org.apache.jackrabbit.core.version.AbstractVersionManager.getVersionHistory(AbstractVersionManager.java:273) 
> at org.apache.jackrabbit.core.ItemImpl.initVersionHistories(ItemImpl.java:738) 
> at org.apache.jackrabbit.core.ItemImpl.save(ItemImpl.java:1097) 
> at org.apache.jackrabbit.core.SessionImpl.save(SessionImpl.java:915) 
> at org.apache.jackrabbit.jca.JCASessionHandle.save(JCASessionHandle.java:180) 
> at de.continentale.repo.CTVRepository.erstelleDokument(CTVRepository.java:2267)
> We think that there is some internal state that is not cleaned up on rollback.
> Restarting the runtime (Application Server) "solved" this.
> May be there are some same causes like in: JCR-2503, JCR-2613

-- 
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-2712) Dirty Internal State on Transaction-Rollback during Global Transaction (container managed transaction)

Posted by "Dominik Klaholt (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/JCR-2712?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12913528#action_12913528 ] 

Dominik Klaholt edited comment on JCR-2712 at 9/22/10 9:13 AM:
---------------------------------------------------------------

Executing the following method within XATest.java (  http://svn.apache.org/repos/asf/jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/XATest.java ) provokes the error as well (the error does not seem to occur every time, though -> that's why the for-loop does so many iterations):

public void testXAVersionManagerProblem() throws Exception {
Session session = null;
try {
session = getHelper().getSuperuserSession();
if (session.getRootNode().hasNode("testNode")) {
session.getRootNode().getNode("testNode").remove();
session.save();
}
			
UserTransaction utx;
for (int i = 0; i < 50; i++) {
utx = new UserTransactionImpl(session);
utx.begin();
session.getRootNode().addNode("testNode").addMixin(NodeType.MIX_VERSIONABLE);
session.save();
				
utx.rollback();
}
} finally {
if (session != null) {
session.logout();
}
}
}

      was (Author: dokla):
    Executing the following method within XATest.java (  http://svn.apache.org/repos/asf/jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/XATest.java ) provokes the error as well:

public void testXAVersionManagerProblem() throws Exception {
Session session = null;
try {
session = getHelper().getSuperuserSession();
if (session.getRootNode().hasNode("testNode")) {
session.getRootNode().getNode("testNode").remove();
session.save();
}
			
UserTransaction utx;
for (int i = 0; i < 2; i++) {
utx = new UserTransactionImpl(session);
utx.begin();
session.getRootNode().addNode("testNode").addMixin(NodeType.MIX_VERSIONABLE);
session.save();
				
utx.rollback();
}
} finally {
if (session != null) {
session.logout();
}
}
}
  
> Dirty Internal State on Transaction-Rollback during Global Transaction (container managed transaction)
> ------------------------------------------------------------------------------------------------------
>
>                 Key: JCR-2712
>                 URL: https://issues.apache.org/jira/browse/JCR-2712
>             Project: Jackrabbit Content Repository
>          Issue Type: Bug
>          Components: jackrabbit-core, jackrabbit-jca, transactions
>    Affects Versions: 1.6.2, 2.1.1
>         Environment: Websphere 7 (IBM JRE 6), RessourceAdapter (Jackrabbit), Global Transaction (JTA)
>            Reporter: Sebastian Sickelmann
>            Priority: Critical
>
> Running the following code inside an Global Transaction (JTA, container managed transaction) causes problems.
> Session session = getRepsoitorySession(); 
>       Node rootNode = session.getRootNode(); 
>       Node test = rootNode.addNode("test"); 
>       test.addMixin(CTVRepositoryKonstanten.NODE_MIX_TYP_VERSION); 
>       session.save(); 
>       throw new RuntimeException("testException");
> Everythink is fine, but if we execute it a second time we get an org.apache.jackrabbit.core.state.NoSuchItemStateException
> org.apache.jackrabbit.core.state.NoSuchItemStateException: b36d91bc-8687-428c-a767-2e087b13191a 
> at org.apache.jackrabbit.core.state.SharedItemStateManager.getItemState(SharedItemStateManager.java:270) 
> at org.apache.jackrabbit.core.state.LocalItemStateManager.getNodeState(LocalItemStateManager.java:107) 
> at org.apache.jackrabbit.core.state.LocalItemStateManager.getItemState(LocalItemStateManager.java:172) 
> at org.apache.jackrabbit.core.state.XAItemStateManager.getItemState(XAItemStateManager.java:260) 
> at org.apache.jackrabbit.core.version.NodeStateEx.store(NodeStateEx.java:519) 
> at org.apache.jackrabbit.core.version.NodeStateEx.store(NodeStateEx.java:489) 
> at org.apache.jackrabbit.core.version.AbstractVersionManager.getParentNode(AbstractVersionManager.java:414) 
> at org.apache.jackrabbit.core.version.AbstractVersionManager.createVersionHistory(AbstractVersionManager.java:357) 
> at org.apache.jackrabbit.core.version.XAVersionManager.createVersionHistory(XAVersionManager.java:148) 
> at org.apache.jackrabbit.core.version.AbstractVersionManager.getVersionHistory(AbstractVersionManager.java:273) 
> at org.apache.jackrabbit.core.ItemImpl.initVersionHistories(ItemImpl.java:738) 
> at org.apache.jackrabbit.core.ItemImpl.save(ItemImpl.java:1097) 
> at org.apache.jackrabbit.core.SessionImpl.save(SessionImpl.java:915) 
> at org.apache.jackrabbit.jca.JCASessionHandle.save(JCASessionHandle.java:180) 
> at de.continentale.repo.CTVRepository.erstelleDokument(CTVRepository.java:2267)
> We think that there is some internal state that is not cleaned up on rollback.
> Restarting the runtime (Application Server) "solved" this.
> May be there are some same causes like in: JCR-2503, JCR-2613

-- 
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-2712) Dirty Internal State on Transaction-Rollback during Global Transaction (container managed transaction)

Posted by "Dominik Klaholt (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/JCR-2712?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12913528#action_12913528 ] 

Dominik Klaholt edited comment on JCR-2712 at 9/22/10 9:07 AM:
---------------------------------------------------------------

Executing the following method within XATest.java (  http://svn.apache.org/repos/asf/jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/XATest.java ) provokes the error as well:

public void testXAVersionManagerProblem() throws Exception {
Session session = null;
try {
session = getHelper().getSuperuserSession();
if (session.getRootNode().hasNode("testNode")) {
session.getRootNode().getNode("testNode").remove();
session.save();
}
			
UserTransaction utx;
for (int i = 0; i < 2; i++) {
utx = new UserTransactionImpl(session);
utx.begin();
session.getRootNode().addNode("testNode").addMixin(NodeType.MIX_VERSIONABLE);
session.save();
				
utx.rollback();
}
} finally {
if (session != null) {
session.logout();
}
}
}

      was (Author: dokla):
    Executing the following method within XATest.java (  http://svn.apache.org/repos/asf/jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/XATest.java ) provokes the error as well:

public void testXAVersionManagerProblem() throws Exception {
    Session session = null;
    try {
        session = getHelper().getSuperuserSession();
	if (session.getRootNode().hasNode("testNode")) {
	    session.getRootNode().getNode("testNode").remove();
	    session.save();
        }
			
        UserTransaction utx;
        for (int i = 0; i < 2; i++) {
            utx = new UserTransactionImpl(session);
	    utx.begin();
	    session.getRootNode().addNode("testNode").addMixin(NodeType.MIX_VERSIONABLE);
	    session.save();
				
	    utx.rollback();
        }
    } finally {
	if (session != null) {
	    session.logout();
	}
    }
}
  
> Dirty Internal State on Transaction-Rollback during Global Transaction (container managed transaction)
> ------------------------------------------------------------------------------------------------------
>
>                 Key: JCR-2712
>                 URL: https://issues.apache.org/jira/browse/JCR-2712
>             Project: Jackrabbit Content Repository
>          Issue Type: Bug
>          Components: jackrabbit-core, jackrabbit-jca, transactions
>    Affects Versions: 1.6.2, 2.1.1
>         Environment: Websphere 7 (IBM JRE 6), RessourceAdapter (Jackrabbit), Global Transaction (JTA)
>            Reporter: Sebastian Sickelmann
>            Priority: Critical
>
> Running the following code inside an Global Transaction (JTA, container managed transaction) causes problems.
> Session session = getRepsoitorySession(); 
>       Node rootNode = session.getRootNode(); 
>       Node test = rootNode.addNode("test"); 
>       test.addMixin(CTVRepositoryKonstanten.NODE_MIX_TYP_VERSION); 
>       session.save(); 
>       throw new RuntimeException("testException");
> Everythink is fine, but if we execute it a second time we get an org.apache.jackrabbit.core.state.NoSuchItemStateException
> org.apache.jackrabbit.core.state.NoSuchItemStateException: b36d91bc-8687-428c-a767-2e087b13191a 
> at org.apache.jackrabbit.core.state.SharedItemStateManager.getItemState(SharedItemStateManager.java:270) 
> at org.apache.jackrabbit.core.state.LocalItemStateManager.getNodeState(LocalItemStateManager.java:107) 
> at org.apache.jackrabbit.core.state.LocalItemStateManager.getItemState(LocalItemStateManager.java:172) 
> at org.apache.jackrabbit.core.state.XAItemStateManager.getItemState(XAItemStateManager.java:260) 
> at org.apache.jackrabbit.core.version.NodeStateEx.store(NodeStateEx.java:519) 
> at org.apache.jackrabbit.core.version.NodeStateEx.store(NodeStateEx.java:489) 
> at org.apache.jackrabbit.core.version.AbstractVersionManager.getParentNode(AbstractVersionManager.java:414) 
> at org.apache.jackrabbit.core.version.AbstractVersionManager.createVersionHistory(AbstractVersionManager.java:357) 
> at org.apache.jackrabbit.core.version.XAVersionManager.createVersionHistory(XAVersionManager.java:148) 
> at org.apache.jackrabbit.core.version.AbstractVersionManager.getVersionHistory(AbstractVersionManager.java:273) 
> at org.apache.jackrabbit.core.ItemImpl.initVersionHistories(ItemImpl.java:738) 
> at org.apache.jackrabbit.core.ItemImpl.save(ItemImpl.java:1097) 
> at org.apache.jackrabbit.core.SessionImpl.save(SessionImpl.java:915) 
> at org.apache.jackrabbit.jca.JCASessionHandle.save(JCASessionHandle.java:180) 
> at de.continentale.repo.CTVRepository.erstelleDokument(CTVRepository.java:2267)
> We think that there is some internal state that is not cleaned up on rollback.
> Restarting the runtime (Application Server) "solved" this.
> May be there are some same causes like in: JCR-2503, JCR-2613

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