From 7b9e3bb5d5c8314a4f38fdfc8a67760d42cd3ac4 Mon Sep 17 00:00:00 2001 From: Cleverson Sacramento Date: Fri, 25 Jan 2013 09:30:40 -0300 Subject: [PATCH] Considerando mais status da transação JTA: https://demoiselle.atlassian.net/browse/FWK-42 --- impl/extension/jta/src/main/java/br/gov/frameworkdemoiselle/transaction/JTATransaction.java | 41 ++++++----------------------------------- impl/extension/jta/src/main/resources/demoiselle-jta-bundle.properties | 1 - 2 files changed, 6 insertions(+), 36 deletions(-) diff --git a/impl/extension/jta/src/main/java/br/gov/frameworkdemoiselle/transaction/JTATransaction.java b/impl/extension/jta/src/main/java/br/gov/frameworkdemoiselle/transaction/JTATransaction.java index 5e3e9ef..b6ed7de 100644 --- a/impl/extension/jta/src/main/java/br/gov/frameworkdemoiselle/transaction/JTATransaction.java +++ b/impl/extension/jta/src/main/java/br/gov/frameworkdemoiselle/transaction/JTATransaction.java @@ -37,18 +37,15 @@ package br.gov.frameworkdemoiselle.transaction; import static br.gov.frameworkdemoiselle.internal.implementation.StrategySelector.EXTENSIONS_L2_PRIORITY; +import static javax.transaction.Status.STATUS_MARKED_ROLLBACK; +import static javax.transaction.Status.STATUS_NO_TRANSACTION; +import static javax.transaction.Status.STATUS_ROLLEDBACK; -import javax.inject.Inject; -import javax.transaction.Status; import javax.transaction.SystemException; import javax.transaction.UserTransaction; -import org.slf4j.Logger; - -import br.gov.frameworkdemoiselle.annotation.Name; import br.gov.frameworkdemoiselle.annotation.Priority; import br.gov.frameworkdemoiselle.util.Beans; -import br.gov.frameworkdemoiselle.util.ResourceBundle; @Priority(EXTENSIONS_L2_PRIORITY) public class JTATransaction implements Transaction { @@ -56,13 +53,6 @@ public class JTATransaction implements Transaction { private static final long serialVersionUID = 1L; private UserTransaction delegate; - - @Inject - private Logger logger; - - @Inject - @Name("demoiselle-jta-bundle") - private ResourceBundle bundle; public UserTransaction getDelegate() { @@ -76,27 +66,7 @@ public class JTATransaction implements Transaction { @Override public boolean isActive() { try { - final int delegateStatus = getDelegate().getStatus(); - - if (delegateStatus!=Status.STATUS_ACTIVE && delegateStatus!=Status.STATUS_NO_TRANSACTION){ - //Os status mais comuns do UserTransaction são: explicitamente ativa (STATUS_ACTIVE) ou explicitamente - //desativada (STATUS_NO_TRANSACTION). Qualquer outro status "intermediário" é registrado em log para análise posterior - String status; - switch(delegateStatus){ - case Status.STATUS_COMMITTED: status="COMMITTED"; break; - case Status.STATUS_COMMITTING: status="COMMITTING"; break; - case Status.STATUS_MARKED_ROLLBACK: status="MARKED_ROLLBACK"; break; - case Status.STATUS_PREPARED: status="PREPARED"; break; - case Status.STATUS_PREPARING: status="PREPARING"; break; - case Status.STATUS_ROLLEDBACK: status="ROLLEDBACK"; break; - case Status.STATUS_ROLLING_BACK: status="ROLLING_BACK"; break; - case Status.STATUS_UNKNOWN: status="UNKNOWN"; break; - default: status="UNKNOWN"; - } - logger.debug(bundle.getString("usertransaction-abnormal-status",status)); - } - - return delegateStatus != Status.STATUS_NO_TRANSACTION; + return getDelegate().getStatus() != STATUS_NO_TRANSACTION; } catch (SystemException cause) { throw new TransactionException(cause); @@ -106,7 +76,8 @@ public class JTATransaction implements Transaction { @Override public boolean isMarkedRollback() { try { - return getDelegate().getStatus() == Status.STATUS_MARKED_ROLLBACK; + return getDelegate().getStatus() == STATUS_MARKED_ROLLBACK + || getDelegate().getStatus() == STATUS_ROLLEDBACK; } catch (SystemException cause) { throw new TransactionException(cause); diff --git a/impl/extension/jta/src/main/resources/demoiselle-jta-bundle.properties b/impl/extension/jta/src/main/resources/demoiselle-jta-bundle.properties index 0f37148..3f1fa2e 100644 --- a/impl/extension/jta/src/main/resources/demoiselle-jta-bundle.properties +++ b/impl/extension/jta/src/main/resources/demoiselle-jta-bundle.properties @@ -32,4 +32,3 @@ # "LICENCA.txt", junto com esse programa. Se não, acesse # ou escreva para a Fundação do Software Livre (FSF) Inc., # 51 Franklin St, Fifth Floor, Boston, MA 02111-1301, USA. -usertransaction-abnormal-status=UserTransaction encontra-se em status anormal\: {0} \ No newline at end of file -- libgit2 0.21.2