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) {