/* * JBoss, the OpenSource J2EE webOS * * Distributable under LGPL license. * See terms of license at gnu.org. * */ package org.jboss.tm; import javax.transaction.Status; import javax.transaction.SystemException; import javax.transaction.Transaction; import javax.transaction.TransactionManager; import javax.transaction.UserTransaction; import org.jboss.util.NestedRuntimeException; /** * TxUtils.java has utility methods for determining transaction status * in various useful ways. * * * Created: Sat May 10 09:53:51 2003 * * @author David Jencks * @author Bill Burke * @version $1.0$ */ public class TxUtils { private TxUtils() { } // TxUtils constructor public static boolean isActive(Transaction tx) { try { return tx != null && (tx.getStatus() == Status.STATUS_ACTIVE || tx.getStatus() == Status.STATUS_MARKED_ROLLBACK); } catch (SystemException ignored) { throw new NestedRuntimeException(ignored); } } public static boolean isActive(TransactionManager tm) { try { return isActive(tm.getTransaction()); } catch (SystemException ignored) { throw new NestedRuntimeException(ignored); } } public static boolean isActive(UserTransaction ut) { try { return ut.getStatus() == Status.STATUS_ACTIVE; } catch (SystemException ignored) { throw new NestedRuntimeException(ignored); } } public static boolean isCompleted(Transaction tx) { try { return tx == null || tx.getStatus() == Status.STATUS_COMMITTED || tx.getStatus() == Status.STATUS_ROLLEDBACK || tx.getStatus() == Status.STATUS_NO_TRANSACTION; } catch (SystemException ignored) { throw new NestedRuntimeException(ignored); } } public static boolean isCompleted(TransactionManager tm) { try { return isCompleted(tm.getTransaction()); } catch (SystemException ignored) { throw new NestedRuntimeException(ignored); } } public static boolean isCompleted(UserTransaction ut) { try { return ut.getStatus() == Status.STATUS_COMMITTED || ut.getStatus() == Status.STATUS_ROLLEDBACK || ut.getStatus() == Status.STATUS_NO_TRANSACTION; } catch (SystemException ignored) { throw new NestedRuntimeException(ignored); } } } // TxUtils