[jboss-svn-commits] JBL Code SVN: r25465 - in labs/jbosstm/trunk: ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/basic and 2 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Fri Feb 27 14:24:13 EST 2009


Author: mark.little at jboss.com
Date: 2009-02-27 14:24:13 -0500 (Fri, 27 Feb 2009)
New Revision: 25465

Added:
   labs/jbosstm/trunk/ArjunaJTA/jta/tests/classes/com/hp/mwtests/ts/jta/basic/SuspendResume.java
   labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/basic/SuspendResume.java
   labs/jbosstm/trunk/ArjunaJTS/jts/tests/classes/com/hp/mwtests/ts/jts/remote/current/SuspendResume.java
Modified:
   labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/orbspecific/CurrentImple.java
Log:
https://jira.jboss.org/jira/browse/JBTM-497

Added: labs/jbosstm/trunk/ArjunaJTA/jta/tests/classes/com/hp/mwtests/ts/jta/basic/SuspendResume.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTA/jta/tests/classes/com/hp/mwtests/ts/jta/basic/SuspendResume.java	                        (rev 0)
+++ labs/jbosstm/trunk/ArjunaJTA/jta/tests/classes/com/hp/mwtests/ts/jta/basic/SuspendResume.java	2009-02-27 19:24:13 UTC (rev 25465)
@@ -0,0 +1,101 @@
+/*
+ * 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.basic;
+
+import com.hp.mwtests.ts.jta.common.*;
+
+import com.arjuna.ats.jta.*;
+
+import com.arjuna.ats.arjuna.common.*;
+import org.jboss.dtf.testframework.unittest.Test;
+import org.jboss.dtf.testframework.unittest.LocalHarness;
+
+import javax.transaction.*;
+import javax.transaction.xa.*;
+
+import java.lang.IllegalAccessException;
+
+public class SuspendResume extends Test
+{
+    public void run (String[] args)
+    {
+        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();
+
+                if (theTransaction != null)
+                {
+                    tm.commit();
+
+                    tm.resume(theTransaction);
+                }
+                else
+                {
+                    System.err.println("Error - could not get transaction!");
+                    tm.rollback();
+                    assertFailure();
+                }
+
+                System.out.println("\nTest completed successfully.");
+                assertSuccess();
+            }
+            else
+            {
+                System.err
+                        .println("Error - could not get transaction manager!");
+                assertFailure();
+            }
+        }
+        catch (Exception e)
+        {
+            e.printStackTrace();
+            assertFailure();
+        }
+    }
+
+    public static void main (String[] args)
+    {
+        SuspendResume test = new SuspendResume();
+        test.initialise(null, null, args, new LocalHarness());
+        test.runTest();
+    }
+
+}

Added: labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/basic/SuspendResume.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/basic/SuspendResume.java	                        (rev 0)
+++ labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/basic/SuspendResume.java	2009-02-27 19:24:13 UTC (rev 25465)
@@ -0,0 +1,121 @@
+/*
+ * 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 com.arjuna.ats.jta.common.*;
+
+import com.arjuna.ats.internal.jts.ORBManager;
+
+import com.arjuna.orbportability.*;
+
+public class SuspendResume
+{
+
+    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 (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();
+
+                if (theTransaction != null)
+                {
+                    tm.commit();
+
+                    tm.resume(theTransaction);
+                }
+                else
+                {
+                    System.err.println("Error - could not get transaction!");
+                    tm.rollback();
+                    System.exit(0);
+                }
+
+                System.out.println("\nTest completed successfully.");
+                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/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/orbspecific/CurrentImple.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/orbspecific/CurrentImple.java	2009-02-27 15:14:39 UTC (rev 25464)
+++ labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/orbspecific/CurrentImple.java	2009-02-27 19:24:13 UTC (rev 25465)
@@ -47,6 +47,7 @@
 import com.arjuna.ats.internal.jts.coordinator.CheckedActions;
 import com.arjuna.ats.internal.jts.orbspecific.ControlImple;
 import com.arjuna.ats.internal.jts.orbspecific.TransactionFactoryImple;
+import com.arjuna.ats.internal.jts.orbspecific.coordinator.ArjunaTransactionImple;
 
 import com.arjuna.ats.internal.arjuna.template.*;
 import com.arjuna.ats.internal.arjuna.thread.ThreadActionData;
@@ -838,6 +839,7 @@
 		}
 		catch (NullPointerException npx)
 		{
+		    npx.printStackTrace();
 			invalidControl = true;
 		}
 
@@ -856,7 +858,14 @@
 
 		if (which != null)
 		{
-		    if (which.isLocal())
+		    /*
+		     * If this is a local transaction and we haven't zero-ed the transaction
+		     * reference then resume it. Otherwise go with the Control.
+		     */
+		    
+		    ArjunaTransactionImple tx = ((which.getImple() == null) ? null : which.getImple().getImplHandle());
+		    
+		    if (which.isLocal() && (tx != null))
 		        resumeImple(which.getImple());
 		    else
 		        resume(which.getControl());

