[exo-jcr-commits] exo-jcr SVN: r1454 - jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/api/xa.

do-not-reply at jboss.org do-not-reply at jboss.org
Sun Jan 17 10:12:24 EST 2010


Author: pnedonosko
Date: 2010-01-17 10:12:24 -0500 (Sun, 17 Jan 2010)
New Revision: 1454

Modified:
   jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/api/xa/TestUserTransaction.java
Log:
EXOJCR-405 test on JCR error in XA transaction

Modified: jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/api/xa/TestUserTransaction.java
===================================================================
--- jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/api/xa/TestUserTransaction.java	2010-01-17 14:08:04 UTC (rev 1453)
+++ jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/api/xa/TestUserTransaction.java	2010-01-17 15:12:24 UTC (rev 1454)
@@ -32,6 +32,7 @@
 import javax.jcr.SimpleCredentials;
 import javax.naming.InitialContext;
 import javax.transaction.UserTransaction;
+import javax.transaction.xa.XAException;
 
 /**
  * Created by The eXo Platform SAS. <br>
@@ -170,10 +171,14 @@
    public void testUserTransactionFromJndi() throws Exception
    {
       assertNotNull(txService);
-      InitialContext ctx = new InitialContext();
-      Object obj = ctx.lookup("UserTransaction");
-      UserTransaction ut = (UserTransaction)obj;
 
+      // TODO in JNDI only JOTM today
+      //InitialContext ctx = new InitialContext();
+      //Object obj = ctx.lookup("UserTransaction");
+      //UserTransaction ut = (UserTransaction)obj;
+
+      UserTransaction ut = txService.getUserTransaction();
+
       ut.begin();
       Session s1 =
          repository.login(new SimpleCredentials("admin", "admin".toCharArray()), session.getWorkspace().getName());
@@ -187,10 +192,13 @@
    public void testReuseUT() throws Exception
    {
       assertNotNull(txService);
-      InitialContext ctx = new InitialContext();
-      Object obj = ctx.lookup("UserTransaction");
-      UserTransaction ut = (UserTransaction)obj;
+      // TODO in JNDI only JOTM today
+      //InitialContext ctx = new InitialContext();
+      //Object obj = ctx.lookup("UserTransaction");
+      //UserTransaction ut = (UserTransaction)obj;
 
+      UserTransaction ut = txService.getUserTransaction();
+
       ut.begin();
 
       Session s1 =
@@ -211,4 +219,48 @@
 
    }
 
+   public void testSaveException() throws Exception
+   {
+      assertNotNull(txService);
+      // TODO in JNDI only JOTM today
+      //InitialContext ctx = new InitialContext();
+      //Object obj = ctx.lookup("UserTransaction");
+      //UserTransaction ut = (UserTransaction)obj;
+
+      UserTransaction ut = txService.getUserTransaction();
+
+      Session s0 =
+         repository.login(new SimpleCredentials("admin", "admin".toCharArray()), session.getWorkspace().getName());
+      Node pretx = s0.getRootNode().addNode("pretx");
+      s0.save();
+
+      pretx.remove(); // don't save now
+
+      ut.begin();
+
+      Session s1 =
+         repository.login(new SimpleCredentials("admin", "admin".toCharArray()), session.getWorkspace().getName());
+
+      Node tx1 = s1.getRootNode().getNode("pretx").addNode("tx1");
+      s1.save();
+
+      s0.save(); // save that parent of tx1 removed
+
+      try
+      {
+         ut.commit();
+         // internally XAException should be thrown
+         fail("XAException with InvalidItemState should occurs");
+      }
+      catch (Throwable e)
+      {
+         // ok
+         e.printStackTrace();
+         System.out.println(e);
+      }
+
+      assertNotNull(session.getItem("/pretx/tx1"));
+
+   }
+
 }



More information about the exo-jcr-commits mailing list