You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jackrabbit.apache.org by "angela (JIRA)" <ji...@apache.org> on 2010/02/23 22:13:29 UTC
[jira] Updated: (JCR-2078) InvalidItemState after some rollbacks
with XA Resource
[ https://issues.apache.org/jira/browse/JCR-2078?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
angela updated JCR-2078:
------------------------
Component/s: transactions
jackrabbit-core
> InvalidItemState after some rollbacks with XA Resource
> ------------------------------------------------------
>
> Key: JCR-2078
> URL: https://issues.apache.org/jira/browse/JCR-2078
> Project: Jackrabbit Content Repository
> Issue Type: Bug
> Components: jackrabbit-core, transactions
> Affects Versions: 1.4, 1.5.4
> Reporter: Juergen Melzer
> Priority: Critical
>
> I modified a versionable node and do a rollback, after 3 to 10 iterations the test will fail.
> Here is a simple testcase to demonstrate the situation.
> import junit.framework.TestCase;
> import org.apache.jackrabbit.core.RepositoryImpl;
> import org.apache.jackrabbit.core.config.RepositoryConfig;
> import org.springframework.core.io.ClassPathResource;
> import org.springmodules.jcr.jackrabbit.support.JackRabbitUserTransaction;
> import org.xml.sax.InputSource;
> import javax.jcr.*;
> import java.io.File;
> public class NoSuchItemStateExceptionTest extends TestCase {
> private static final File TARGET = new File("target");
> private static final String REPO_HOME = "repository-lock-test";
> public void testIt2() throws Exception {
> RepositoryConfig config =
> RepositoryConfig.create(new InputSource(new ClassPathResource("repository.xml").getInputStream()),
> REPO_HOME);
> final Repository repository = RepositoryImpl.create(config);
> SimpleCredentials credentials = new SimpleCredentials("1", "1".toCharArray());
> Session sess = repository.login(credentials);
> for (int i = 0; i < 100; i++) {
> JackRabbitUserTransaction tx = new JackRabbitUserTransaction(sess);
> tx.begin();
> System.out.println("i=" + i);
> Node root = sess.getRootNode();
> createNode(sess, root);
> tx.rollback();
> }
> }
> void createNode(Session sess, Node root) throws RepositoryException {
> Node nodeType = root.addNode("first");
> Node n = nodeType.addNode("second");
> n.addMixin("mix:versionable");
> Node n2 = nodeType.addNode("second2");
> n2.addMixin("mix:versionable");
> sess.save();
> }
> }
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.