[jboss-svn-commits] JBL Code SVN: r32068 - in labs/jbosstm/trunk: ArjunaJTA/jta/tests/classes/com/hp/mwtests/ts/jta/nested and 19 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Sat Mar 13 16:06:08 EST 2010
Author: mark.little at jboss.com
Date: 2010-03-13 16:06:07 -0500 (Sat, 13 Mar 2010)
New Revision: 32068
Added:
labs/jbosstm/trunk/ArjunaJTS/jts/tests/classes/com/hp/mwtests/ts/jts/local/transactions/CheckedActionsUnitTest.java
labs/jbosstm/trunk/ArjunaJTS/jts/tests/classes/com/hp/mwtests/ts/jts/orbspecific/recovery/JacORBRecoveryUnitTest.java
labs/jbosstm/trunk/ArjunaJTS/jts/tests/classes/com/hp/mwtests/ts/jts/participants/
labs/jbosstm/trunk/ArjunaJTS/jts/tests/classes/com/hp/mwtests/ts/jts/participants/ExtendedResourceUnitTest.java
labs/jbosstm/trunk/ArjunaJTS/jts/tests/classes/com/hp/mwtests/ts/jts/recovery/TopLevelTransactionUnitTest.java
Modified:
labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/transaction/arjunacore/BaseTransaction.java
labs/jbosstm/trunk/ArjunaJTA/jta/tests/classes/com/hp/mwtests/ts/jta/nested/SimpleNestedTest.java
labs/jbosstm/trunk/ArjunaJTA/jta/tests/classes/com/hp/mwtests/ts/jta/recovery/CrashRecovery.java
labs/jbosstm/trunk/ArjunaJTS/jtax/build.xml
labs/jbosstm/trunk/ArjunaJTS/jtax/classes/com/arjuna/ats/internal/jta/transaction/jts/BaseTransaction.java
labs/jbosstm/trunk/ArjunaJTS/jtax/classes/com/arjuna/ats/internal/jta/transaction/jts/TransactionImple.java
labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/basic/ThreadedCommit.java
labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/nested/SimpleNestedTest.java
labs/jbosstm/trunk/ArjunaJTS/jts/build.xml
labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/ControlWrapper.java
labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/coordinator/CheckedActions.java
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/jacorb/recoverycoordinators/JacOrbRCManager.java
labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/orbspecific/jacorb/recoverycoordinators/JacOrbRCServiceInit.java
labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/orbspecific/jacorb/recoverycoordinators/JacOrbRCShutdown.java
labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/orbspecific/jacorb/recoverycoordinators/JacOrbRecoveryInit.java
labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/recovery/transactions/TopLevelTransactionRecoveryModule.java
labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/recovery/transactions/TransactionRecoveryModule.java
labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/resources/ExtendedResourceRecord.java
labs/jbosstm/trunk/ArjunaJTS/jts/tests/classes/com/hp/mwtests/ts/jts/local/heuristics/HeuristicTest.java
labs/jbosstm/trunk/ArjunaJTS/jts/tests/classes/com/hp/mwtests/ts/jts/local/transactions/TransactionTest1.java
labs/jbosstm/trunk/ArjunaJTS/jts/tests/classes/com/hp/mwtests/ts/jts/orbspecific/resources/DemoArjunaResource.java
Log:
https://jira.jboss.org/jira/browse/JBTM-715
Modified: labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/transaction/arjunacore/BaseTransaction.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/transaction/arjunacore/BaseTransaction.java 2010-03-12 21:54:48 UTC (rev 32067)
+++ labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/transaction/arjunacore/BaseTransaction.java 2010-03-13 21:06:07 UTC (rev 32068)
@@ -66,24 +66,26 @@
* programmer use them. Strict conformance will always say no.
*/
- if (!BaseTransaction._supportSubtransactions)
+ if (!jtaPropertyManager.getJTAEnvironmentBean().isSupportSubtransactions())
{
- try
- {
- checkTransactionState();
- }
- catch (IllegalStateException e1)
- {
- NotSupportedException notSupportedException = new NotSupportedException(e1.getMessage());
- notSupportedException.initCause(e1);
- throw notSupportedException;
- }
- catch (Exception e2)
- {
- javax.transaction.SystemException systemException = new javax.transaction.SystemException(e2.toString());
- systemException.initCause(e2);
- throw systemException;
- }
+ try
+ {
+ checkTransactionState();
+ }
+ catch (IllegalStateException e1)
+ {
+ NotSupportedException notSupportedException = new NotSupportedException(
+ e1.getMessage());
+ notSupportedException.initCause(e1);
+ throw notSupportedException;
+ }
+ catch (Exception e2)
+ {
+ javax.transaction.SystemException systemException = new javax.transaction.SystemException(
+ e2.toString());
+ systemException.initCause(e2);
+ throw systemException;
+ }
}
Integer value = _timeouts.get();
@@ -310,7 +312,7 @@
else
{
if ((theTransaction.getStatus() != javax.transaction.Status.STATUS_NO_TRANSACTION)
- && !_supportSubtransactions)
+ && !jtaPropertyManager.getJTAEnvironmentBean().isSupportSubtransactions())
{
throw new IllegalStateException(
"BaseTransaction.checkTransactionState - "
@@ -325,7 +327,7 @@
static
{
- _supportSubtransactions = jtaPropertyManager.getJTAEnvironmentBean().isSupportSubtransactions();
+ _supportSubtransactions = jtaPropertyManager.getJTAEnvironmentBean().isSupportSubtransactions();
}
}
Modified: labs/jbosstm/trunk/ArjunaJTA/jta/tests/classes/com/hp/mwtests/ts/jta/nested/SimpleNestedTest.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTA/jta/tests/classes/com/hp/mwtests/ts/jta/nested/SimpleNestedTest.java 2010-03-12 21:54:48 UTC (rev 32067)
+++ labs/jbosstm/trunk/ArjunaJTA/jta/tests/classes/com/hp/mwtests/ts/jta/nested/SimpleNestedTest.java 2010-03-13 21:06:07 UTC (rev 32068)
@@ -34,6 +34,7 @@
import com.hp.mwtests.ts.jta.common.TestResource;
import com.arjuna.ats.jta.common.jtaPropertyManager;
+import javax.transaction.NotSupportedException;
import javax.transaction.Transaction;
import javax.transaction.xa.XAResource;
@@ -43,7 +44,7 @@
public class SimpleNestedTest
{
@Test
- public void test() throws Exception
+ public void testEnabled () throws Exception
{
jtaPropertyManager.getJTAEnvironmentBean().setSupportSubtransactions(true);
@@ -64,7 +65,27 @@
transactionManager.commit();
transactionManager.commit();
+ }
+
+ @Test
+ public void testDisabled () throws Exception
+ {
+ jtaPropertyManager.getJTAEnvironmentBean().setSupportSubtransactions(false);
- System.err.println("Passed.");
+ javax.transaction.TransactionManager transactionManager = com.arjuna.ats.jta.TransactionManager.transactionManager();
+
+ transactionManager.begin();
+
+ try
+ {
+ transactionManager.begin();
+
+ fail();
+ }
+ catch (final NotSupportedException ex)
+ {
+ }
+
+ transactionManager.commit();
}
}
Modified: labs/jbosstm/trunk/ArjunaJTA/jta/tests/classes/com/hp/mwtests/ts/jta/recovery/CrashRecovery.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTA/jta/tests/classes/com/hp/mwtests/ts/jta/recovery/CrashRecovery.java 2010-03-12 21:54:48 UTC (rev 32067)
+++ labs/jbosstm/trunk/ArjunaJTA/jta/tests/classes/com/hp/mwtests/ts/jta/recovery/CrashRecovery.java 2010-03-13 21:06:07 UTC (rev 32068)
@@ -47,7 +47,7 @@
{
// this test is supposed to leave a record around in the log store during a commit long enough
// that the periodic recovery thread runs and detects it. rather than rely on delays to make
- // this happen (placing us at the mercy of the schduler) we use a byteman script to enforce
+ // this happen (placing us at the mercy of the scheduler) we use a byteman script to enforce
// the thread sequence we need
// set the smallest possible backoff period so we don't have to wait too long for the test to run
Modified: labs/jbosstm/trunk/ArjunaJTS/jtax/build.xml
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jtax/build.xml 2010-03-12 21:54:48 UTC (rev 32067)
+++ labs/jbosstm/trunk/ArjunaJTS/jtax/build.xml 2010-03-13 21:06:07 UTC (rev 32068)
@@ -70,10 +70,7 @@
<exclude name="**/JTSTestCase.java"/>
<exclude name="**/LastOnePhaseResource.java"/>
-
<exclude name="**/implicit/**"/>
- <exclude name="**/SimpleNestedTest.java"/>
-
</fileset>
</tests>
</run.tests.macro>
Modified: labs/jbosstm/trunk/ArjunaJTS/jtax/classes/com/arjuna/ats/internal/jta/transaction/jts/BaseTransaction.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jtax/classes/com/arjuna/ats/internal/jta/transaction/jts/BaseTransaction.java 2010-03-12 21:54:48 UTC (rev 32067)
+++ labs/jbosstm/trunk/ArjunaJTS/jtax/classes/com/arjuna/ats/internal/jta/transaction/jts/BaseTransaction.java 2010-03-13 21:06:07 UTC (rev 32068)
@@ -82,7 +82,7 @@
* programmer use them. Strict conformance will always say no.
*/
- if (!BaseTransaction._supportSubtransactions)
+ if (!jtaPropertyManager.getJTAEnvironmentBean().isSupportSubtransactions())
{
try
{
@@ -289,7 +289,7 @@
if (coord != null)
{
if ((coord.get_status() == org.omg.CosTransactions.Status.StatusActive)
- && (!_supportSubtransactions))
+ && (!jtaPropertyManager.getJTAEnvironmentBean().isSupportSubtransactions()))
{
throw new IllegalStateException(
"BaseTransaction.checkTransactionState - "
Modified: labs/jbosstm/trunk/ArjunaJTS/jtax/classes/com/arjuna/ats/internal/jta/transaction/jts/TransactionImple.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jtax/classes/com/arjuna/ats/internal/jta/transaction/jts/TransactionImple.java 2010-03-12 21:54:48 UTC (rev 32067)
+++ labs/jbosstm/trunk/ArjunaJTS/jtax/classes/com/arjuna/ats/internal/jta/transaction/jts/TransactionImple.java 2010-03-13 21:06:07 UTC (rev 32068)
@@ -45,7 +45,6 @@
import org.omg.CosTransactions.*;
-import com.arjuna.ats.arjuna.coordinator.ActionStatus;
import com.arjuna.ats.arjuna.coordinator.BasicAction;
import com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator;
import com.arjuna.ats.arjuna.coordinator.TransactionReaper;
@@ -1248,42 +1247,42 @@
if (otx != null)
{
- synchronized (TransactionImple._transactions)
- {
- try
- {
- tx = (TransactionImple) TransactionImple._transactions.get(otx.get_uid());
+ synchronized (TransactionImple._transactions)
+ {
+ try
+ {
+ tx = (TransactionImple) TransactionImple._transactions.get(otx.get_uid());
- if (tx == null)
- {
- /*
- * If it isn't active then don't add it to the
- * hashtable.
- */
+ if (tx == null)
+ {
+ /*
+ * If it isn't active then don't add it to the
+ * hashtable.
+ */
- tx = new TransactionImple(new AtomicTransaction(otx));
+ tx = new TransactionImple(new AtomicTransaction(otx));
- try
- {
- if (tx.getStatus() == javax.transaction.Status.STATUS_ACTIVE)
- {
- putTransaction(tx);
- }
- }
- catch (Exception ex)
- {
- // shouldn't happen!
- }
- }
- }
- catch (ClassCastException ex)
- {
- if (jtaxLogger.loggerI18N.isWarnEnabled())
- {
- jtaxLogger.loggerI18N.warn("com.arjuna.ats.internal.jta.transaction.jts.nottximple");
- }
- }
- }
+ try
+ {
+ if (tx.getStatus() == javax.transaction.Status.STATUS_ACTIVE)
+ {
+ putTransaction(tx);
+ }
+ }
+ catch (Exception ex)
+ {
+ // shouldn't happen!
+ }
+ }
+ }
+ catch (ClassCastException ex)
+ {
+ if (jtaxLogger.loggerI18N.isWarnEnabled())
+ {
+ jtaxLogger.loggerI18N.warn("com.arjuna.ats.internal.jta.transaction.jts.nottximple");
+ }
+ }
+ }
}
return tx;
@@ -1424,6 +1423,8 @@
}
catch (TRANSACTION_ROLLEDBACK e4)
{
+ e4.printStackTrace();
+
RollbackException rollbackException = new RollbackException(e4.toString());
if(_rollbackOnlyCallerStacktrace != null) {
// we rolled back beacuse the user explicitly told us not to commit. Attach the trace of who did that for debug:
@@ -1444,6 +1445,8 @@
//throw new IllegalStateException(
// jtaxLogger.loggerI18N.getString("com.arjuna.ats.internal.jta.transaction.jts.invalidtx2"));
+
+ throw new IllegalStateException();
}
catch (org.omg.CORBA.SystemException e7)
{
Modified: labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/basic/ThreadedCommit.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/basic/ThreadedCommit.java 2010-03-12 21:54:48 UTC (rev 32067)
+++ labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/basic/ThreadedCommit.java 2010-03-13 21:06:07 UTC (rev 32068)
@@ -71,8 +71,6 @@
{
}
}
-
- tm.commit();
}
catch (final Exception ex)
{
Modified: labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/nested/SimpleNestedTest.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/nested/SimpleNestedTest.java 2010-03-12 21:54:48 UTC (rev 32067)
+++ labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/nested/SimpleNestedTest.java 2010-03-13 21:06:07 UTC (rev 32068)
@@ -39,6 +39,7 @@
import com.arjuna.orbportability.*;
+import javax.transaction.NotSupportedException;
import javax.transaction.Transaction;
import javax.transaction.xa.XAResource;
@@ -48,7 +49,7 @@
public class SimpleNestedTest
{
@Test
- public void test() throws Exception
+ public void testEnabled () throws Exception
{
ORB myORB = null;
RootOA myOA = null;
@@ -71,17 +72,49 @@
transactionManager.begin();
transactionManager.begin();
+
+ transactionManager.commit();
- Transaction currentTrans = transactionManager.getTransaction();
- TestResource res1, res2;
- currentTrans.enlistResource( res1 = new TestResource() );
- currentTrans.enlistResource( res2 = new TestResource() );
+ transactionManager.commit();
- currentTrans.delistResource( res2, XAResource.TMSUCCESS );
- currentTrans.delistResource( res1, XAResource.TMSUCCESS );
+ myOA.destroy();
+ myORB.shutdown();
- transactionManager.commit();
+ }
+
+ @Test
+ public void testDisabled () throws Exception
+ {
+ ORB myORB = null;
+ RootOA myOA = null;
+ myORB = ORB.getInstance("test");
+ myOA = OA.getRootOA(myORB);
+
+ myORB.initORB(new String[] {}, null);
+ myOA.initOA();
+
+ ORBManager.setORB(myORB);
+ ORBManager.setPOA(myOA);
+
+ jtaPropertyManager.getJTAEnvironmentBean().setJtaTMImplementation(com.arjuna.ats.internal.jta.transaction.jts.TransactionManagerImple.class.getName());
+ jtaPropertyManager.getJTAEnvironmentBean().setJtaUTImplementation(com.arjuna.ats.internal.jta.transaction.jts.UserTransactionImple.class.getName());
+ jtaPropertyManager.getJTAEnvironmentBean().setSupportSubtransactions(false);
+
+ javax.transaction.TransactionManager transactionManager = com.arjuna.ats.jta.TransactionManager.transactionManager();
+
+ transactionManager.begin();
+
+ try
+ {
+ transactionManager.begin();
+
+ fail();
+ }
+ catch (final NotSupportedException ex)
+ {
+ }
+
transactionManager.commit();
myOA.destroy();
Modified: labs/jbosstm/trunk/ArjunaJTS/jts/build.xml
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jts/build.xml 2010-03-12 21:54:48 UTC (rev 32067)
+++ labs/jbosstm/trunk/ArjunaJTS/jts/build.xml 2010-03-13 21:06:07 UTC (rev 32068)
@@ -103,11 +103,8 @@
<exclude name="**/utils/ResourceTrace.java"/>
<exclude name="**/utils/Util.java"/>
-
- <exclude name="**/HeuristicTest.java"/>
- <exclude name="**/TransactionTest1.java"/>
<exclude name="**/TransactionTest2.java"/>
- <exclude name="**/CheckedTransactions.java"/>
+ <exclude name="**/CheckedTransactions.java"/>
<exclude name="**/GridTest.java"/>
<exclude name="**/remote/**"/>
Modified: labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/ControlWrapper.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/ControlWrapper.java 2010-03-12 21:54:48 UTC (rev 32067)
+++ labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/ControlWrapper.java 2010-03-13 21:06:07 UTC (rev 32068)
@@ -36,7 +36,6 @@
import com.arjuna.ats.arjuna.coordinator.ActionStatus;
import com.arjuna.ats.jts.exceptions.ExceptionCodes;
-import com.arjuna.ats.jts.utils.*;
import com.arjuna.ats.jts.logging.*;
import com.arjuna.ats.internal.jts.utils.*;
@@ -60,7 +59,6 @@
import org.omg.CORBA.OBJECT_NOT_EXIST;
import org.omg.CORBA.SystemException;
import org.omg.CORBA.UNKNOWN;
-import org.omg.CORBA.BAD_OPERATION;
import org.omg.CORBA.INVALID_TRANSACTION;
import org.omg.CORBA.TRANSACTION_ROLLEDBACK;
Modified: labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/coordinator/CheckedActions.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/coordinator/CheckedActions.java 2010-03-12 21:54:48 UTC (rev 32067)
+++ labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/coordinator/CheckedActions.java 2010-03-13 21:06:07 UTC (rev 32068)
@@ -59,11 +59,11 @@
public static final synchronized void set (CheckedAction ca) throws SystemException
{
if (otsCheckedAction == null)
- otsCheckedAction = new Hashtable();
+ otsCheckedAction = new Hashtable<String, CheckedAction>();
otsCheckedAction.put(ThreadUtil.getThreadId(), ca);
}
- private static Hashtable otsCheckedAction = null;
+ private static Hashtable<String, CheckedAction> otsCheckedAction = null;
}
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 2010-03-12 21:54:48 UTC (rev 32067)
+++ labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/orbspecific/CurrentImple.java 2010-03-13 21:06:07 UTC (rev 32068)
@@ -31,8 +31,6 @@
package com.arjuna.ats.internal.jts.orbspecific;
-import com.arjuna.orbportability.*;
-
import org.omg.CosTransactions.*;
import com.arjuna.ArjunaOTS.*;
@@ -49,18 +47,11 @@
import com.arjuna.ats.internal.jts.orbspecific.TransactionFactoryImple;
import com.arjuna.ats.internal.jts.orbspecific.coordinator.ArjunaTransactionImple;
-import com.arjuna.ats.internal.arjuna.thread.ThreadActionData;
-
-import com.arjuna.ats.arjuna.common.*;
-import com.arjuna.ats.arjuna.coordinator.BasicAction;
import com.arjuna.ats.arjuna.coordinator.CheckedAction;
import com.arjuna.ats.arjuna.coordinator.TxControl;
import com.arjuna.common.util.logging.*;
-import java.io.PrintStream;
-import java.util.*;
-import java.lang.Object;
import org.omg.CORBA.*;
import org.omg.CosTransactions.SubtransactionsUnavailable;
@@ -77,7 +68,6 @@
import org.omg.CORBA.INVALID_TRANSACTION;
import org.omg.CORBA.TRANSACTION_ROLLEDBACK;
import java.lang.OutOfMemoryError;
-import java.util.EmptyStackException;
/**
* The implementation of CosTransactions::Current.
Modified: labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/orbspecific/jacorb/recoverycoordinators/JacOrbRCManager.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/orbspecific/jacorb/recoverycoordinators/JacOrbRCManager.java 2010-03-12 21:54:48 UTC (rev 32067)
+++ labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/orbspecific/jacorb/recoverycoordinators/JacOrbRCManager.java 2010-03-13 21:06:07 UTC (rev 32068)
@@ -43,7 +43,6 @@
import com.arjuna.ats.jts.logging.jtsLogger;
import com.arjuna.ats.arjuna.logging.FacilityCode;
import com.arjuna.common.util.logging.*;
-import com.arjuna.ats.jts.common.jtsPropertyManager;
import com.arjuna.ats.internal.jts.recovery.recoverycoordinators.*;
import com.arjuna.ats.internal.jts.ORBManager;
@@ -79,9 +78,9 @@
* Unlike some other RcvCoManager's, this does not create any real
* RecoveryCoordinator objects.
*/
-public JacOrbRCManager ()
+ public JacOrbRCManager()
{
- // _ourPOA = JacOrbRCServiceInit.getRCPOA("transaction");
+ // _ourPOA = JacOrbRCServiceInit.getRCPOA("transaction");
}
/**
@@ -144,14 +143,14 @@
return rc;
}
-public void destroy (RecoveryCoordinator rc) throws SystemException
+ public void destroy (RecoveryCoordinator rc) throws SystemException
{
- // does nothing for JacORB
+ // does nothing for JacORB
}
-public void destroyAll (java.lang.Object[] params) throws SystemException
+ public void destroyAll (java.lang.Object[] params) throws SystemException
{
- // does nothing for JacORB
+ // does nothing for JacORB
}
private final synchronized void initialise ()
Modified: labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/orbspecific/jacorb/recoverycoordinators/JacOrbRCServiceInit.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/orbspecific/jacorb/recoverycoordinators/JacOrbRCServiceInit.java 2010-03-12 21:54:48 UTC (rev 32067)
+++ labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/orbspecific/jacorb/recoverycoordinators/JacOrbRCServiceInit.java 2010-03-13 21:06:07 UTC (rev 32068)
@@ -247,6 +247,9 @@
{
POA ourPOA = getRCPOA("recovery_coordinator");
+ if (ourPOA == null) // shortcut
+ return false;
+
Implementations.initialise();
try
Modified: labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/orbspecific/jacorb/recoverycoordinators/JacOrbRCShutdown.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/orbspecific/jacorb/recoverycoordinators/JacOrbRCShutdown.java 2010-03-12 21:54:48 UTC (rev 32067)
+++ labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/orbspecific/jacorb/recoverycoordinators/JacOrbRCShutdown.java 2010-03-13 21:06:07 UTC (rev 32068)
@@ -33,17 +33,17 @@
import com.arjuna.orbportability.oa.PreShutdown;
-class JacOrbRCShutdown extends PreShutdown
+public class JacOrbRCShutdown extends PreShutdown
{
-public JacOrbRCShutdown ()
+ public JacOrbRCShutdown()
{
super("JacOrbRCShutdown");
}
-public void work ()
+ public void work ()
{
JacOrbRCServiceInit.shutdownRCService();
}
-
+
}
Modified: labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/orbspecific/jacorb/recoverycoordinators/JacOrbRecoveryInit.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/orbspecific/jacorb/recoverycoordinators/JacOrbRecoveryInit.java 2010-03-12 21:54:48 UTC (rev 32067)
+++ labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/orbspecific/jacorb/recoverycoordinators/JacOrbRecoveryInit.java 2010-03-13 21:06:07 UTC (rev 32068)
@@ -31,24 +31,12 @@
package com.arjuna.ats.internal.jts.orbspecific.jacorb.recoverycoordinators;
-import com.arjuna.ats.arjuna.common.*;
-
-import com.arjuna.orbportability.orb.Attribute;
-import com.arjuna.ats.internal.jts.recovery.RecoveryCreator;
import com.arjuna.ats.internal.jts.recovery.recoverycoordinators.*;
-import org.omg.CORBA.*;
-import org.omg.PortableServer.*;
-import org.omg.CosTransactions.*;
-
import com.arjuna.ats.jts.logging.*;
import com.arjuna.common.util.logging.*;
import com.arjuna.ats.arjuna.logging.FacilityCode;
-import org.omg.PortableInterceptor.*;
-import org.omg.CosNaming.*;
-import org.omg.CORBA.Any;
-
/**
* Initialises JacORB RecoveryCoordinator IOR creation mechanism
*
Modified: labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/recovery/transactions/TopLevelTransactionRecoveryModule.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/recovery/transactions/TopLevelTransactionRecoveryModule.java 2010-03-12 21:54:48 UTC (rev 32067)
+++ labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/recovery/transactions/TopLevelTransactionRecoveryModule.java 2010-03-13 21:06:07 UTC (rev 32068)
@@ -31,29 +31,15 @@
package com.arjuna.ats.internal.jts.recovery.transactions;
-import org.omg.CosTransactions.*;
-
-import java.util.*;
-
import com.arjuna.ats.internal.jts.orbspecific.coordinator.ArjunaTransactionImple;
-import com.arjuna.ats.internal.jts.orbspecific.interposition.*;
-import com.arjuna.ats.arjuna.common.*;
-import com.arjuna.ats.arjuna.coordinator.*;
-import com.arjuna.ats.arjuna.objectstore.*;
-import com.arjuna.ats.arjuna.*;
-import com.arjuna.ats.arjuna.state.*;
-import com.arjuna.ats.arjuna.utils.*;
-import com.arjuna.ats.arjuna.exceptions.*;
import com.arjuna.ats.arjuna.recovery.RecoveryModule;
import com.arjuna.ats.jts.logging.jtsLogger;
import com.arjuna.ats.arjuna.logging.FacilityCode;
import com.arjuna.common.util.logging.*;
-import java.io.IOException;
-
// todo - make add a protected getTransactionType() method
/**
Modified: labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/recovery/transactions/TransactionRecoveryModule.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/recovery/transactions/TransactionRecoveryModule.java 2010-03-12 21:54:48 UTC (rev 32067)
+++ labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/recovery/transactions/TransactionRecoveryModule.java 2010-03-13 21:06:07 UTC (rev 32068)
@@ -38,7 +38,6 @@
import com.arjuna.ats.arjuna.common.*;
import com.arjuna.ats.arjuna.coordinator.*;
import com.arjuna.ats.arjuna.objectstore.*;
-import com.arjuna.ats.arjuna.*;
import com.arjuna.ats.arjuna.state.*;
import com.arjuna.ats.internal.arjuna.common.UidHelper;
import com.arjuna.ats.jts.utils.*;
@@ -48,8 +47,6 @@
import com.arjuna.ats.arjuna.logging.FacilityCode;
import com.arjuna.common.util.logging.*;
-import java.io.IOException;
-
/**
* This class is a plug-in module for the recovery manager. This is a
* generic class from which TopLevel and Server transaction recovery
Modified: labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/resources/ExtendedResourceRecord.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/resources/ExtendedResourceRecord.java 2010-03-12 21:54:48 UTC (rev 32067)
+++ labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/resources/ExtendedResourceRecord.java 2010-03-13 21:06:07 UTC (rev 32068)
@@ -86,8 +86,8 @@
* @version $Id: ExtendedResourceRecord.java 2342 2006-03-30 13:06:17Z $
* @since JTS 1.0.
*
- * @message com.arjuna.ats.internal.jts.resources.errgenerr {0} caught
- * exception: {1}
+ * @message com.arjuna.ats.internal.jts.resources.errgenerr {0} caught exception: {1}
+ * @message com.arjuna.ats.internal.jts.resources.noparent {0} has no parent transaction!
*/
public class ExtendedResourceRecord extends
@@ -349,6 +349,12 @@
}
catch (SystemException ex)
{
+ if (jtsLogger.loggerI18N.isWarnEnabled())
+ {
+ jtsLogger.loggerI18N.warn("com.arjuna.ats.internal.jts.resources.errgenerr", new Object[]
+ { "ExtendedResourceRecord.nestedAbort", ex });
+ }
+
return TwoPhaseOutcome.FINISH_ERROR;
}
@@ -391,7 +397,7 @@
_currentTransaction = (ArjunaTransactionImple) _currentTransaction.parent();
- ControlImple control = _currentTransaction.getControlHandle();
+ ControlImple control = ((_currentTransaction == null) ? null : _currentTransaction.getControlHandle());
if (control != null)
{
@@ -413,10 +419,26 @@
}
}
else
+ {
+ if (jtsLogger.loggerI18N.isWarnEnabled())
+ {
+ jtsLogger.loggerI18N.warn("com.arjuna.ats.internal.jts.resources.noparent", new Object[]
+ { get_uid() });
+ }
+
o = TwoPhaseOutcome.FINISH_ERROR;
+ }
}
catch (Exception e)
{
+ e.printStackTrace();
+
+ if (jtsLogger.loggerI18N.isWarnEnabled())
+ {
+ jtsLogger.loggerI18N.warn("com.arjuna.ats.internal.jts.resources.errgenerr", new Object[]
+ { "ExtendedResourceRecord.nestedCommit", e });
+ }
+
o = TwoPhaseOutcome.FINISH_ERROR;
}
@@ -456,6 +478,12 @@
}
catch (Exception e)
{
+ if (jtsLogger.loggerI18N.isWarnEnabled())
+ {
+ jtsLogger.loggerI18N.warn("com.arjuna.ats.internal.jts.resources.errgenerr", new Object[]
+ { "ExtendedResourceRecord.nestedPrepare", e });
+ }
+
o = TwoPhaseOutcome.PREPARE_NOTOK;
}
@@ -558,6 +586,12 @@
}
catch (SystemException e5)
{
+ if (jtsLogger.loggerI18N.isWarnEnabled())
+ {
+ jtsLogger.loggerI18N.warn("com.arjuna.ats.internal.jts.resources.errgenerr", new Object[]
+ { "ExtendedResourceRecord.topLevelCommit", e5 });
+ }
+
return TwoPhaseOutcome.FINISH_ERROR;
}
@@ -601,6 +635,12 @@
}
catch (Exception e)
{
+ if (jtsLogger.loggerI18N.isWarnEnabled())
+ {
+ jtsLogger.loggerI18N.warn("com.arjuna.ats.internal.jts.resources.errgenerr", new Object[]
+ { "ExtendedResourceRecord.topLevelPrepare", e });
+ }
+
return TwoPhaseOutcome.PREPARE_NOTOK;
}
@@ -654,6 +694,12 @@
}
catch (Exception e5)
{
+ if (jtsLogger.loggerI18N.isWarnEnabled())
+ {
+ jtsLogger.loggerI18N.warn("com.arjuna.ats.internal.jts.resources.errgenerr", new Object[]
+ { "ExtendedResourceRecord.topLevelOnePhaseCommit", e5 });
+ }
+
e5.printStackTrace();
/*
@@ -700,7 +746,7 @@
return false;
}
-
+/*
public static AbstractRecord create ()
{
return new ExtendedResourceRecord();
@@ -710,7 +756,7 @@
{
toDelete = null;
}
-
+*/
public void print (PrintWriter strm)
{
super.print(strm);
@@ -1259,12 +1305,13 @@
{
try
{
- OTSAbstractRecord otsARHandle = com.arjuna.ArjunaOTS.OTSAbstractRecordHelper.narrow(_resourceHandle);
+ if (_otsARHandle == null)
+ _otsARHandle = com.arjuna.ArjunaOTS.OTSAbstractRecordHelper.narrow(_resourceHandle);
- if (otsARHandle == null)
- throw new BAD_PARAM();
- else
- return otsARHandle;
+ if (_otsARHandle == null)
+ throw new BAD_PARAM();
+ else
+ return _otsARHandle;
}
catch (Exception e)
{
@@ -1280,6 +1327,7 @@
private Uid _recCoordUid;
private ArjunaTransactionImple _currentTransaction;
private boolean _propagateRecord;
+ private OTSAbstractRecord _otsARHandle;
// cached variables
Modified: labs/jbosstm/trunk/ArjunaJTS/jts/tests/classes/com/hp/mwtests/ts/jts/local/heuristics/HeuristicTest.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jts/tests/classes/com/hp/mwtests/ts/jts/local/heuristics/HeuristicTest.java 2010-03-12 21:54:48 UTC (rev 32067)
+++ labs/jbosstm/trunk/ArjunaJTS/jts/tests/classes/com/hp/mwtests/ts/jts/local/heuristics/HeuristicTest.java 2010-03-13 21:06:07 UTC (rev 32068)
@@ -132,10 +132,8 @@
System.out.println("Trying to determing final transaction outcome.");
-
org.omg.CosTransactions.Status status = Status.StatusUnknown;
-
try
{
if (coord != null)
Added: labs/jbosstm/trunk/ArjunaJTS/jts/tests/classes/com/hp/mwtests/ts/jts/local/transactions/CheckedActionsUnitTest.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jts/tests/classes/com/hp/mwtests/ts/jts/local/transactions/CheckedActionsUnitTest.java (rev 0)
+++ labs/jbosstm/trunk/ArjunaJTS/jts/tests/classes/com/hp/mwtests/ts/jts/local/transactions/CheckedActionsUnitTest.java 2010-03-13 21:06:07 UTC (rev 32068)
@@ -0,0 +1,58 @@
+/*
+ * 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) 2004,
+ *
+ * Arjuna Technologies Ltd,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: xidcheck.java 2342 2006-03-30 13:06:17Z $
+ */
+
+package com.hp.mwtests.ts.jts.local.transactions;
+
+import org.junit.Test;
+
+import com.arjuna.ats.arjuna.coordinator.CheckedAction;
+import com.arjuna.ats.internal.jts.coordinator.CheckedActions;
+import com.hp.mwtests.ts.jts.resources.TestBase;
+
+import static org.junit.Assert.*;
+
+
+public class CheckedActionsUnitTest extends TestBase
+{
+ @Test
+ public void test () throws Exception
+ {
+ CheckedAction ca = new CheckedAction();
+
+ CheckedActions.set(ca);
+
+ assertEquals(CheckedActions.get(), ca);
+
+ CheckedActions.remove();
+
+ assertEquals(CheckedActions.get(), null);
+ }
+}
Modified: labs/jbosstm/trunk/ArjunaJTS/jts/tests/classes/com/hp/mwtests/ts/jts/local/transactions/TransactionTest1.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jts/tests/classes/com/hp/mwtests/ts/jts/local/transactions/TransactionTest1.java 2010-03-12 21:54:48 UTC (rev 32067)
+++ labs/jbosstm/trunk/ArjunaJTS/jts/tests/classes/com/hp/mwtests/ts/jts/local/transactions/TransactionTest1.java 2010-03-13 21:06:07 UTC (rev 32068)
@@ -96,6 +96,8 @@
try
{
terminator.commit(true);
+
+ fail();
}
catch (TRANSACTION_ROLLEDBACK e)
{
@@ -112,6 +114,8 @@
try
{
current.commit(true);
+
+ fail();
}
catch (INVALID_TRANSACTION e1)
{
@@ -125,6 +129,8 @@
try
{
current.commit(true);
+
+ fail();
}
catch (TRANSACTION_ROLLEDBACK e1)
{
@@ -155,6 +161,8 @@
try
{
terminator.commit(true);
+
+ fail();
}
catch (TRANSACTION_ROLLEDBACK e1)
{
@@ -172,6 +180,8 @@
try
{
terminator.commit(true);
+
+ fail();
}
catch (TRANSACTION_ROLLEDBACK e1)
{
Added: labs/jbosstm/trunk/ArjunaJTS/jts/tests/classes/com/hp/mwtests/ts/jts/orbspecific/recovery/JacORBRecoveryUnitTest.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jts/tests/classes/com/hp/mwtests/ts/jts/orbspecific/recovery/JacORBRecoveryUnitTest.java (rev 0)
+++ labs/jbosstm/trunk/ArjunaJTS/jts/tests/classes/com/hp/mwtests/ts/jts/orbspecific/recovery/JacORBRecoveryUnitTest.java 2010-03-13 21:06:07 UTC (rev 32068)
@@ -0,0 +1,110 @@
+/*
+ * 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) 2004,
+ *
+ * Arjuna Technologies Ltd,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: xidcheck.java 2342 2006-03-30 13:06:17Z $
+ */
+
+package com.hp.mwtests.ts.jts.orbspecific.recovery;
+
+import org.junit.Test;
+import org.omg.CosTransactions.RecoveryCoordinator;
+
+import com.arjuna.ats.arjuna.common.Uid;
+import com.arjuna.ats.internal.jts.orbspecific.jacorb.recoverycoordinators.JacOrbRCManager;
+import com.arjuna.ats.internal.jts.orbspecific.jacorb.recoverycoordinators.JacOrbRCServiceInit;
+import com.arjuna.ats.internal.jts.orbspecific.jacorb.recoverycoordinators.JacOrbRCShutdown;
+import com.arjuna.ats.internal.jts.orbspecific.jacorb.recoverycoordinators.JacOrbRecoveryInit;
+import com.arjuna.ats.internal.jts.orbspecific.jacorb.recoverycoordinators.RecoverIOR;
+import com.hp.mwtests.ts.jts.resources.TestBase;
+
+import static org.junit.Assert.*;
+
+public class JacORBRecoveryUnitTest extends TestBase
+{
+ @Test
+ public void testORBRCManager () throws Exception
+ {
+ JacOrbRCManager manager = new JacOrbRCManager();
+ RecoveryCoordinator rc = manager.makeRC(new Uid(), new Uid(), new Uid(), false);
+
+ assertTrue(rc == null);
+
+ manager.destroy(rc);
+ manager.destroyAll(null);
+ }
+
+ @Test
+ public void testORBRCShutdown () throws Exception
+ {
+ JacOrbRCShutdown shutdown = new JacOrbRCShutdown();
+
+ shutdown.work();
+ }
+
+ @Test
+ public void testInit () throws Exception
+ {
+ JacOrbRCServiceInit init = new JacOrbRCServiceInit();
+
+ assertFalse(init.startRCservice());
+
+ JacOrbRCServiceInit.shutdownRCService();
+
+ assertTrue(JacOrbRCServiceInit.type() != null);
+ }
+
+ @Test
+ public void testRecoveryInit () throws Exception
+ {
+ JacOrbRCServiceInit init = new JacOrbRCServiceInit();
+
+ assertFalse(init.startRCservice());
+
+ JacOrbRecoveryInit rinit = new JacOrbRecoveryInit();
+
+ JacOrbRCServiceInit.shutdownRCService();
+ }
+
+ @Test
+ public void testRecoverIOR () throws Exception
+ {
+ RecoverIOR ior = new RecoverIOR();
+
+ try
+ {
+ String iorString = RecoverIOR.newObjectKey("foo", "bar");
+
+ assertTrue(iorString != null);
+
+ RecoverIOR.printIORinfo(iorString);
+ }
+ catch (final Exception ex)
+ {
+ }
+ }
+}
Modified: labs/jbosstm/trunk/ArjunaJTS/jts/tests/classes/com/hp/mwtests/ts/jts/orbspecific/resources/DemoArjunaResource.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jts/tests/classes/com/hp/mwtests/ts/jts/orbspecific/resources/DemoArjunaResource.java 2010-03-12 21:54:48 UTC (rev 32067)
+++ labs/jbosstm/trunk/ArjunaJTS/jts/tests/classes/com/hp/mwtests/ts/jts/orbspecific/resources/DemoArjunaResource.java 2010-03-13 21:06:07 UTC (rev 32068)
@@ -31,6 +31,7 @@
package com.hp.mwtests.ts.jts.orbspecific.resources;
+import com.arjuna.ats.arjuna.common.Uid;
import com.arjuna.ats.internal.jts.OTSImpleManager;
import com.arjuna.ats.internal.jts.ORBManager;
import com.arjuna.ats.internal.jts.orbspecific.CurrentImple;
@@ -42,7 +43,7 @@
import org.omg.CosTransactions.Unavailable;
import org.omg.CORBA.SystemException;
-public class DemoArjunaResource extends com.arjuna.ArjunaOTS.ArjunaSubtranAwareResourcePOA
+public class DemoArjunaResource extends com.arjuna.ArjunaOTS.OTSAbstractRecordPOA
{
public DemoArjunaResource ()
@@ -115,7 +116,61 @@
System.out.println("DEMOARJUNARESOURCE : COMMIT_ONE_PHASE");
}
+ public void alter (OTSAbstractRecord arg0)
+ {
+ }
+
+ public void merge (OTSAbstractRecord arg0)
+ {
+ }
+
+ public boolean propagateOnAbort ()
+ {
+ return false;
+ }
+
+ public boolean propagateOnCommit ()
+ {
+ return false;
+ }
+
+ public boolean saveRecord ()
+ {
+ return false;
+ }
+
+ public boolean shouldAdd (OTSAbstractRecord arg0)
+ {
+ return false;
+ }
+
+ public boolean shouldAlter (OTSAbstractRecord arg0)
+ {
+ return false;
+ }
+
+ public boolean shouldMerge (OTSAbstractRecord arg0)
+ {
+ return false;
+ }
+
+ public boolean shouldReplace (OTSAbstractRecord arg0)
+ {
+ return false;
+ }
+
+ public int type_id ()
+ {
+ return 101;
+ }
+
+ public String uid ()
+ {
+ return uid.stringForm();
+ }
+
+
private ArjunaSubtranAwareResource ref;
-
+ private Uid uid = new Uid();
}
Added: labs/jbosstm/trunk/ArjunaJTS/jts/tests/classes/com/hp/mwtests/ts/jts/participants/ExtendedResourceUnitTest.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jts/tests/classes/com/hp/mwtests/ts/jts/participants/ExtendedResourceUnitTest.java (rev 0)
+++ labs/jbosstm/trunk/ArjunaJTS/jts/tests/classes/com/hp/mwtests/ts/jts/participants/ExtendedResourceUnitTest.java 2010-03-13 21:06:07 UTC (rev 32068)
@@ -0,0 +1,128 @@
+/*
+ * 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) 2004,
+ *
+ * Arjuna Technologies Ltd,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: xidcheck.java 2342 2006-03-30 13:06:17Z $
+ */
+
+package com.hp.mwtests.ts.jts.participants;
+
+import java.io.ByteArrayOutputStream;
+import java.io.PrintWriter;
+
+import org.junit.Test;
+
+import com.arjuna.ats.arjuna.common.Uid;
+import com.arjuna.ats.arjuna.coordinator.TwoPhaseOutcome;
+import com.arjuna.ats.internal.jts.OTSImpleManager;
+import com.arjuna.ats.internal.jts.orbspecific.coordinator.ArjunaTransactionImple;
+import com.arjuna.ats.internal.jts.resources.ExtendedResourceRecord;
+import com.hp.mwtests.ts.jts.orbspecific.resources.DemoArjunaResource;
+import com.hp.mwtests.ts.jts.resources.TestBase;
+
+import static org.junit.Assert.*;
+
+public class ExtendedResourceUnitTest extends TestBase
+{
+ @Test
+ public void test () throws Exception
+ {
+ DemoArjunaResource ares = new DemoArjunaResource();
+ ArjunaTransactionImple tx = new ArjunaTransactionImple(null);
+ ExtendedResourceRecord res1 = new ExtendedResourceRecord(false, new Uid(), ares.getReference(), null, new Uid(), tx);
+ ExtendedResourceRecord res2 = new ExtendedResourceRecord(false, new Uid(), ares.getReference(), null, new Uid(), tx);
+
+ assertTrue(res1.resourceHandle() != null);
+ assertFalse(res1.propagateOnAbort());
+ assertFalse(res1.propagateOnCommit());
+ assertTrue(res1.order().notEquals(Uid.nullUid()));
+ assertEquals(res1.typeIs(), 101);
+ assertTrue(res1.order() != null);
+
+ res1.setValue(null);
+ res1.print(new PrintWriter(new ByteArrayOutputStream()));
+ }
+
+ @Test
+ public void testNestedCommit () throws Exception
+ {
+ DemoArjunaResource ares = new DemoArjunaResource();
+
+ OTSImpleManager.current().begin();
+
+ ArjunaTransactionImple tx = OTSImpleManager.current().getControlWrapper().getImple().getImplHandle();
+
+ OTSImpleManager.current().begin();
+
+ ExtendedResourceRecord res = new ExtendedResourceRecord(false, new Uid(), ares.getReference(), tx.getControlHandle().get_coordinator(), new Uid(), OTSImpleManager.current().getControlWrapper().getImple().getImplHandle());
+
+ assertEquals(res.nestedPrepare(), TwoPhaseOutcome.PREPARE_OK);
+ assertEquals(res.nestedCommit(), TwoPhaseOutcome.FINISH_OK);
+
+ OTSImpleManager.current().rollback();
+ OTSImpleManager.current().rollback();
+ }
+
+ @Test
+ public void testNestedAbort () throws Exception
+ {
+ DemoArjunaResource ares = new DemoArjunaResource();
+
+ OTSImpleManager.current().begin();
+
+ ArjunaTransactionImple tx = OTSImpleManager.current().getControlWrapper().getImple().getImplHandle();
+
+ OTSImpleManager.current().begin();
+
+ ExtendedResourceRecord res = new ExtendedResourceRecord(false, new Uid(), ares.getReference(), tx.getControlHandle().get_coordinator(), new Uid(), OTSImpleManager.current().getControlWrapper().getImple().getImplHandle());
+
+ assertEquals(res.nestedPrepare(), TwoPhaseOutcome.PREPARE_OK);
+ assertEquals(res.nestedAbort(), TwoPhaseOutcome.FINISH_OK);
+
+ OTSImpleManager.current().rollback();
+ OTSImpleManager.current().rollback();
+ }
+
+ @Test
+ public void testNestedOnePhase () throws Exception
+ {
+ DemoArjunaResource ares = new DemoArjunaResource();
+
+ OTSImpleManager.current().begin();
+
+ ArjunaTransactionImple tx = OTSImpleManager.current().getControlWrapper().getImple().getImplHandle();
+
+ OTSImpleManager.current().begin();
+
+ ExtendedResourceRecord res = new ExtendedResourceRecord(false, new Uid(), ares.getReference(), tx.getControlHandle().get_coordinator(), new Uid(), OTSImpleManager.current().getControlWrapper().getImple().getImplHandle());
+
+ assertEquals(res.nestedOnePhaseCommit(), TwoPhaseOutcome.FINISH_OK);
+
+ OTSImpleManager.current().rollback();
+ OTSImpleManager.current().rollback();
+ }
+}
Added: labs/jbosstm/trunk/ArjunaJTS/jts/tests/classes/com/hp/mwtests/ts/jts/recovery/TopLevelTransactionUnitTest.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jts/tests/classes/com/hp/mwtests/ts/jts/recovery/TopLevelTransactionUnitTest.java (rev 0)
+++ labs/jbosstm/trunk/ArjunaJTS/jts/tests/classes/com/hp/mwtests/ts/jts/recovery/TopLevelTransactionUnitTest.java 2010-03-13 21:06:07 UTC (rev 32068)
@@ -0,0 +1,51 @@
+/*
+ * 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) 2004,
+ *
+ * Arjuna Technologies Ltd,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: xidcheck.java 2342 2006-03-30 13:06:17Z $
+ */
+
+package com.hp.mwtests.ts.jts.recovery;
+
+import org.junit.Test;
+
+import com.arjuna.ats.internal.jts.recovery.transactions.TopLevelTransactionRecoveryModule;
+import com.hp.mwtests.ts.jts.resources.TestBase;
+
+import static org.junit.Assert.*;
+
+public class TopLevelTransactionUnitTest extends TestBase
+{
+ @Test
+ public void test () throws Exception
+ {
+ TopLevelTransactionRecoveryModule module = new TopLevelTransactionRecoveryModule();
+
+ module.periodicWorkFirstPass();
+ module.periodicWorkSecondPass();
+ }
+}
More information about the jboss-svn-commits
mailing list