Search in sources :

Example 1 with FailureParticipant

use of com.arjuna.wstx.tests.common.FailureParticipant in project narayana by jbosstm.

the class CommitExceptionInPrepareTest method testCommitExceptionInPrepare.

@Test
public void testCommitExceptionInPrepare() throws Exception {
    UserTransaction ut = UserTransaction.getUserTransaction();
    try {
        TransactionManager tm = TransactionManager.getTransactionManager();
        FailureParticipant p1 = new FailureParticipant(FailureParticipant.FAIL_IN_PREPARE, FailureParticipant.WRONG_STATE);
        DemoDurableParticipant p2 = new DemoDurableParticipant();
        ut.begin();
        tm.enlistForDurableTwoPhase(p1, "failure");
        tm.enlistForDurableTwoPhase(p2, p2.identifier());
    } catch (Exception eouter) {
        try {
            ut.rollback();
        } catch (Exception einner) {
        }
        throw eouter;
    }
    try {
        ut.commit();
        fail("expected SystemException");
    } catch (com.arjuna.wst.SystemException ex) {
    // we should arrive here
    } catch (com.arjuna.wst.TransactionRolledBackException ex) {
    // or if not we should arrive here
    }
}
Also used : UserTransaction(com.arjuna.mw.wst11.UserTransaction) FailureParticipant(com.arjuna.wstx.tests.common.FailureParticipant) TransactionManager(com.arjuna.mw.wst11.TransactionManager) DemoDurableParticipant(com.arjuna.wstx.tests.common.DemoDurableParticipant) Test(org.junit.Test)

Example 2 with FailureParticipant

use of com.arjuna.wstx.tests.common.FailureParticipant in project narayana by jbosstm.

the class SubtransactionCommitRollbackInPrepareTest method testSubTransactionCommitRollbackInPrepare.

@Test
public void testSubTransactionCommitRollbackInPrepare() throws Exception {
    final UserTransaction ut = UserTransactionFactory.userTransaction();
    final UserTransaction ust = UserTransactionFactory.userSubordinateTransaction();
    final TransactionManager tm = TransactionManager.getTransactionManager();
    final DemoDurableParticipant p1 = new DemoDurableParticipant();
    final DemoVolatileParticipant p2 = new DemoVolatileParticipant();
    final FailureParticipant p3 = new FailureParticipant(FailureParticipant.FAIL_IN_PREPARE, FailureParticipant.NONE);
    final DemoVolatileParticipant p4 = new DemoVolatileParticipant();
    ut.begin();
    final TxContext tx = tm.suspend();
    tm.resume(tx);
    tm.enlistForDurableTwoPhase(p1, p1.identifier());
    tm.enlistForVolatileTwoPhase(p2, p2.identifier());
    ust.begin();
    final TxContext stx = tm.suspend();
    tm.resume(stx);
    tm.enlistForDurableTwoPhase(p3, "failure in prepare");
    tm.enlistForVolatileTwoPhase(p4, p4.identifier());
    tm.resume(tx);
    try {
        ut.commit();
        fail("expecting TransactionRolledBackException");
    } catch (TransactionRolledBackException trbe) {
    // expect this
    }
    assertTrue(p1.prepared() && p1.resolved() && !p1.passed());
    assertTrue(p2.prepared() && p2.resolved() && !p2.passed());
    assertTrue(!p3.passed());
    assertTrue(p4.prepared() && p4.resolved() && !p4.passed());
}
Also used : UserTransaction(com.arjuna.mw.wst11.UserTransaction) FailureParticipant(com.arjuna.wstx.tests.common.FailureParticipant) DemoVolatileParticipant(com.arjuna.wstx.tests.common.DemoVolatileParticipant) TransactionManager(com.arjuna.mw.wst11.TransactionManager) DemoDurableParticipant(com.arjuna.wstx.tests.common.DemoDurableParticipant) TxContext(com.arjuna.mw.wst.TxContext) TransactionRolledBackException(com.arjuna.wst.TransactionRolledBackException) Test(org.junit.Test)

Example 3 with FailureParticipant

use of com.arjuna.wstx.tests.common.FailureParticipant in project narayana by jbosstm.

the class SubtransactionCommitFailInPrepareTest method testSubTransactionCommitFailInPrepare.

