You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2013/05/05 14:54:56 UTC

svn commit: r1479313 - /tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/OpenEJBTransactionService.java

Author: rmannibucau
Date: Sun May  5 12:54:55 2013
New Revision: 1479313

URL: http://svn.apache.org/r1479313
Log:
OPENEJB-2018 opentjb transaction service (owb service) - avoid infinite loop

Modified:
    tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/OpenEJBTransactionService.java

Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/OpenEJBTransactionService.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/OpenEJBTransactionService.java?rev=1479313&r1=1479312&r2=1479313&view=diff
==============================================================================
--- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/OpenEJBTransactionService.java (original)
+++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/OpenEJBTransactionService.java Sun May  5 12:54:55 2013
@@ -24,6 +24,8 @@ import org.apache.openejb.spi.ContainerS
 import org.apache.openejb.util.LogCategory;
 import org.apache.openejb.util.Logger;
 import org.apache.webbeans.config.WebBeansContext;
+import org.apache.webbeans.ee.event.TransactionalEventNotifier;
+import org.apache.webbeans.event.EventMetadataImpl;
 import org.apache.webbeans.spi.TransactionService;
 
 import javax.enterprise.event.TransactionPhase;
@@ -33,6 +35,9 @@ import javax.transaction.SystemException
 import javax.transaction.Transaction;
 import javax.transaction.TransactionManager;
 import javax.transaction.UserTransaction;
+import java.lang.annotation.Annotation;
+import java.util.Collections;
+import java.util.Set;
 
 /**
  * this is a copy of the class in the owb webbeans-openejb jar which we aren't using.
@@ -79,8 +84,14 @@ public class OpenEJBTransactionService i
     }
 
     @Override
-    public void registerTransactionSynchronization(TransactionPhase phase, ObserverMethod<? super Object> observer, Object event) throws Exception {
-        webBeansContext.getService(TransactionService.class).registerTransactionSynchronization(phase, observer, event);
+    public void registerTransactionSynchronization(final TransactionPhase phase, final ObserverMethod<? super Object> observer, final Object event) throws Exception {
+        Set<Annotation> qualifiers = observer.getObservedQualifiers();
+        if (qualifiers == null) {
+            qualifiers = Collections.emptySet();
+        }
+
+        TransactionalEventNotifier.registerTransactionSynchronization(phase, observer, event,
+                new EventMetadataImpl(observer.getObservedType(), null, qualifiers.toArray(new Annotation[qualifiers.size()])));
     }
 
     public void setWebBeansContext(WebBeansContext webBeansContext) {