Added: labs/jbosstm/trunk/ArjunaJTS/jts/tests/classes/com/hp/mwtests/ts/jts/remote/current/SuspendResume.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jts/tests/classes/com/hp/mwtests/ts/jts/remote/current/SuspendResume.java	                        (rev 0)
+++ labs/jbosstm/trunk/ArjunaJTS/jts/tests/classes/com/hp/mwtests/ts/jts/remote/current/SuspendResume.java	2009-02-27 19:24:13 UTC (rev 25465)
@@ -0,0 +1,135 @@
+/*
+ * 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) 1998, 1999, 2000,
+ *
+ * Arjuna Solutions Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: CurrentTest.java 2342 2006-03-30 13:06:17Z  $
+ */
+
+package com.hp.mwtests.ts.jts.remote.current;
+
+import com.hp.mwtests.ts.jts.resources.*;
+import com.hp.mwtests.ts.jts.orbspecific.resources.*;
+import com.hp.mwtests.ts.jts.TestModule.*;
+
+import com.arjuna.orbportability.*;
+
+import com.arjuna.ats.jts.extensions.*;
+
+import com.arjuna.ats.internal.jts.OTSImpleManager;
+import com.arjuna.ats.internal.jts.ORBManager;
+import com.arjuna.ats.internal.jts.orbspecific.TransactionFactoryImple;
+import com.arjuna.ats.internal.jts.orbspecific.CurrentImple;
+import org.jboss.dtf.testframework.unittest.Test;
+import org.jboss.dtf.testframework.unittest.LocalHarness;
+
+import org.omg.CosTransactions.*;
+
+import org.omg.CORBA.IntHolder;
+
+import org.omg.CosTransactions.Unavailable;
+import org.omg.CORBA.SystemException;
+import org.omg.CORBA.UserException;
+import org.omg.CORBA.INVALID_TRANSACTION;
+
+public class SuspendResume extends Test
+{
+
+    public void run (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 (Exception e)
+        {
+            System.err.println("Initialisation failed: " + e);
+            assertFailure();
+        }
+
+        CurrentImple current = OTSImpleManager.current();
+        Control myControl = null;
+        
+        System.out.println("Beginning transaction.");
+
+        try
+        {
+            current.begin();
+
+            myControl = current.get_control();
+
+            if (myControl == null)
+            {
+                System.err.println("Error - control is null!");
+                assertFailure();
+            }
+        }
+        catch (Exception sysEx)
+        {
+            sysEx.printStackTrace(System.err);
+            assertFailure();
+        }
+
+        System.out.println("Committing transaction.");
+
+        try
+        {
+            current.commit(true);
+
+            current.resume(myControl);
+            
+            assertSuccess();
+        }
+        catch (Exception e)
+        {
+            System.err.println("commit error: " + e);
+            e.printStackTrace(System.err);
+            assertFailure();
+        }
+
+        myOA.destroy();
+        myORB.shutdown();
+
+        System.out.println("Test completed successfully.");
+    }
+
+    public static void main (String[] args)
+    {
+        SuspendResume ct = new SuspendResume();
+        ct.initialise(null, null, args, new LocalHarness());
+        ct.runTest();
+    }
+}




More information about the jboss-svn-commits mailing list