@Test
public void testSubTransactionCommitFailInPrepare() throws Exception {
    final UserTransaction ut = UserTransactionFactory.userTransaction();
    final UserTransaction ust = UserTransactionFactory.userSubordinateTransaction();
    final TransactionManager tm = TransactionManager.getTransactionManager();
    final DemoDurableParticipant p1 = new DemoDurableParticipant();
    final DemoVolatileParticipant p2 = new DemoVolatileParticipant();
    final FailureParticipant p3 = new FailureParticipant(FailureParticipant.FAIL_IN_PREPARE, FailureParticipant.WRONG_STATE);
    final DemoVolatileParticipant p4 = new DemoVolatileParticipant();
    ut.begin();
    final TxContext tx = tm.suspend();
    tm.resume(tx);
    tm.enlistForDurableTwoPhase(p1, p1.identifier());
    tm.enlistForVolatileTwoPhase(p2, p2.identifier());
    ust.begin();
    final TxContext stx = tm.suspend();
    tm.resume(stx);
    tm.enlistForDurableTwoPhase(p3, "failure in prepare");
    tm.enlistForVolatileTwoPhase(p4, p4.identifier());
    tm.resume(tx);
    try {
        ut.commit();
        fail("expecting TransactionRolledBackException");
    } catch (TransactionRolledBackException wse) {
    // expect this
    }
    assertTrue(p1.prepared() && p1.resolved() && !p1.passed());
    assertTrue(p2.prepared() && p2.resolved() && !p2.passed());
    assertTrue(!p3.passed());
    assertTrue(p4.prepared() && p4.resolved() && !p4.passed());
}
Also used : UserTransaction(com.arjuna.mw.wst11.UserTransaction) FailureParticipant(com.arjuna.wstx.tests.common.FailureParticipant) DemoVolatileParticipant(com.arjuna.wstx.tests.common.DemoVolatileParticipant) TransactionManager(com.arjuna.mw.wst11.TransactionManager) DemoDurableParticipant(com.arjuna.wstx.tests.common.DemoDurableParticipant) TxContext(com.arjuna.mw.wst.TxContext) TransactionRolledBackException(com.arjuna.wst.TransactionRolledBackException) Test(org.junit.Test)

Example 4 with FailureParticipant

use of com.arjuna.wstx.tests.common.FailureParticipant in project narayana by jbosstm.

the class CommitRollbackInPrepareTest method testCommitRollbackInPrepare.

@Test
public void testCommitRollbackInPrepare() throws Exception {
    UserTransaction ut = UserTransaction.getUserTransaction();
    try {
        TransactionManager tm = TransactionManager.getTransactionManager();
        FailureParticipant p1 = new FailureParticipant(FailureParticipant.FAIL_IN_PREPARE, FailureParticipant.NONE);
        DemoDurableParticipant p2 = new DemoDurableParticipant();
        ut.begin();
        tm.enlistForDurableTwoPhase(p1, "failure");
        tm.enlistForDurableTwoPhase(p2, p2.identifier());
    } catch (Exception eouter) {
        try {
            ut.rollback();
        } catch (Exception einner) {
        }
        throw eouter;
    }
    try {
        ut.commit();
        fail("expected TransactionRolledBackException");
    } catch (com.arjuna.wst.TransactionRolledBackException ex) {
    // we should arrive here
    }
}
Also used : UserTransaction(com.arjuna.mw.wst11.UserTransaction) FailureParticipant(com.arjuna.wstx.tests.common.FailureParticipant) TransactionManager(com.arjuna.mw.wst11.TransactionManager) DemoDurableParticipant(com.arjuna.wstx.tests.common.DemoDurableParticipant) Test(org.junit.Test)

Example 5 with FailureParticipant

use of com.arjuna.wstx.tests.common.FailureParticipant in project narayana by jbosstm.

the class RollbackExceptionInRollbackTest method testRollbackExceptionInRollback.

@Test
public void testRollbackExceptionInRollback() throws Exception {
    UserTransaction ut = UserTransaction.getUserTransaction();
    TransactionManager tm = TransactionManager.getTransactionManager();
    FailureParticipant p1 = new FailureParticipant(FailureParticipant.FAIL_IN_ROLLBACK, FailureParticipant.WRONG_STATE);
    DemoDurableParticipant p2 = new DemoDurableParticipant();
    ut.begin();
    try {
        tm.enlistForDurableTwoPhase(p1, "failure");
        tm.enlistForDurableTwoPhase(p2, p2.identifier());
    } catch (Exception eouter) {
        try {
            ut.rollback();
        } catch (Exception einner) {
        }
        throw eouter;
    }
    ut.rollback();
}
Also used : UserTransaction(com.arjuna.mw.wst11.UserTransaction) FailureParticipant(com.arjuna.wstx.tests.common.FailureParticipant) TransactionManager(com.arjuna.mw.wst11.TransactionManager) DemoDurableParticipant(com.arjuna.wstx.tests.common.DemoDurableParticipant) Test(org.junit.Test)

Aggregations

TransactionManager (com.arjuna.mw.wst11.TransactionManager)5 UserTransaction (com.arjuna.mw.wst11.UserTransaction)5 DemoDurableParticipant (com.arjuna.wstx.tests.common.DemoDurableParticipant)5 FailureParticipant (com.arjuna.wstx.tests.common.FailureParticipant)5 Test (org.junit.Test)5 TxContext (com.arjuna.mw.wst.TxContext)2 TransactionRolledBackException (com.arjuna.wst.TransactionRolledBackException)2 DemoVolatileParticipant (com.arjuna.wstx.tests.common.DemoVolatileParticipant)2