Search in sources :

Example 1 with CheckedAction

use of com.arjuna.ats.arjuna.coordinator.CheckedAction in project narayana by jbosstm.

the class CheckedActionsUnitTest method test.

@Test
public void test() throws Exception {
    CheckedAction ca = new CheckedAction();
    CheckedActions.set(ca);
    assertEquals(CheckedActions.get(), ca);
    CheckedActions.remove();
    assertEquals(CheckedActions.get(), null);
}
Also used : CheckedAction(com.arjuna.ats.arjuna.coordinator.CheckedAction) Test(org.junit.Test)

Example 2 with CheckedAction

use of com.arjuna.ats.arjuna.coordinator.CheckedAction in project narayana by jbosstm.

the class ThreadUtilTest method testDisassociateFromDifferentThread.

@Test
public void testDisassociateFromDifferentThread() throws InterruptedException {
    Thread thread = Thread.currentThread();
    AtomicBoolean called = new AtomicBoolean(false);
    CoordinatorEnvironmentBean coordinatorEnvironmentBean = arjPropertyManager.getCoordinatorEnvironmentBean();
    coordinatorEnvironmentBean.setAllowCheckedActionFactoryOverride(true);
    coordinatorEnvironmentBean.setCheckedActionFactory(new CheckedActionFactory() {

        @Override
        public CheckedAction getCheckedAction(Uid txId, String actionType) {
            return new CheckedAction() {

                public void check(boolean isCommit, Uid actUid, Hashtable list) {
                    called.set(true);
                }
            };
        }
    });
    AtomicAction tx = new AtomicAction();
    assertFalse(tx.removeChildThread(ThreadUtil.getThreadId(thread)));
    tx.begin();
    synchronized (tx) {
        new Thread(new Runnable() {

            @Override
            public void run() {
                assertTrue(tx.removeChildThread(ThreadUtil.getThreadId(thread)));
                assertTrue(tx.end(true) == ActionStatus.COMMITTED);
                synchronized (tx) {
                    tx.notify();
                }
            }
        }).start();
        tx.wait();
    }
    assertTrue(called.get() == false);
}
Also used : AtomicBoolean(java.util.concurrent.atomic.AtomicBoolean) Uid(com.arjuna.ats.arjuna.common.Uid) AtomicAction(com.arjuna.ats.arjuna.AtomicAction) CheckedAction(com.arjuna.ats.arjuna.coordinator.CheckedAction) Hashtable(java.util.Hashtable) CoordinatorEnvironmentBean(com.arjuna.ats.arjuna.common.CoordinatorEnvironmentBean) CheckedActionFactory(com.arjuna.ats.arjuna.coordinator.CheckedActionFactory) Test(org.junit.Test)

Aggregations

CheckedAction (com.arjuna.ats.arjuna.coordinator.CheckedAction)2 Test (org.junit.Test)2 AtomicAction (com.arjuna.ats.arjuna.AtomicAction)1 CoordinatorEnvironmentBean (com.arjuna.ats.arjuna.common.CoordinatorEnvironmentBean)1 Uid (com.arjuna.ats.arjuna.common.Uid)1 CheckedActionFactory (com.arjuna.ats.arjuna.coordinator.CheckedActionFactory)1 Hashtable (java.util.Hashtable)1 AtomicBoolean (java.util.concurrent.atomic.AtomicBoolean)1