[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