[jboss-svn-commits] JBL Code SVN: r26726 - in labs/jbosstm/branches/JBOSSTS_4_6_1_GA_CP/ArjunaJTS: jts/classes/com/arjuna/ats/internal/jts and 1 other directory.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Tue May 26 05:29:08 EDT 2009
Author: jhalliday
Date: 2009-05-26 05:29:08 -0400 (Tue, 26 May 2009)
New Revision: 26726
Added:
labs/jbosstm/branches/JBOSSTS_4_6_1_GA_CP/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/basic/ThreadedCommit.java
Modified:
labs/jbosstm/branches/JBOSSTS_4_6_1_GA_CP/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/ControlWrapper.java
Log:
Merge JTS threaded commit changes from trunk to the CP branch. JBTM-558
Copied: labs/jbosstm/branches/JBOSSTS_4_6_1_GA_CP/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/basic/ThreadedCommit.java (from rev 26702, labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/basic/ThreadedCommit.java)
===================================================================
--- labs/jbosstm/branches/JBOSSTS_4_6_1_GA_CP/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/basic/ThreadedCommit.java (rev 0)
+++ labs/jbosstm/branches/JBOSSTS_4_6_1_GA_CP/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/basic/ThreadedCommit.java 2009-05-26 09:29:08 UTC (rev 26726)
@@ -0,0 +1,179 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags.
+ * See the copyright.txt in the distribution for a full listing
+ * of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+/*
+ * Copyright (C) 2001, 2002,
+ *
+ * Hewlett-Packard Arjuna Labs,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: JTATest.java 2342 2006-03-30 13:06:17Z $
+ */
+
+package com.hp.mwtests.ts.jta.jts.basic;
+
+import javax.transaction.Status;
+import javax.transaction.Transaction;
+import javax.transaction.TransactionManager;
+
+import com.arjuna.ats.jta.common.*;
+import com.arjuna.ats.jta.utils.JTAHelper;
+
+import com.arjuna.ats.internal.jts.ORBManager;
+
+import com.arjuna.orbportability.*;
+
+class TWorker extends Thread
+{
+ public TWorker (javax.transaction.Transaction tx, boolean first)
+ {
+ _tx = tx;
+ _success = true;
+ _first = first;
+ }
+
+ public void run ()
+ {
+ TransactionManager tm = com.arjuna.ats.jta.TransactionManager.transactionManager();
+
+ try
+ {
+ tm.resume(_tx);
+
+ if (!_first)
+ {
+ while (tm.getStatus() == Status.STATUS_ACTIVE)
+ {
+ try
+ {
+ Thread.sleep(1000);
+ }
+ catch (final Exception ex)
+ {
+ }
+ }
+ }
+
+ tm.commit();
+ }
+ catch (final Exception ex)
+ {
+ ex.printStackTrace();
+
+ _success = false;
+ }
+ }
+
+ public final boolean success ()
+ {
+ return _success;
+ }
+
+ private Transaction _tx;
+ private boolean _success;
+ private boolean _first;
+}
+
+public class ThreadedCommit
+{
+
+ public static void main (String[] args)
+ {
+ ORB myORB = null;
+ RootOA myOA = null;
+
+ try
+ {
+ myORB = ORB.getInstance("test");
+ myOA = OA.getRootOA(myORB);
+
+ myORB.initORB(args, null);
+ myOA.initOA();
+
+ ORBManager.setORB(myORB);
+ ORBManager.setPOA(myOA);
+ }
+ catch (final Exception e)
+ {
+ System.err.println("Initialisation failed: " + e);
+
+ System.exit(0);
+ }
+
+ jtaPropertyManager.propertyManager
+ .setProperty(
+ com.arjuna.ats.jta.common.Environment.JTA_TM_IMPLEMENTATION,
+ "com.arjuna.ats.internal.jta.transaction.jts.TransactionManagerImple");
+ jtaPropertyManager.propertyManager
+ .setProperty(
+ com.arjuna.ats.jta.common.Environment.JTA_UT_IMPLEMENTATION,
+ "com.arjuna.ats.internal.jta.transaction.jts.UserTransactionImple");
+
+ try
+ {
+ javax.transaction.TransactionManager tm = com.arjuna.ats.jta.TransactionManager
+ .transactionManager();
+
+ if (tm != null)
+ {
+ System.out.println("Starting top-level transaction.");
+
+ tm.begin();
+
+ javax.transaction.Transaction theTransaction = tm
+ .getTransaction();
+
+ TWorker worker1 = new TWorker(theTransaction, true);
+ TWorker worker2 = new TWorker(theTransaction, false);
+
+ worker1.start();
+ worker2.start();
+
+ worker1.join();
+ worker2.join();
+
+ if (worker1.success() && worker2.success())
+ {
+ System.out.println("\nTest completed successfully.");
+ }
+ else
+ System.out.println("\nTest unsuccessful.");
+
+ System.exit(0);
+ }
+ else
+ {
+ System.err
+ .println("Error - could not get transaction manager!");
+ System.exit(0);
+ }
+ }
+ catch (Exception e)
+ {
+ e.printStackTrace();
+ }
+
+ myOA.destroy();
+ myORB.shutdown();
+ }
+
+}
Modified: labs/jbosstm/branches/JBOSSTS_4_6_1_GA_CP/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/ControlWrapper.java
===================================================================
--- labs/jbosstm/branches/JBOSSTS_4_6_1_GA_CP/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/ControlWrapper.java 2009-05-26 09:04:35 UTC (rev 26725)
+++ labs/jbosstm/branches/JBOSSTS_4_6_1_GA_CP/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/ControlWrapper.java 2009-05-26 09:29:08 UTC (rev 26726)
@@ -283,9 +283,12 @@
throw new Unavailable();
}
}
- catch (NullPointerException ex) // if local handle is null then it was terminated (reaper)
+ catch (NullPointerException ex) // if local handle is null then it was terminated (probably by reaper)
{
- throw new TRANSACTION_ROLLEDBACK();
+ // check termination status
+
+ if (_controlImpl.getFinalStatus() != org.omg.CosTransactions.Status.StatusCommitted)
+ throw new TRANSACTION_ROLLEDBACK();
}
}
More information about the jboss-svn-commits
mailing list