You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by gp...@apache.org on 2012/02/05 17:51:06 UTC

svn commit: r1240766 - in /myfaces/extensions/cdi/trunk/jee-modules/jpa-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jpa/impl/transaction/context: TransactionBeanStorage.java TransactionContext.java

Author: gpetracek
Date: Sun Feb  5 16:51:05 2012
New Revision: 1240766

URL: http://svn.apache.org/viewvc?rev=1240766&view=rev
Log:
EXTCDI-258 @TransactionScoped independent of a request

Modified:
    myfaces/extensions/cdi/trunk/jee-modules/jpa-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jpa/impl/transaction/context/TransactionBeanStorage.java
    myfaces/extensions/cdi/trunk/jee-modules/jpa-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jpa/impl/transaction/context/TransactionContext.java

Modified: myfaces/extensions/cdi/trunk/jee-modules/jpa-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jpa/impl/transaction/context/TransactionBeanStorage.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/jee-modules/jpa-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jpa/impl/transaction/context/TransactionBeanStorage.java?rev=1240766&r1=1240765&r2=1240766&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/jee-modules/jpa-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jpa/impl/transaction/context/TransactionBeanStorage.java (original)
+++ myfaces/extensions/cdi/trunk/jee-modules/jpa-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jpa/impl/transaction/context/TransactionBeanStorage.java Sun Feb  5 16:51:05 2012
@@ -157,7 +157,7 @@ public class TransactionBeanStorage
         }
 
         //can be null on the topmost stack-layer
-        if (transactionKey == null)
+        if (transactionKey == null && this.activeTransactionKey == null)
         {
             //TODO refactor it to a reset method
             activeTransactionKey = null;
@@ -165,6 +165,13 @@ public class TransactionBeanStorage
             return null;
         }
 
+        String oldTransactionContextKey = activeTransactionKey;
+
+        if (transactionKey == null)
+        {
+            transactionKey = this.activeTransactionKey;
+        }
+
         Stack<Map<Contextual, TransactionBeanEntry>> transStack = storedTransactionContexts.get(transactionKey);
 
         if (transStack == null)
@@ -173,7 +180,6 @@ public class TransactionBeanStorage
         }
 
         activeTransactionContext =  transStack.peek();
-        String oldTransactionContextKey = activeTransactionKey;
         activeTransactionKey = transactionKey;
         return oldTransactionContextKey;
     }

Modified: myfaces/extensions/cdi/trunk/jee-modules/jpa-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jpa/impl/transaction/context/TransactionContext.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/jee-modules/jpa-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jpa/impl/transaction/context/TransactionContext.java?rev=1240766&r1=1240765&r2=1240766&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/jee-modules/jpa-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jpa/impl/transaction/context/TransactionContext.java (original)
+++ myfaces/extensions/cdi/trunk/jee-modules/jpa-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jpa/impl/transaction/context/TransactionContext.java Sun Feb  5 16:51:05 2012
@@ -56,7 +56,11 @@ public class TransactionContext implemen
 
     public <T> T get(Contextual<T> component, CreationalContext<T> creationalContext)
     {
-        TransactionBeanStorage.activateNewStorage();
+        if(TransactionBeanStorage.getStorage().getActiveTransactionContext() == null)
+        {
+            TransactionBeanStorage.activateNewStorage();
+        }
+
         Map<Contextual, TransactionBeanEntry> transactionBeanEntryMap = getTransactionBeanEntryMap();
 
         if (transactionBeanEntryMap == null)