1 /** 2 * 3 * Copyright 2006 The Apache Software Foundation 4 * 5 * Licensed under the Apache License, Version 2.0 (the "License"); 6 * you may not use this file except in compliance with the License. 7 * You may obtain a copy of the License at 8 * 9 * http://www.apache.org/licenses/LICENSE-2.0 10 * 11 * Unless required by applicable law or agreed to in writing, software 12 * distributed under the License is distributed on an "AS IS" BASIS, 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 * See the License for the specific language governing permissions and 15 * limitations under the License. 16 */ 17 package org.apache.geronimo.connector.outbound; 18 19 import javax.transaction.Transaction; 20 import javax.transaction.TransactionManager; 21 import javax.transaction.Status; 22 import javax.transaction.SystemException; 23 24 /** 25 * @version $Rev: 437254 $ $Date: 2006-08-26 17:07:55 -0700 (Sat, 26 Aug 2006) $ 26 */ 27 public final class TxUtil { 28 private TxUtil() { 29 } 30 31 public static Transaction getTransactionIfActive(TransactionManager transactionManager) { 32 Transaction transaction = null; 33 int status = Status.STATUS_NO_TRANSACTION; 34 try { 35 transaction = transactionManager.getTransaction(); 36 if (transaction != null) status = transaction.getStatus(); 37 } catch (SystemException ignored) { 38 } 39 40 if (transaction != null && status == Status.STATUS_ACTIVE || status == Status.STATUS_MARKED_ROLLBACK) { 41 return transaction; 42 } 43 return null; 44 } 45 46 public static boolean isTransactionActive(TransactionManager transactionManager) { 47 try { 48 int status = transactionManager.getStatus(); 49 return status == Status.STATUS_ACTIVE || status == Status.STATUS_MARKED_ROLLBACK; 50 } catch (SystemException ignored) { 51 return false; 52 } 53 } 54 55 public static boolean isActive(Transaction transaction) { 56 try { 57 int status = transaction.getStatus(); 58 return status == Status.STATUS_ACTIVE || status == Status.STATUS_MARKED_ROLLBACK; 59 } catch (SystemException ignored) { 60 return false; 61 } 62 } 63 } 64