[jboss-jira] [JBoss JIRA] (WFLY-8954) Wildfly 10 with eclipselink Onscucess observer gets stale entity

Nuno Godinho de Matos (JIRA) issues at jboss.org
Sat Jun 24 12:22:01 EDT 2017


    [ https://issues.jboss.org/browse/WFLY-8954?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13426332#comment-13426332 ] 

Nuno Godinho de Matos commented on WFLY-8954:
---------------------------------------------

Hi,

I have now launche the sample application on both application servers, and tested the triggering to event B on both app servers. The event B, is the one where the observer of event B is a @Singleton @TransactioAsttirbute requires new.

My impresison, is that the bug is not in the "com.arjuna" but rather on the wildfly/jboss registration of onsuccess oberservers into this adapter, to determine what should happen during on succes.
But here I am going a bit to far on my analysis, since I am not really sure how exactly these different components glue together. But as you will see in the stack traces posted bellow, the arjuna code seems to be doing some sort of generic loop invoking oncusscess obverserves.
And it just so happens to appear that arjuna is first invoking the CDI / EJB on success event publisher and only later the eclipse link sessiong synchronizer code.

But I leave to you guys the actual conclusion on the bug, I believe these stack traces have everything in there to point the bug and the above is just my impression / but since I have never written container code it is all I can offer.

OK so first we start with the stack traces for weblogic:

On weblogic I put two stack traces.
1. The first stack trace is my break point the eclipselink RepeatableWriteUnitOfWork.mergeToParent() getting called.
2. The second trace corresponds to my second break point getting hit, which is the business logic for the observes event.
The above stack traces are perfectly in line to theory we have discussed above.
And it makes perfect logic sense. First weblogic commits and synchronizies the server session cache. Then it calls our on success business logic.

{panel}
-- -------------------------
-- MOMENT 1: clicking on the web page to trigger event B
-- -------------------------
1 CLICK EVENT B


-- -------------------------
-- MOMENT 2: The break point in the RepeatableWriteUnitOfWorkMerge to parent gets hit (it is around here that mreging to server session will be taking place)
-- -------------------------
2. Repeatable write unti of work merge chages into parent:
Daemon Thread [[ACTIVE] ExecuteThread: '3' for queue: 'weblogic.kernel.Default (self-tuning)'] (Suspended (breakpoint at line 371 in org.eclipse.persistence.internal.sessions.RepeatableWriteUnitOfWork))	
	owns: weblogic.transaction.internal.ServerSCInfo  (id=269)	
	org.eclipse.persistence.internal.sessions.RepeatableWriteUnitOfWork(org.eclipse.persistence.internal.sessions.UnitOfWorkImpl).mergeClonesAfterCompletion() line: 3412	
	org.eclipse.persistence.transaction.JTASynchronizationListener(org.eclipse.persistence.transaction.AbstractSynchronizationListener).afterCompletion(java.lang.Object) line: 217	
	org.eclipse.persistence.transaction.JTASynchronizationListener.afterCompletion(int) line: 79	
	weblogic.transaction.internal.ServerSCInfo.doAfterCompletion(javax.transaction.Synchronization, int, weblogic.security.acl.internal.AuthenticatedSubject, weblogic.security.acl.internal.AuthenticatedSubject, weblogic.invocation.ComponentInvocationContext) line: 1254	
	weblogic.transaction.internal.ServerSCInfo.callAfterCompletions(int, weblogic.transaction.internal.TransactionImpl) line: 1225	
	weblogic.transaction.internal.ServerTransactionImpl.callAfterCompletions() line: 3630	
	weblogic.transaction.internal.ServerTransactionImpl.afterCommittedStateHousekeeping() line: 3527	
	weblogic.transaction.internal.ServerTransactionImpl.setCommitted() line: 3573	
	weblogic.transaction.internal.ServerTransactionImpl.globalRetryCommit(int, int, int) line: 3297	
	weblogic.transaction.internal.ServerTransactionImpl.globalCommit(int) line: 3197	
	weblogic.transaction.internal.ServerTransactionImpl.internalCommit() line: 309	
	weblogic.transaction.internal.ServerTransactionImpl.commit() line: 257	
	weblogic.ejb.container.internal.StatelessLocalObject(weblogic.ejb.container.internal.BaseLocalObject).postInvoke1(int, weblogic.ejb.container.internal.InvocationWrapper, java.lang.Throwable) line: 316	
	weblogic.ejb.container.internal.StatelessLocalObject(weblogic.ejb.container.internal.BaseLocalObject).__WL_postInvokeTxRetry(weblogic.ejb.container.internal.InvocationWrapper, java.lang.Throwable) line: 195	
	weblogic.ejb.container.internal.SessionLocalMethodInvoker.invoke(weblogic.ejb.container.interfaces.Invokable, weblogic.ejb.container.internal.BaseLocalObject, weblogic.ejb.container.internal.InvocationWrapper, java.lang.Object[], int) line: 46	
	wildfly.bug.onsuccess.facade.ModifyEntityAndFireEventFacade_uskw20_NoIntfViewImpl.modifyEntityAndFireEventB() line: not available	
	sun.reflect.NativeMethodAccessorImpl.invoke0(java.lang.reflect.Method, java.lang.Object, java.lang.Object[]) line: not available [native method]	
	sun.reflect.NativeMethodAccessorImpl.invoke(java.lang.Object, java.lang.Object[]) line: 62	
	sun.reflect.DelegatingMethodAccessorImpl.invoke(java.lang.Object, java.lang.Object[]) line: 43	
	java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object...) line: 498	
	org.jboss.weld.util.reflection.Reflections.invokeAndUnwrap(java.lang.Object, java.lang.reflect.Method, java.lang.Object...) line: 436	
	org.jboss.weld.bean.proxy.EnterpriseBeanProxyMethodHandler<T>.invoke(java.lang.Object, java.lang.reflect.Method, java.lang.reflect.Method, java.lang.Object[]) line: 127	
	org.jboss.weld.bean.proxy.InjectionPointPropagatingEnterpriseTargetBeanInstance(org.jboss.weld.bean.proxy.EnterpriseTargetBeanInstance).invoke(java.lang.Object, java.lang.reflect.Method, java.lang.Object...) line: 56	
	org.jboss.weld.bean.proxy.InjectionPointPropagatingEnterpriseTargetBeanInstance.invoke(java.lang.Object, java.lang.reflect.Method, java.lang.Object...) line: 67	
	org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(java.lang.Object, java.lang.reflect.Method, java.lang.reflect.Method, java.lang.Object[]) line: 100	
	wildfly.bug.onsuccess.facade.ModifyEntityAndFireEventFacade$Proxy$_$$_Weld$EnterpriseProxy$.modifyEntityAndFireEventB() line: not available	
	entrypoint.web.SystemTestBean.fireSomeEntityChangeBEvent() line: 70	
	sun.reflect.NativeMethodAccessorImpl.invoke0(java.lang.reflect.Method, java.lang.Object, java.lang.Object[]) line: not available [native method]	
	sun.reflect.NativeMethodAccessorImpl.invoke(java.lang.Object, java.lang.Object[]) line: 62	
	sun.reflect.DelegatingMethodAccessorImpl.invoke(java.lang.Object, java.lang.Object[]) line: 43	
	java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object...) line: 498	
	com.sun.el.util.ReflectionUtil.invokeMethod(javax.el.ELContext, java.lang.reflect.Method, java.lang.Object, java.lang.Object[]) line: 181	
	com.sun.el.parser.AstValue.invoke(com.sun.el.lang.EvaluationContext, java.lang.Class[], java.lang.Object[]) line: 289	
	com.sun.el.MethodExpressionImpl.invoke(javax.el.ELContext, java.lang.Object[]) line: 304	
	org.jboss.weld.el.WeldMethodExpression(org.jboss.weld.util.el.ForwardingMethodExpression).invoke(javax.el.ELContext, java.lang.Object[]) line: 40	
	org.jboss.weld.el.WeldMethodExpression.invoke(javax.el.ELContext, java.lang.Object[]) line: 50	
	org.jboss.weld.el.WeldMethodExpression(org.jboss.weld.util.el.ForwardingMethodExpression).invoke(javax.el.ELContext, java.lang.Object[]) line: 40	
	org.jboss.weld.el.WeldMethodExpression.invoke(javax.el.ELContext, java.lang.Object[]) line: 50	
	javax.faces.event.MethodExpressionActionListener.processAction(javax.faces.event.ActionEvent) line: 149	
	javax.faces.event.ActionEvent.processListener(javax.faces.event.FacesListener) line: 88	
	org.primefaces.component.commandbutton.CommandButton(javax.faces.component.UIComponentBase).broadcast(javax.faces.event.FacesEvent) line: 814	
	org.primefaces.component.commandbutton.CommandButton(javax.faces.component.UICommand).broadcast(javax.faces.event.FacesEvent) line: 300	
	javax.faces.component.UIViewRoot.broadcastEvents(javax.faces.context.FacesContext, javax.faces.event.PhaseId) line: 790	
	javax.faces.component.UIViewRoot.processApplication(javax.faces.context.FacesContext) line: 1282	
	com.sun.faces.lifecycle.InvokeApplicationPhase.execute(javax.faces.context.FacesContext) line: 81	
	com.sun.faces.lifecycle.InvokeApplicationPhase(com.sun.faces.lifecycle.Phase).doPhase(javax.faces.context.FacesContext, javax.faces.lifecycle.Lifecycle, java.util.ListIterator<javax.faces.event.PhaseListener>) line: 101	
	com.sun.faces.lifecycle.LifecycleImpl.execute(javax.faces.context.FacesContext) line: 198	
	org.apache.deltaspike.jsf.impl.listener.request.DeltaSpikeLifecycleWrapper.execute(javax.faces.context.FacesContext) line: 89	
	org.apache.deltaspike.jsf.impl.listener.request.JsfClientWindowAwareLifecycleWrapper(javax.faces.lifecycle.LifecycleWrapper).execute(javax.faces.context.FacesContext) line: 77	
	javax.faces.webapp.FacesServlet.service(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 650	
	weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run() line: 286	
	weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run() line: 260	
																								
                                                                                                
                                                                                                


-- -------------------------                                                                                                -- -------------------------
-- MOMENT 3: Breakpoint on observer gets hit the server sesison cache already holds the changes
-- -------------------------
3. - On Success observer:

Daemon Thread [[ACTIVE] ExecuteThread: '6' for queue: 'weblogic.kernel.Default (self-tuning)'] (Suspended (breakpoint at line 55 in wildfly.bug.onsuccess.facade.SomeEntityChangeEventObserverBFacade))	
	owns: weblogic.transaction.internal.ServerSCInfo  (id=237)	
	wildfly.bug.onsuccess.facade.SomeEntityChangeEventObserverBFacade_y0uz1i_Impl(wildfly.bug.onsuccess.facade.SomeEntityChangeEventObserverBFacade).observeEvent(wildfly.bug.onsuccess.event.SomeEntityChangeBEvent) line: 55	
	sun.reflect.NativeMethodAccessorImpl.invoke0(java.lang.reflect.Method, java.lang.Object, java.lang.Object[]) line: not available [native method]	
	sun.reflect.NativeMethodAccessorImpl.invoke(java.lang.Object, java.lang.Object[]) line: 62	
	sun.reflect.DelegatingMethodAccessorImpl.invoke(java.lang.Object, java.lang.Object[]) line: 43	
	java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object...) line: 498	
	com.bea.core.repackaged.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(java.lang.Object, java.lang.reflect.Method, java.lang.Object[]) line: 310	
	com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint() line: 182	
	com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed() line: 149	
	com.oracle.pitchfork.intercept.MethodInvocationInvocationContext.proceed() line: 101	
	inteceptor.FacadeInterceptor(inteceptor.GenericLoggingInterceptor).aroundInvoke(javax.interceptor.InvocationContext) line: 93	
	sun.reflect.GeneratedMethodAccessor402.invoke(java.lang.Object, java.lang.Object[]) line: not available	
	sun.reflect.DelegatingMethodAccessorImpl.invoke(java.lang.Object, java.lang.Object[]) line: 43	
	java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object...) line: 498	
	com.oracle.pitchfork.intercept.JeeInterceptorInterceptor.invoke(com.bea.core.repackaged.aopalliance.intercept.MethodInvocation) line: 94	
	com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed() line: 171	
	com.oracle.pitchfork.intercept.MethodInvocationInvocationContext.proceed() line: 101	
	com.oracle.pitchfork.intercept.JeeInterceptorInterceptor.invoke(com.bea.core.repackaged.aopalliance.intercept.MethodInvocation) line: 101	
	com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed() line: 171	
	com.oracle.pitchfork.intercept.MethodInvocationInvocationContext.proceed() line: 101	
	org.jboss.weld.ejb.SessionBeanInterceptor(org.jboss.weld.ejb.AbstractEJBRequestScopeActivationInterceptor).aroundInvoke(javax.interceptor.InvocationContext) line: 64	
	org.jboss.weld.ejb.SessionBeanInterceptor.aroundInvoke(javax.interceptor.InvocationContext) line: 52	
	sun.reflect.GeneratedMethodAccessor144.invoke(java.lang.Object, java.lang.Object[]) line: not available	
	sun.reflect.DelegatingMethodAccessorImpl.invoke(java.lang.Object, java.lang.Object[]) line: 43	
	java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object...) line: 498	
	com.oracle.pitchfork.intercept.JeeInterceptorInterceptor.invoke(com.bea.core.repackaged.aopalliance.intercept.MethodInvocation) line: 94	
	com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed() line: 171	
	com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(com.bea.core.repackaged.aopalliance.intercept.MethodInvocation) line: 131	
	com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(com.bea.core.repackaged.aopalliance.intercept.MethodInvocation) line: 119	
	com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed() line: 171	
	com.bea.core.repackaged.springframework.aop.framework.JdkDynamicAopProxy.invoke(java.lang.Object, java.lang.reflect.Method, java.lang.Object[]) line: 215	
	com.sun.proxy.$Proxy368.observeEvent(wildfly.bug.onsuccess.event.SomeEntityChangeBEvent) line: not available	
	wildfly.bug.onsuccess.facade.SomeEntityChangeEventObserverBFacade_y0uz1i_NoIntfViewImpl.__WL_invoke(java.lang.Object, java.lang.Object[], int) line: not available	
	
    weblogic.ejb.container.internal.SessionLocalMethodInvoker.invoke(weblogic.ejb.container.interfaces.Invokable, weblogic.ejb.container.internal.BaseLocalObject, weblogic.ejb.container.internal.InvocationWrapper, java.lang.Object[], int) line: 33	
	wildfly.bug.onsuccess.facade.SomeEntityChangeEventObserverBFacade_y0uz1i_NoIntfViewImpl.observeEvent(wildfly.bug.onsuccess.event.SomeEntityChangeBEvent) line: not available	
	sun.reflect.NativeMethodAccessorImpl.invoke0(java.lang.reflect.Method, java.lang.Object, java.lang.Object[]) line: not available [native method]	
	sun.reflect.NativeMethodAccessorImpl.invoke(java.lang.Object, java.lang.Object[]) line: 62	
	sun.reflect.DelegatingMethodAccessorImpl.invoke(java.lang.Object, java.lang.Object[]) line: 43	
	java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object...) line: 498	
	org.jboss.weld.util.reflection.Reflections.invokeAndUnwrap(java.lang.Object, java.lang.reflect.Method, java.lang.Object...) line: 436	
	org.jboss.weld.bean.proxy.EnterpriseBeanProxyMethodHandler<T>.invoke(java.lang.Object, java.lang.reflect.Method, java.lang.reflect.Method, java.lang.Object[]) line: 127	
	org.jboss.weld.bean.proxy.EnterpriseTargetBeanInstance.invoke(java.lang.Object, java.lang.reflect.Method, java.lang.Object...) line: 56	
	org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(java.lang.Object, java.lang.reflect.Method, java.lang.reflect.Method, java.lang.Object[]) line: 100	
	wildfly.bug.onsuccess.facade.SomeEntityChangeEventObserverBFacade$Proxy$_$$_Weld$EnterpriseProxy$.observeEvent(wildfly.bug.onsuccess.event.SomeEntityChangeBEvent) line: not available	
	sun.reflect.NativeMethodAccessorImpl.invoke0(java.lang.reflect.Method, java.lang.Object, java.lang.Object[]) line: not available [native method]	
	sun.reflect.NativeMethodAccessorImpl.invoke(java.lang.Object, java.lang.Object[]) line: 62	
	sun.reflect.DelegatingMethodAccessorImpl.invoke(java.lang.Object, java.lang.Object[]) line: 43	
	java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object...) line: 498	
	org.jboss.weld.injection.VirtualMethodInjectionPoint<T,X>(org.jboss.weld.injection.StaticMethodInjectionPoint<T,X>).invoke(java.lang.Object, java.lang.Object[], java.lang.Class<? extends java.lang.RuntimeException>) line: 88	
	org.jboss.weld.injection.VirtualMethodInjectionPoint<T,X>(org.jboss.weld.injection.StaticMethodInjectionPoint<T,X>).invoke(java.lang.Object, java.lang.Object, org.jboss.weld.manager.BeanManagerImpl, javax.enterprise.context.spi.CreationalContext<?>, java.lang.Class<? extends java.lang.RuntimeException>) line: 78	
	org.jboss.weld.injection.MethodInvocationStrategy$SimpleMethodInvocationStrategy.invoke(java.lang.Object, org.jboss.weld.injection.MethodInjectionPoint<?,?>, T, org.jboss.weld.manager.BeanManagerImpl, javax.enterprise.context.spi.CreationalContext<?>) line: 129	
	org.jboss.weld.event.ObserverMethodImpl<T,X>.sendEvent(T, java.lang.Object, javax.enterprise.context.spi.CreationalContext<?>) line: 309	
	org.jboss.weld.event.ObserverMethodImpl<T,X>.sendEvent(T) line: 287	
	org.jboss.weld.event.ObserverMethodImpl<T,X>.notify(T) line: 265	
	org.jboss.weld.event.DeferredEventNotification$1.execute() line: 69	
	org.jboss.weld.event.DeferredEventNotification$1(org.jboss.weld.event.DeferredEventNotification$RunInRequest).run() line: 101	
	org.jboss.weld.event.DeferredEventNotification<T>.run() line: 75	
	
    
    org.jboss.weld.event.TransactionSynchronizedRunnable.afterCompletion(int) line: 54	
	weblogic.transaction.internal.ServerSCInfo.doAfterCompletion(javax.transaction.Synchronization, int, weblogic.security.acl.internal.AuthenticatedSubject, weblogic.security.acl.internal.AuthenticatedSubject, weblogic.invocation.ComponentInvocationContext) line: 1254	
	weblogic.transaction.internal.ServerSCInfo.callAfterCompletions(int, weblogic.transaction.internal.TransactionImpl) line: 1225	
	
    
    weblogic.transaction.internal.ServerTransactionImpl.callAfterCompletions() line: 3630	
	weblogic.transaction.internal.ServerTransactionImpl.afterCommittedStateHousekeeping() line: 3527	
	
    weblogic.transaction.internal.ServerTransactionImpl.setCommitted() line: 3573	
	weblogic.transaction.internal.ServerTransactionImpl.globalRetryCommit(int, int, int) line: 3297	
	weblogic.transaction.internal.ServerTransactionImpl.globalCommit(int) line: 3197	
	weblogic.transaction.internal.ServerTransactionImpl.internalCommit() line: 309	
	weblogic.transaction.internal.ServerTransactionImpl.commit() line: 257	
	
    weblogic.ejb.container.internal.StatelessLocalObject(weblogic.ejb.container.internal.BaseLocalObject).postInvoke1(int, weblogic.ejb.container.internal.InvocationWrapper, java.lang.Throwable) line: 316	
	weblogic.ejb.container.internal.StatelessLocalObject(weblogic.ejb.container.internal.BaseLocalObject).__WL_postInvokeTxRetry(weblogic.ejb.container.internal.InvocationWrapper, java.lang.Throwable) line: 195	
	weblogic.ejb.container.internal.SessionLocalMethodInvoker.invoke(weblogic.ejb.container.interfaces.Invokable, weblogic.ejb.container.internal.BaseLocalObject, weblogic.ejb.container.internal.InvocationWrapper, java.lang.Object[], int) line: 46	
	wildfly.bug.onsuccess.facade.ModifyEntityAndFireEventFacade_uskw20_NoIntfViewImpl.modifyEntityAndFireEventB() line: not available	
	sun.reflect.NativeMethodAccessorImpl.invoke0(java.lang.reflect.Method, java.lang.Object, java.lang.Object[]) line: not available [native method]	
	sun.reflect.NativeMethodAccessorImpl.invoke(java.lang.Object, java.lang.Object[]) line: 62	
	sun.reflect.DelegatingMethodAccessorImpl.invoke(java.lang.Object, java.lang.Object[]) line: 43	
	java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object...) line: 498	
	org.jboss.weld.util.reflection.Reflections.invokeAndUnwrap(java.lang.Object, java.lang.reflect.Method, java.lang.Object...) line: 436	
	org.jboss.weld.bean.proxy.EnterpriseBeanProxyMethodHandler<T>.invoke(java.lang.Object, java.lang.reflect.Method, java.lang.reflect.Method, java.lang.Object[]) line: 127	
	org.jboss.weld.bean.proxy.InjectionPointPropagatingEnterpriseTargetBeanInstance(org.jboss.weld.bean.proxy.EnterpriseTargetBeanInstance).invoke(java.lang.Object, java.lang.reflect.Method, java.lang.Object...) line: 56	
	org.jboss.weld.bean.proxy.InjectionPointPropagatingEnterpriseTargetBeanInstance.invoke(java.lang.Object, java.lang.reflect.Method, java.lang.Object...) line: 67	
	org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(java.lang.Object, java.lang.reflect.Method, java.lang.reflect.Method, java.lang.Object[]) line: 100	
	wildfly.bug.onsuccess.facade.ModifyEntityAndFireEventFacade$Proxy$_$$_Weld$EnterpriseProxy$.modifyEntityAndFireEventB() line: not available	
	entrypoint.web.SystemTestBean.fireSomeEntityChangeBEvent() line: 70	
	sun.reflect.NativeMethodAccessorImpl.invoke0(java.lang.reflect.Method, java.lang.Object, java.lang.Object[]) line: not available [native method]	
	sun.reflect.NativeMethodAccessorImpl.invoke(java.lang.Object, java.lang.Object[]) line: 62	
	sun.reflect.DelegatingMethodAccessorImpl.invoke(java.lang.Object, java.lang.Object[]) line: 43	
	java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object...) line: 498	
	com.sun.el.util.ReflectionUtil.invokeMethod(javax.el.ELContext, java.lang.reflect.Method, java.lang.Object, java.lang.Object[]) line: 181	
	com.sun.el.parser.AstValue.invoke(com.sun.el.lang.EvaluationContext, java.lang.Class[], java.lang.Object[]) line: 289	
	com.sun.el.MethodExpressionImpl.invoke(javax.el.ELContext, java.lang.Object[]) line: 304	
	org.jboss.weld.el.WeldMethodExpression(org.jboss.weld.util.el.ForwardingMethodExpression).invoke(javax.el.ELContext, java.lang.Object[]) line: 40	
	org.jboss.weld.el.WeldMethodExpression.invoke(javax.el.ELContext, java.lang.Object[]) line: 50	
	org.jboss.weld.el.WeldMethodExpression(org.jboss.weld.util.el.ForwardingMethodExpression).invoke(javax.el.ELContext, java.lang.Object[]) line: 40	
	org.jboss.weld.el.WeldMethodExpression.invoke(javax.el.ELContext, java.lang.Object[]) line: 50	
	javax.faces.event.MethodExpressionActionListener.processAction(javax.faces.event.ActionEvent) line: 149	
	javax.faces.event.ActionEvent.processListener(javax.faces.event.FacesListener) line: 88	
	org.primefaces.component.commandbutton.CommandButton(javax.faces.component.UIComponentBase).broadcast(javax.faces.event.FacesEvent) line: 814	
	org.primefaces.component.commandbutton.CommandButton(javax.faces.component.UICommand).broadcast(javax.faces.event.FacesEvent) line: 300	
	javax.faces.component.UIViewRoot.broadcastEvents(javax.faces.context.FacesContext, javax.faces.event.PhaseId) line: 790	
	javax.faces.component.UIViewRoot.processApplication(javax.faces.context.FacesContext) line: 1282	
	com.sun.faces.lifecycle.InvokeApplicationPhase.execute(javax.faces.context.FacesContext) line: 81	
	com.sun.faces.lifecycle.InvokeApplicationPhase(com.sun.faces.lifecycle.Phase).doPhase(javax.faces.context.FacesContext, javax.faces.lifecycle.Lifecycle, java.util.ListIterator<javax.faces.event.PhaseListener>) line: 101	
	com.sun.faces.lifecycle.LifecycleImpl.execute(javax.faces.context.FacesContext) line: 198	
	org.apache.deltaspike.jsf.impl.listener.request.DeltaSpikeLifecycleWrapper.execute(javax.faces.context.FacesContext) line: 89	
	org.apache.deltaspike.jsf.impl.listener.request.JsfClientWindowAwareLifecycleWrapper(javax.faces.lifecycle.LifecycleWrapper).execute(javax.faces.context.FacesContext) line: 77	
	javax.faces.webapp.FacesServlet.service(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 650	
	weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run() line: 286	
	weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run() line: 260	
	weblogic.servlet.internal.StubSecurityHelper.invokeServlet(javax.servlet.ServletRequest, javax.servlet.http.HttpServletRequest, weblogic.servlet.internal.ServletRequestImpl, javax.servlet.ServletResponse, javax.servlet.http.HttpServletResponse, javax.servlet.Servlet) line: 137	
	weblogic.servlet.internal.ServletStubImpl.execute(javax.servlet.ServletRequest, javax.servlet.ServletResponse, weblogic.servlet.internal.FilterChainImpl) line: 350	
	weblogic.servlet.internal.TailFilter.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain) line: 25	
	weblogic.servlet.internal.FilterChainImpl.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 78	
	weblogic.servlet.internal.RequestEventsFilter.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain) line: 32	
	weblogic.servlet.internal.FilterChainImpl.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 78	
	weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(weblogic.servlet.internal.ServletStub, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) line: 3683	
	weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run() line: 3649	
	weblogic.security.acl.internal.AuthenticatedSubject.doAs(weblogic.security.subject.AbstractSubject, java.security.PrivilegedAction) line: 326	
	weblogic.security.service.SecurityManager.runAsForUserCode(weblogic.security.acl.internal.AuthenticatedSubject, weblogic.security.acl.internal.AuthenticatedSubject, java.security.PrivilegedAction<T>) line: 197	
	weblogic.servlet.provider.WlsSecurityProvider.runAsForUserCode(weblogic.security.acl.internal.AuthenticatedSubject, java.security.PrivilegedAction, weblogic.security.acl.internal.AuthenticatedSubject) line: 203	
	weblogic.servlet.provider.WlsSubjectHandle.run(java.security.PrivilegedAction) line: 71	
	weblogic.servlet.internal.WebAppServletContext.doSecuredExecute(weblogic.servlet.internal.ServletInvocationContext, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, boolean, boolean, boolean) line: 2433	
	weblogic.servlet.internal.WebAppServletContext.securedExecute(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, boolean) line: 2281	
	weblogic.servlet.internal.WebAppServletContext.execute(weblogic.servlet.internal.ServletRequestImpl, weblogic.servlet.internal.ServletResponseImpl) line: 2259	
	weblogic.servlet.internal.ServletRequestImpl.runInternal() line: 1691	
	weblogic.servlet.internal.ServletRequestImpl.run() line: 1651	
	weblogic.servlet.provider.ContainerSupportProviderImpl$WlsRequestExecutor.run() line: 270	
	weblogic.invocation.ComponentInvocationContextManager._runAs(weblogic.invocation.ComponentInvocationContext, java.lang.Runnable) line: 348	
	weblogic.invocation.ComponentInvocationContextManager.runAs(java.security.Principal, weblogic.invocation.ComponentInvocationContext, java.lang.Runnable) line: 333	
	weblogic.work.LivePartitionUtility.doRunWorkUnderContext(java.lang.Runnable, weblogic.invocation.ComponentInvocationContext) line: 54	
	weblogic.work.PartitionUtility.runWorkUnderContext(java.lang.Runnable, weblogic.invocation.ComponentInvocationContext) line: 41	
	weblogic.work.ServerWorkManagerImpl(weblogic.work.SelfTuningWorkManagerImpl).runWorkUnderContext(weblogic.work.ExecuteThread, weblogic.work.WorkAdapter) line: 640	
	weblogic.work.ExecuteThread.execute(weblogic.work.WorkAdapter) line: 406	
	weblogic.work.ExecuteThread.run() line: 346	

{panel}



Now on Wildfly, the stack traces also follow the theory above. So the order by which our break points get hit is reversed.
1. The first break point that gets hit is the break point we put on success obversvation.
2. The second break point that gets hit is when eclipselink is doing the RepeatbleWriteUnit of work merge to parent.
3. I also add third stack trace that corresponds to the same break point on eclipselink getting hit a second time. This happens because we have two JTA transactions that commit. The original business transaction and the observer on success transaction.

So what went wrong is that our break point on point (2) was not hit before the break point on the success obverver.
Finally, since in these break points the arjuna code seems to be delegating to the container the respnsability of handling on succes:
com.arjuna.ats.internal.jta.resources.arjunacore.SynchronizationImple.afterCompletion(int) line: 96	

we can imagine that this code here is a generic piece of code invoking some command like invoation or  subscriber like notification , and the problem would be the order by which the subscribers/commands are ordered in the loop.

Here are the stack traces for wildfly:
{panel}
WILDFLY:
-- -------------------------
-- MOMENT 1: clicking on the web page to trigger event B
-- -------------------------


-- -------------------------
-- MOMENT 2: The break point on the observers event gets hit (we have a bug our merge breakpoint should have been hit)
-- -------------------------
2. Then Wildfly calls the on success observer
Thread [default task-12] (Suspended (breakpoint at line 55 in wildfly.bug.onsuccess.facade.SomeEntityChangeEventObserverBFacade))	
	owns: java.lang.Object  (id=511)	
	wildfly.bug.onsuccess.facade.SomeEntityChangeEventObserverBFacade.observeEvent(wildfly.bug.onsuccess.event.SomeEntityChangeBEvent) line: 55	
	sun.reflect.NativeMethodAccessorImpl.invoke0(java.lang.reflect.Method, java.lang.Object, java.lang.Object[]) line: not available [native method]	
	sun.reflect.NativeMethodAccessorImpl.invoke(java.lang.Object, java.lang.Object[]) line: 62	
	sun.reflect.DelegatingMethodAccessorImpl.invoke(java.lang.Object, java.lang.Object[]) line: 43	
	java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object...) line: 498	
	org.jboss.as.ee.component.ManagedReferenceMethodInterceptor.processInvocation(org.jboss.invocation.InterceptorContext) line: 52	
	org.jboss.invocation.InterceptorContext.proceed() line: 340	
	org.jboss.invocation.InterceptorContext$Invocation.proceed() line: 437	
	org.jboss.as.weld.ejb.Jsr299BindingsInterceptor.delegateInterception(javax.interceptor.InvocationContext, javax.enterprise.inject.spi.InterceptionType, java.util.List<javax.enterprise.inject.spi.Interceptor<?>>, org.jboss.as.weld.ejb.WeldInterceptorInstances) line: 70	
	org.jboss.as.weld.ejb.Jsr299BindingsInterceptor.doMethodInterception(javax.interceptor.InvocationContext, javax.enterprise.inject.spi.InterceptionType, org.jboss.as.weld.ejb.WeldInterceptorInstances, org.jboss.weld.ejb.spi.InterceptorBindings) line: 80	
	org.jboss.as.weld.ejb.Jsr299BindingsInterceptor.processInvocation(org.jboss.invocation.InterceptorContext) line: 93	
	org.jboss.as.ee.component.interceptors.UserInterceptorFactory$1.processInvocation(org.jboss.invocation.InterceptorContext) line: 63	
	org.jboss.invocation.InterceptorContext.proceed() line: 340	
	org.jboss.invocation.InterceptorContext$Invocation.proceed() line: 437	
	inteceptor.FacadeInterceptor(inteceptor.GenericLoggingInterceptor).aroundInvoke(javax.interceptor.InvocationContext) line: 68	
	sun.reflect.NativeMethodAccessorImpl.invoke0(java.lang.reflect.Method, java.lang.Object, java.lang.Object[]) line: not available [native method]	
	sun.reflect.NativeMethodAccessorImpl.invoke(java.lang.Object, java.lang.Object[]) line: 62	
	sun.reflect.DelegatingMethodAccessorImpl.invoke(java.lang.Object, java.lang.Object[]) line: 43	
	java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object...) line: 498	
	org.jboss.as.ee.component.ManagedReferenceLifecycleMethodInterceptor.processInvocation(org.jboss.invocation.InterceptorContext) line: 89	
	org.jboss.invocation.InterceptorContext.proceed() line: 340	
	org.jboss.as.ejb3.component.invocationmetrics.ExecutionTimeInterceptor.processInvocation(org.jboss.invocation.InterceptorContext) line: 43	
	org.jboss.invocation.InterceptorContext.proceed() line: 340	
	org.jboss.invocation.InterceptorContext$Invocation.proceed() line: 437	
	org.jboss.as.weld.ejb.EjbRequestScopeActivationInterceptor(org.jboss.weld.ejb.AbstractEJBRequestScopeActivationInterceptor).aroundInvoke(javax.interceptor.InvocationContext) line: 64	
	org.jboss.as.weld.ejb.EjbRequestScopeActivationInterceptor.processInvocation(org.jboss.invocation.InterceptorContext) line: 83	
	org.jboss.invocation.InterceptorContext.proceed() line: 340	
	org.jboss.as.ee.concurrent.ConcurrentContextInterceptor.processInvocation(org.jboss.invocation.InterceptorContext) line: 45	
	org.jboss.invocation.InterceptorContext.proceed() line: 340	
	org.jboss.invocation.InitialInterceptor.processInvocation(org.jboss.invocation.InterceptorContext) line: 21	
	org.jboss.invocation.InterceptorContext.proceed() line: 340	
	org.jboss.invocation.ChainedInterceptor.processInvocation(org.jboss.invocation.InterceptorContext) line: 61	
	org.jboss.as.ee.component.interceptors.ComponentDispatcherInterceptor.processInvocation(org.jboss.invocation.InterceptorContext) line: 52	
	org.jboss.invocation.InterceptorContext.proceed() line: 340	
	org.jboss.as.ejb3.component.singleton.SingletonComponentInstanceAssociationInterceptor.processInvocation(org.jboss.invocation.InterceptorContext) line: 53	
	org.jboss.invocation.InterceptorContext.proceed() line: 340	
	org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInOurTx(org.jboss.invocation.InterceptorContext, javax.transaction.TransactionManager, org.jboss.as.ejb3.component.EJBComponent) line: 275	
	org.jboss.as.ejb3.tx.CMTTxInterceptor.requiresNew(org.jboss.invocation.InterceptorContext, org.jboss.as.ejb3.component.EJBComponent, int) line: 344	
	org.jboss.as.ejb3.tx.CMTTxInterceptor.processInvocation(org.jboss.invocation.InterceptorContext) line: 241	
	org.jboss.invocation.InterceptorContext.proceed() line: 340	
	org.jboss.as.ejb3.component.interceptors.CurrentInvocationContextInterceptor.processInvocation(org.jboss.invocation.InterceptorContext) line: 41	
	org.jboss.invocation.InterceptorContext.proceed() line: 340	
	org.jboss.as.ejb3.component.invocationmetrics.WaitTimeInterceptor.processInvocation(org.jboss.invocation.InterceptorContext) line: 43	
	org.jboss.invocation.InterceptorContext.proceed() line: 340	
	org.jboss.as.ejb3.security.SecurityContextInterceptor.processInvocation(org.jboss.invocation.InterceptorContext) line: 100	
	org.jboss.invocation.InterceptorContext.proceed() line: 340	
	org.jboss.invocation.InterceptorContext$Invocation.proceed() line: 437	
	org.jboss.as.ejb3.concurrency.ContainerManagedConcurrencyInterceptor.processInvocation(org.jboss.invocation.InterceptorContext) line: 110	
	org.jboss.invocation.InterceptorContext.proceed() line: 340	
	org.jboss.as.ejb3.component.interceptors.ShutDownInterceptorFactory$1.processInvocation(org.jboss.invocation.InterceptorContext) line: 64	
	org.jboss.invocation.InterceptorContext.proceed() line: 340	
	org.jboss.as.ejb3.component.interceptors.LoggingInterceptor.processInvocation(org.jboss.invocation.InterceptorContext) line: 66	
	org.jboss.invocation.InterceptorContext.proceed() line: 340	
	org.jboss.as.ee.component.NamespaceContextInterceptor.processInvocation(org.jboss.invocation.InterceptorContext) line: 50	
	org.jboss.invocation.InterceptorContext.proceed() line: 340	
	org.jboss.as.ejb3.component.interceptors.AdditionalSetupInterceptor.processInvocation(org.jboss.invocation.InterceptorContext) line: 54	
	org.jboss.invocation.InterceptorContext.proceed() line: 340	
	org.jboss.invocation.ContextClassLoaderInterceptor.processInvocation(org.jboss.invocation.InterceptorContext) line: 64	
	org.jboss.invocation.InterceptorContext.proceed() line: 340	
	org.jboss.invocation.InterceptorContext.run() line: 356	
	org.wildfly.security.manager.WildFlySecurityManager.doChecked(java.security.PrivilegedExceptionAction<T>) line: 636	
	org.jboss.invocation.AccessCheckingInterceptor.processInvocation(org.jboss.invocation.InterceptorContext) line: 61	
	org.jboss.invocation.InterceptorContext.proceed() line: 340	
	org.jboss.invocation.InterceptorContext.run() line: 356	
	org.jboss.invocation.PrivilegedWithCombinerInterceptor.processInvocation(org.jboss.invocation.InterceptorContext) line: 80	
	org.jboss.invocation.InterceptorContext.proceed() line: 340	
	org.jboss.invocation.ChainedInterceptor.processInvocation(org.jboss.invocation.InterceptorContext) line: 61	
	org.jboss.as.ee.component.ViewService$View.invoke(org.jboss.invocation.InterceptorContext) line: 195	
	org.jboss.as.ee.component.ViewDescription$1.processInvocation(org.jboss.invocation.InterceptorContext) line: 185	
	org.jboss.invocation.InterceptorContext.proceed() line: 340	
	org.jboss.invocation.ChainedInterceptor.processInvocation(org.jboss.invocation.InterceptorContext) line: 61	
	org.jboss.as.ee.component.ProxyInvocationHandler.invoke(java.lang.Object, java.lang.reflect.Method, java.lang.Object[]) line: 73	
	wildfly.bug.onsuccess.facade.SomeEntityChangeEventObserverBFacade$$$view12.observeEvent(wildfly.bug.onsuccess.event.SomeEntityChangeBEvent) line: not available	
	sun.reflect.NativeMethodAccessorImpl.invoke0(java.lang.reflect.Method, java.lang.Object, java.lang.Object[]) line: not available [native method]	
	sun.reflect.NativeMethodAccessorImpl.invoke(java.lang.Object, java.lang.Object[]) line: 62	
	sun.reflect.DelegatingMethodAccessorImpl.invoke(java.lang.Object, java.lang.Object[]) line: 43	
	java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object...) line: 498	
	org.jboss.weld.util.reflection.Reflections.invokeAndUnwrap(java.lang.Object, java.lang.reflect.Method, java.lang.Object...) line: 436	
	org.jboss.weld.bean.proxy.EnterpriseBeanProxyMethodHandler<T>.invoke(java.lang.Object, java.lang.reflect.Method, java.lang.reflect.Method, java.lang.Object[]) line: 127	
	org.jboss.weld.bean.proxy.EnterpriseTargetBeanInstance.invoke(java.lang.Object, java.lang.reflect.Method, java.lang.Object...) line: 56	
	org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(java.lang.Object, java.lang.reflect.Method, java.lang.reflect.Method, java.lang.Object[]) line: 100	
	wildfly.bug.onsuccess.facade.SomeEntityChangeEventObserverBFacade$Proxy$_$$_Weld$EnterpriseProxy$.observeEvent(wildfly.bug.onsuccess.event.SomeEntityChangeBEvent) line: not available	
	sun.reflect.NativeMethodAccessorImpl.invoke0(java.lang.reflect.Method, java.lang.Object, java.lang.Object[]) line: not available [native method]	
	sun.reflect.NativeMethodAccessorImpl.invoke(java.lang.Object, java.lang.Object[]) line: 62	
	sun.reflect.DelegatingMethodAccessorImpl.invoke(java.lang.Object, java.lang.Object[]) line: 43	
	java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object...) line: 498	
	org.jboss.weld.injection.VirtualMethodInjectionPoint<T,X>(org.jboss.weld.injection.StaticMethodInjectionPoint<T,X>).invoke(java.lang.Object, java.lang.Object[], java.lang.Class<? extends java.lang.RuntimeException>) line: 88	
	org.jboss.weld.injection.VirtualMethodInjectionPoint<T,X>(org.jboss.weld.injection.StaticMethodInjectionPoint<T,X>).invoke(java.lang.Object, java.lang.Object, org.jboss.weld.manager.BeanManagerImpl, javax.enterprise.context.spi.CreationalContext<?>, java.lang.Class<? extends java.lang.RuntimeException>) line: 78	
	org.jboss.weld.injection.MethodInvocationStrategy$SimpleMethodInvocationStrategy.invoke(java.lang.Object, org.jboss.weld.injection.MethodInjectionPoint<?,?>, T, org.jboss.weld.manager.BeanManagerImpl, javax.enterprise.context.spi.CreationalContext<?>) line: 129	
	org.jboss.weld.event.ObserverMethodImpl<T,X>.sendEvent(T, java.lang.Object, javax.enterprise.context.spi.CreationalContext<?>) line: 309	
	org.jboss.weld.event.ObserverMethodImpl<T,X>.sendEvent(T) line: 287	
	org.jboss.weld.event.ObserverMethodImpl<T,X>.notify(T) line: 265	
	org.jboss.weld.event.DeferredEventNotification$1.execute() line: 69	
	org.jboss.weld.event.DeferredEventNotification$1(org.jboss.weld.event.DeferredEventNotification$RunInRequest).run() line: 101	
	org.jboss.weld.event.DeferredEventNotification<T>.run() line: 75	
	org.jboss.weld.event.TransactionSynchronizedRunnable.afterCompletion(int) line: 54	
	
    
    
    com.arjuna.ats.internal.jta.resources.arjunacore.SynchronizationImple.afterCompletion(int) line: 96	
	com.arjuna.ats.internal.jta.transaction.arjunacore.AtomicAction(com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator).afterCompletion(int, boolean) line: 545	
	com.arjuna.ats.internal.jta.transaction.arjunacore.AtomicAction(com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator).end(boolean) line: 101	
	com.arjuna.ats.internal.jta.transaction.arjunacore.AtomicAction(com.arjuna.ats.arjuna.AtomicAction).commit(boolean) line: 162	
	com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.commitAndDisassociate() line: 1200	
	com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionManagerImple(com.arjuna.ats.internal.jta.transaction.arjunacore.BaseTransaction).commit() line: 126	
	com.arjuna.ats.jbossatx.jta.TransactionManagerDelegate(com.arjuna.ats.jbossatx.BaseTransactionManagerDelegate).commit() line: 89	
	org.jboss.as.ejb3.tx.CMTTxInterceptor.endTransaction(javax.transaction.TransactionManager, javax.transaction.Transaction) line: 91	
	org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInOurTx(org.jboss.invocation.InterceptorContext, javax.transaction.TransactionManager, org.jboss.as.ejb3.component.EJBComponent) line: 279	
	org.jboss.as.ejb3.tx.CMTTxInterceptor.requiresNew(org.jboss.invocation.InterceptorContext, org.jboss.as.ejb3.component.EJBComponent, int) line: 349	
	org.jboss.as.ejb3.tx.CMTTxInterceptor.processInvocation(org.jboss.invocation.InterceptorContext) line: 241	
	org.jboss.invocation.InterceptorContext.proceed() line: 340	
	org.jboss.as.ejb3.component.interceptors.CurrentInvocationContextInterceptor.processInvocation(org.jboss.invocation.InterceptorContext) line: 41	
	org.jboss.invocation.InterceptorContext.proceed() line: 340	
	org.jboss.as.ejb3.component.invocationmetrics.WaitTimeInterceptor.processInvocation(org.jboss.invocation.InterceptorContext) line: 43	
	org.jboss.invocation.InterceptorContext.proceed() line: 340	
	org.jboss.as.ejb3.security.SecurityContextInterceptor.processInvocation(org.jboss.invocation.InterceptorContext) line: 100	
	org.jboss.invocation.InterceptorContext.proceed() line: 340	
	org.jboss.as.ejb3.component.interceptors.ShutDownInterceptorFactory$1.processInvocation(org.jboss.invocation.InterceptorContext) line: 64	
	org.jboss.invocation.InterceptorContext.proceed() line: 340	
	org.jboss.as.ejb3.component.interceptors.LoggingInterceptor.processInvocation(org.jboss.invocation.InterceptorContext) line: 66	
	org.jboss.invocation.InterceptorContext.proceed() line: 340	
	org.jboss.as.ee.component.NamespaceContextInterceptor.processInvocation(org.jboss.invocation.InterceptorContext) line: 50	
	org.jboss.invocation.InterceptorContext.proceed() line: 340	
	org.jboss.as.ejb3.component.interceptors.AdditionalSetupInterceptor.processInvocation(org.jboss.invocation.InterceptorContext) line: 54	
	org.jboss.invocation.InterceptorContext.proceed() line: 340	
	org.jboss.invocation.ContextClassLoaderInterceptor.processInvocation(org.jboss.invocation.InterceptorContext) line: 64	
	org.jboss.invocation.InterceptorContext.proceed() line: 340	
	org.jboss.invocation.InterceptorContext.run() line: 356	
	org.wildfly.security.manager.WildFlySecurityManager.doChecked(java.security.PrivilegedExceptionAction<T>) line: 636	
	org.jboss.invocation.AccessCheckingInterceptor.processInvocation(org.jboss.invocation.InterceptorContext) line: 61	
	org.jboss.invocation.InterceptorContext.proceed() line: 340	
	org.jboss.invocation.InterceptorContext.run() line: 356	
	org.jboss.invocation.PrivilegedWithCombinerInterceptor.processInvocation(org.jboss.invocation.InterceptorContext) line: 80	
	org.jboss.invocation.InterceptorContext.proceed() line: 340	
	org.jboss.invocation.ChainedInterceptor.processInvocation(org.jboss.invocation.InterceptorContext) line: 61	
	org.jboss.as.ee.component.ViewService$View.invoke(org.jboss.invocation.InterceptorContext) line: 195	
	org.jboss.as.ee.component.ViewDescription$1.processInvocation(org.jboss.invocation.InterceptorContext) line: 185	
	org.jboss.invocation.InterceptorContext.proceed() line: 340	
	org.jboss.invocation.ChainedInterceptor.processInvocation(org.jboss.invocation.InterceptorContext) line: 61	
	org.jboss.as.ee.component.ProxyInvocationHandler.invoke(java.lang.Object, java.lang.reflect.Method, java.lang.Object[]) line: 73	
	wildfly.bug.onsuccess.facade.ModifyEntityAndFireEventFacade$$$view1.modifyEntityAndFireEventB() line: not available	
	sun.reflect.NativeMethodAccessorImpl.invoke0(java.lang.reflect.Method, java.lang.Object, java.lang.Object[]) line: not available [native method]	
	sun.reflect.NativeMethodAccessorImpl.invoke(java.lang.Object, java.lang.Object[]) line: 62	
	sun.reflect.DelegatingMethodAccessorImpl.invoke(java.lang.Object, java.lang.Object[]) line: 43	
	java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object...) line: 498	
	org.jboss.weld.util.reflection.Reflections.invokeAndUnwrap(java.lang.Object, java.lang.reflect.Method, java.lang.Object...) line: 436	
	org.jboss.weld.bean.proxy.EnterpriseBeanProxyMethodHandler<T>.invoke(java.lang.Object, java.lang.reflect.Method, java.lang.reflect.Method, java.lang.Object[]) line: 127	
	org.jboss.weld.bean.proxy.InjectionPointPropagatingEnterpriseTargetBeanInstance(org.jboss.weld.bean.proxy.EnterpriseTargetBeanInstance).invoke(java.lang.Object, java.lang.reflect.Method, java.lang.Object...) line: 56	
	org.jboss.weld.bean.proxy.InjectionPointPropagatingEnterpriseTargetBeanInstance.invoke(java.lang.Object, java.lang.reflect.Method, java.lang.Object...) line: 67	
	org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(java.lang.Object, java.lang.reflect.Method, java.lang.reflect.Method, java.lang.Object[]) line: 100	
	wildfly.bug.onsuccess.facade.ModifyEntityAndFireEventFacade$Proxy$_$$_Weld$EnterpriseProxy$.modifyEntityAndFireEventB() line: not available	
	entrypoint.web.SystemTestBean.fireSomeEntityChangeBEvent() line: 70	
	sun.reflect.NativeMethodAccessorImpl.invoke0(java.lang.reflect.Method, java.lang.Object, java.lang.Object[]) line: not available [native method]	
	sun.reflect.NativeMethodAccessorImpl.invoke(java.lang.Object, java.lang.Object[]) line: 62	
	sun.reflect.DelegatingMethodAccessorImpl.invoke(java.lang.Object, java.lang.Object[]) line: 43	
	java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object...) line: 498	
	com.sun.el.util.ReflectionUtil.invokeMethod(javax.el.ELContext, java.lang.reflect.Method, java.lang.Object, java.lang.Object[]) line: 181	
	com.sun.el.parser.AstValue.invoke(com.sun.el.lang.EvaluationContext, java.lang.Class[], java.lang.Object[]) line: 289	
	com.sun.el.MethodExpressionImpl.invoke(javax.el.ELContext, java.lang.Object[]) line: 304	
	org.jboss.weld.el.WeldMethodExpression(org.jboss.weld.util.el.ForwardingMethodExpression).invoke(javax.el.ELContext, java.lang.Object[]) line: 40	
	org.jboss.weld.el.WeldMethodExpression.invoke(javax.el.ELContext, java.lang.Object[]) line: 50	
	org.jboss.weld.el.WeldMethodExpression(org.jboss.weld.util.el.ForwardingMethodExpression).invoke(javax.el.ELContext, java.lang.Object[]) line: 40	
	org.jboss.weld.el.WeldMethodExpression.invoke(javax.el.ELContext, java.lang.Object[]) line: 50	
	javax.faces.event.MethodExpressionActionListener.processAction(javax.faces.event.ActionEvent) line: 149	
	javax.faces.event.ActionEvent.processListener(javax.faces.event.FacesListener) line: 88	
	org.primefaces.component.commandbutton.CommandButton(javax.faces.component.UIComponentBase).broadcast(javax.faces.event.FacesEvent) line: 814	
	org.primefaces.component.commandbutton.CommandButton(javax.faces.component.UICommand).broadcast(javax.faces.event.FacesEvent) line: 300	
	javax.faces.component.UIViewRoot.broadcastEvents(javax.faces.context.FacesContext, javax.faces.event.PhaseId) line: 790	
	javax.faces.component.UIViewRoot.processApplication(javax.faces.context.FacesContext) line: 1282	
	com.sun.faces.lifecycle.InvokeApplicationPhase.execute(javax.faces.context.FacesContext) line: 81	
	com.sun.faces.lifecycle.InvokeApplicationPhase(com.sun.faces.lifecycle.Phase).doPhase(javax.faces.context.FacesContext, javax.faces.lifecycle.Lifecycle, java.util.ListIterator<javax.faces.event.PhaseListener>) line: 101	
	com.sun.faces.lifecycle.LifecycleImpl.execute(javax.faces.context.FacesContext) line: 198	
	org.apache.deltaspike.jsf.impl.listener.request.DeltaSpikeLifecycleWrapper.execute(javax.faces.context.FacesContext) line: 89	
	org.apache.deltaspike.jsf.impl.listener.request.JsfClientWindowAwareLifecycleWrapper(javax.faces.lifecycle.LifecycleWrapper).execute(javax.faces.context.FacesContext) line: 77	
	javax.faces.webapp.FacesServlet.service(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 658	
	io.undertow.servlet.handlers.ServletHandler.handleRequest(io.undertow.server.HttpServerExchange) line: 85	
	io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(io.undertow.server.HttpServerExchange) line: 62	
	io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(io.undertow.server.HttpServerExchange) line: 36	
	org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(io.undertow.server.HttpServerExchange) line: 78	
	io.undertow.server.handlers.PredicateHandler.handleRequest(io.undertow.server.HttpServerExchange) line: 43	
	io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(io.undertow.server.HttpServerExchange) line: 131	
	io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(io.undertow.server.HttpServerExchange) line: 57	
	io.undertow.server.handlers.PredicateHandler.handleRequest(io.undertow.server.HttpServerExchange) line: 43	
	io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler(io.undertow.security.handlers.AbstractConfidentialityHandler).handleRequest(io.undertow.server.HttpServerExchange) line: 46	
	io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(io.undertow.server.HttpServerExchange) line: 64	
	io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(io.undertow.server.HttpServerExchange) line: 60	
	io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(io.undertow.server.HttpServerExchange) line: 77	
	io.undertow.security.handlers.NotificationReceiverHandler.handleRequest(io.undertow.server.HttpServerExchange) line: 50	
	io.undertow.security.handlers.SecurityInitialHandler(io.undertow.security.handlers.AbstractSecurityContextAssociationHandler).handleRequest(io.undertow.server.HttpServerExchange) line: 43	
	io.undertow.server.handlers.PredicateHandler.handleRequest(io.undertow.server.HttpServerExchange) line: 43	
	org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(io.undertow.server.HttpServerExchange) line: 61	
	io.undertow.server.handlers.PredicateHandler.handleRequest(io.undertow.server.HttpServerExchange) line: 43	
	io.undertow.server.handlers.PredicateHandler.handleRequest(io.undertow.server.HttpServerExchange) line: 43	
	io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(io.undertow.server.HttpServerExchange, io.undertow.servlet.handlers.ServletChain, io.undertow.servlet.handlers.ServletRequestContext, javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 284	
	io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(io.undertow.server.HttpServerExchange, io.undertow.servlet.handlers.ServletRequestContext, io.undertow.servlet.handlers.ServletChain, javax.servlet.DispatcherType) line: 263	
	io.undertow.servlet.handlers.ServletInitialHandler.access$000(io.undertow.servlet.handlers.ServletInitialHandler, io.undertow.server.HttpServerExchange, io.undertow.servlet.handlers.ServletRequestContext, io.undertow.servlet.handlers.ServletChain, javax.servlet.DispatcherType) line: 81	
	io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(io.undertow.server.HttpServerExchange) line: 174	
	io.undertow.server.Connectors.executeRootHandler(io.undertow.server.HttpHandler, io.undertow.server.HttpServerExchange) line: 202	
	io.undertow.server.HttpServerExchange$1.run() line: 793	
	org.xnio.XnioWorker$TaskPool(java.util.concurrent.ThreadPoolExecutor).runWorker(java.util.concurrent.ThreadPoolExecutor$Worker) line: 1142	
	java.util.concurrent.ThreadPoolExecutor$Worker.run() line: 617	
	java.lang.Thread.run() line: 745	



-- -------------------------
-- MOMENT 3: The breakpoint on eclipselink gets hit (one of the two JTA transactions is getting merged to the server session cahce)
-- -------------------------
    
    
3. Then Wildfly invokes the mrege changes into parent for one of the two transactions:

Thread [default task-12] (Suspended (breakpoint at line 371 in org.eclipse.persistence.internal.sessions.RepeatableWriteUnitOfWork))	
	owns: java.lang.Object  (id=624)	
	owns: java.lang.Object  (id=511)	
	org.eclipse.persistence.internal.sessions.RepeatableWriteUnitOfWork.mergeChangesIntoParent() line: 371	
	org.eclipse.persistence.internal.sessions.RepeatableWriteUnitOfWork(org.eclipse.persistence.internal.sessions.UnitOfWorkImpl).mergeClonesAfterCompletion() line: 3412	
	org.eclipse.persistence.transaction.JTASynchronizationListener(org.eclipse.persistence.transaction.AbstractSynchronizationListener).afterCompletion(java.lang.Object) line: 217	
	org.eclipse.persistence.transaction.JTASynchronizationListener.afterCompletion(int) line: 79	
	com.arjuna.ats.internal.jta.resources.arjunacore.SynchronizationImple.afterCompletion(int) line: 96	
    
    NOTE:
        Without knowing the code that SynchronizationImple.afterCompletion(int) line: 96	 has
        it would appear that the code might be a FOR loop over some sort afterCompletionSubscriber.
        And the bug would be the order by which the subscribers get executed.
        namely, it would appear that we are invoking the publish after compliton to CDI EJB observers before
        the JTA synchronization to the cache.
    
	com.arjuna.ats.internal.jta.transaction.arjunacore.AtomicAction(com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator).afterCompletion(int, boolean) line: 545	
	com.arjuna.ats.internal.jta.transaction.arjunacore.AtomicAction(com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator).end(boolean) line: 101	
	com.arjuna.ats.internal.jta.transaction.arjunacore.AtomicAction(com.arjuna.ats.arjuna.AtomicAction).commit(boolean) line: 162	
	com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.commitAndDisassociate() line: 1200	
	com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionManagerImple(com.arjuna.ats.internal.jta.transaction.arjunacore.BaseTransaction).commit() line: 126	
	com.arjuna.ats.jbossatx.jta.TransactionManagerDelegate(com.arjuna.ats.jbossatx.BaseTransactionManagerDelegate).commit() line: 89	
	org.jboss.as.ejb3.tx.CMTTxInterceptor.endTransaction(javax.transaction.TransactionManager, javax.transaction.Transaction) line: 91	
	org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInOurTx(org.jboss.invocation.InterceptorContext, javax.transaction.TransactionManager, org.jboss.as.ejb3.component.EJBComponent) line: 279	
	org.jboss.as.ejb3.tx.CMTTxInterceptor.requiresNew(org.jboss.invocation.InterceptorContext, org.jboss.as.ejb3.component.EJBComponent, int) line: 344	
	org.jboss.as.ejb3.tx.CMTTxInterceptor.processInvocation(org.jboss.invocation.InterceptorContext) line: 241	
	org.jboss.invocation.InterceptorContext.proceed() line: 340	
	org.jboss.as.ejb3.component.interceptors.CurrentInvocationContextInterceptor.processInvocation(org.jboss.invocation.InterceptorContext) line: 41	
	org.jboss.invocation.InterceptorContext.proceed() line: 340	
	org.jboss.as.ejb3.component.invocationmetrics.WaitTimeInterceptor.processInvocation(org.jboss.invocation.InterceptorContext) line: 43	
	org.jboss.invocation.InterceptorContext.proceed() line: 340	
	org.jboss.as.ejb3.security.SecurityContextInterceptor.processInvocation(org.jboss.invocation.InterceptorContext) line: 100	
	org.jboss.invocation.InterceptorContext.proceed() line: 340	
	org.jboss.invocation.InterceptorContext$Invocation.proceed() line: 437	
	org.jboss.as.ejb3.concurrency.ContainerManagedConcurrencyInterceptor.processInvocation(org.jboss.invocation.InterceptorContext) line: 110	
	org.jboss.invocation.InterceptorContext.proceed() line: 340	
	org.jboss.as.ejb3.component.interceptors.ShutDownInterceptorFactory$1.processInvocation(org.jboss.invocation.InterceptorContext) line: 64	
	org.jboss.invocation.InterceptorContext.proceed() line: 340	
	org.jboss.as.ejb3.component.interceptors.LoggingInterceptor.processInvocation(org.jboss.invocation.InterceptorContext) line: 66	
	org.jboss.invocation.InterceptorContext.proceed() line: 340	
	org.jboss.as.ee.component.NamespaceContextInterceptor.processInvocation(org.jboss.invocation.InterceptorContext) line: 50	
	org.jboss.invocation.InterceptorContext.proceed() line: 340	
	org.jboss.as.ejb3.component.interceptors.AdditionalSetupInterceptor.processInvocation(org.jboss.invocation.InterceptorContext) line: 54	
	org.jboss.invocation.InterceptorContext.proceed() line: 340	
	org.jboss.invocation.ContextClassLoaderInterceptor.processInvocation(org.jboss.invocation.InterceptorContext) line: 64	
	org.jboss.invocation.InterceptorContext.proceed() line: 340	
	org.jboss.invocation.InterceptorContext.run() line: 356	
	org.wildfly.security.manager.WildFlySecurityManager.doChecked(java.security.PrivilegedExceptionAction<T>) line: 636	
	org.jboss.invocation.AccessCheckingInterceptor.processInvocation(org.jboss.invocation.InterceptorContext) line: 61	
	org.jboss.invocation.InterceptorContext.proceed() line: 340	
	org.jboss.invocation.InterceptorContext.run() line: 356	
	org.jboss.invocation.PrivilegedWithCombinerInterceptor.processInvocation(org.jboss.invocation.InterceptorContext) line: 80	
	org.jboss.invocation.InterceptorContext.proceed() line: 340	
	org.jboss.invocation.ChainedInterceptor.processInvocation(org.jboss.invocation.InterceptorContext) line: 61	
	org.jboss.as.ee.component.ViewService$View.invoke(org.jboss.invocation.InterceptorContext) line: 195	
	org.jboss.as.ee.component.ViewDescription$1.processInvocation(org.jboss.invocation.InterceptorContext) line: 185	
	org.jboss.invocation.InterceptorContext.proceed() line: 340	
	org.jboss.invocation.ChainedInterceptor.processInvocation(org.jboss.invocation.InterceptorContext) line: 61	
	org.jboss.as.ee.component.ProxyInvocationHandler.invoke(java.lang.Object, java.lang.reflect.Method, java.lang.Object[]) line: 73	
	wildfly.bug.onsuccess.facade.SomeEntityChangeEventObserverBFacade$$$view12.observeEvent(wildfly.bug.onsuccess.event.SomeEntityChangeBEvent) line: not available	
	sun.reflect.NativeMethodAccessorImpl.invoke0(java.lang.reflect.Method, java.lang.Object, java.lang.Object[]) line: not available [native method]	
	sun.reflect.NativeMethodAccessorImpl.invoke(java.lang.Object, java.lang.Object[]) line: 62	
	sun.reflect.DelegatingMethodAccessorImpl.invoke(java.lang.Object, java.lang.Object[]) line: 43	
	java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object...) line: 498	
	org.jboss.weld.util.reflection.Reflections.invokeAndUnwrap(java.lang.Object, java.lang.reflect.Method, java.lang.Object...) line: 436	
	org.jboss.weld.bean.proxy.EnterpriseBeanProxyMethodHandler<T>.invoke(java.lang.Object, java.lang.reflect.Method, java.lang.reflect.Method, java.lang.Object[]) line: 127	
	org.jboss.weld.bean.proxy.EnterpriseTargetBeanInstance.invoke(java.lang.Object, java.lang.reflect.Method, java.lang.Object...) line: 56	
	org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(java.lang.Object, java.lang.reflect.Method, java.lang.reflect.Method, java.lang.Object[]) line: 100	
	wildfly.bug.onsuccess.facade.SomeEntityChangeEventObserverBFacade$Proxy$_$$_Weld$EnterpriseProxy$.observeEvent(wildfly.bug.onsuccess.event.SomeEntityChangeBEvent) line: not available	
	sun.reflect.NativeMethodAccessorImpl.invoke0(java.lang.reflect.Method, java.lang.Object, java.lang.Object[]) line: not available [native method]	
	sun.reflect.NativeMethodAccessorImpl.invoke(java.lang.Object, java.lang.Object[]) line: 62	
	sun.reflect.DelegatingMethodAccessorImpl.invoke(java.lang.Object, java.lang.Object[]) line: 43	
	java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object...) line: 498	
	org.jboss.weld.injection.VirtualMethodInjectionPoint<T,X>(org.jboss.weld.injection.StaticMethodInjectionPoint<T,X>).invoke(java.lang.Object, java.lang.Object[], java.lang.Class<? extends java.lang.RuntimeException>) line: 88	
	org.jboss.weld.injection.VirtualMethodInjectionPoint<T,X>(org.jboss.weld.injection.StaticMethodInjectionPoint<T,X>).invoke(java.lang.Object, java.lang.Object, org.jboss.weld.manager.BeanManagerImpl, javax.enterprise.context.spi.CreationalContext<?>, java.lang.Class<? extends java.lang.RuntimeException>) line: 78	
	org.jboss.weld.injection.MethodInvocationStrategy$SimpleMethodInvocationStrategy.invoke(java.lang.Object, org.jboss.weld.injection.MethodInjectionPoint<?,?>, T, org.jboss.weld.manager.BeanManagerImpl, javax.enterprise.context.spi.CreationalContext<?>) line: 129	
	org.jboss.weld.event.ObserverMethodImpl<T,X>.sendEvent(T, java.lang.Object, javax.enterprise.context.spi.CreationalContext<?>) line: 309	
	org.jboss.weld.event.ObserverMethodImpl<T,X>.sendEvent(T) line: 287	
	org.jboss.weld.event.ObserverMethodImpl<T,X>.notify(T) line: 265	
	org.jboss.weld.event.DeferredEventNotification$1.execute() line: 69	
	org.jboss.weld.event.DeferredEventNotification$1(org.jboss.weld.event.DeferredEventNotification$RunInRequest).run() line: 101	
	org.jboss.weld.event.DeferredEventNotification<T>.run() line: 75	
	org.jboss.weld.event.TransactionSynchronizedRunnable.afterCompletion(int) line: 54	
	com.arjuna.ats.internal.jta.resources.arjunacore.SynchronizationImple.afterCompletion(int) line: 96	
	com.arjuna.ats.internal.jta.transaction.arjunacore.AtomicAction(com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator).afterCompletion(int, boolean) line: 545	
	com.arjuna.ats.internal.jta.transaction.arjunacore.AtomicAction(com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator).end(boolean) line: 101	
	com.arjuna.ats.internal.jta.transaction.arjunacore.AtomicAction(com.arjuna.ats.arjuna.AtomicAction).commit(boolean) line: 162	
	com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.commitAndDisassociate() line: 1200	
	com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionManagerImple(com.arjuna.ats.internal.jta.transaction.arjunacore.BaseTransaction).commit() line: 126	
	com.arjuna.ats.jbossatx.jta.TransactionManagerDelegate(com.arjuna.ats.jbossatx.BaseTransactionManagerDelegate).commit() line: 89	
	org.jboss.as.ejb3.tx.CMTTxInterceptor.endTransaction(javax.transaction.TransactionManager, javax.transaction.Transaction) line: 91	
	org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInOurTx(org.jboss.invocation.InterceptorContext, javax.transaction.TransactionManager, org.jboss.as.ejb3.component.EJBComponent) line: 279	
	org.jboss.as.ejb3.tx.CMTTxInterceptor.requiresNew(org.jboss.invocation.InterceptorContext, org.jboss.as.ejb3.component.EJBComponent, int) line: 349	
	org.jboss.as.ejb3.tx.CMTTxInterceptor.processInvocation(org.jboss.invocation.InterceptorContext) line: 241	
	org.jboss.invocation.InterceptorContext.proceed() line: 340	
	org.jboss.as.ejb3.component.interceptors.CurrentInvocationContextInterceptor.processInvocation(org.jboss.invocation.InterceptorContext) line: 41	
	org.jboss.invocation.InterceptorContext.proceed() line: 340	
	org.jboss.as.ejb3.component.invocationmetrics.WaitTimeInterceptor.processInvocation(org.jboss.invocation.InterceptorContext) line: 43	
	org.jboss.invocation.InterceptorContext.proceed() line: 340	
	org.jboss.as.ejb3.security.SecurityContextInterceptor.processInvocation(org.jboss.invocation.InterceptorContext) line: 100	
	org.jboss.invocation.InterceptorContext.proceed() line: 340	
	org.jboss.as.ejb3.component.interceptors.ShutDownInterceptorFactory$1.processInvocation(org.jboss.invocation.InterceptorContext) line: 64	
	org.jboss.invocation.InterceptorContext.proceed() line: 340	
	org.jboss.as.ejb3.component.interceptors.LoggingInterceptor.processInvocation(org.jboss.invocation.InterceptorContext) line: 66	
	org.jboss.invocation.InterceptorContext.proceed() line: 340	
	org.jboss.as.ee.component.NamespaceContextInterceptor.processInvocation(org.jboss.invocation.InterceptorContext) line: 50	
	org.jboss.invocation.InterceptorContext.proceed() line: 340	
	org.jboss.as.ejb3.component.interceptors.AdditionalSetupInterceptor.processInvocation(org.jboss.invocation.InterceptorContext) line: 54	
	org.jboss.invocation.InterceptorContext.proceed() line: 340	
	org.jboss.invocation.ContextClassLoaderInterceptor.processInvocation(org.jboss.invocation.InterceptorContext) line: 64	
	org.jboss.invocation.InterceptorContext.proceed() line: 340	
	org.jboss.invocation.InterceptorContext.run() line: 356	
	org.wildfly.security.manager.WildFlySecurityManager.doChecked(java.security.PrivilegedExceptionAction<T>) line: 636	
	org.jboss.invocation.AccessCheckingInterceptor.processInvocation(org.jboss.invocation.InterceptorContext) line: 61	
	org.jboss.invocation.InterceptorContext.proceed() line: 340	
	org.jboss.invocation.InterceptorContext.run() line: 356	
	org.jboss.invocation.PrivilegedWithCombinerInterceptor.processInvocation(org.jboss.invocation.InterceptorContext) line: 80	
	org.jboss.invocation.InterceptorContext.proceed() line: 340	
	org.jboss.invocation.ChainedInterceptor.processInvocation(org.jboss.invocation.InterceptorContext) line: 61	
	org.jboss.as.ee.component.ViewService$View.invoke(org.jboss.invocation.InterceptorContext) line: 195	
	org.jboss.as.ee.component.ViewDescription$1.processInvocation(org.jboss.invocation.InterceptorContext) line: 185	
	org.jboss.invocation.InterceptorContext.proceed() line: 340	
	org.jboss.invocation.ChainedInterceptor.processInvocation(org.jboss.invocation.InterceptorContext) line: 61	
	org.jboss.as.ee.component.ProxyInvocationHandler.invoke(java.lang.Object, java.lang.reflect.Method, java.lang.Object[]) line: 73	
	wildfly.bug.onsuccess.facade.ModifyEntityAndFireEventFacade$$$view1.modifyEntityAndFireEventB() line: not available	
	sun.reflect.NativeMethodAccessorImpl.invoke0(java.lang.reflect.Method, java.lang.Object, java.lang.Object[]) line: not available [native method]	
	sun.reflect.NativeMethodAccessorImpl.invoke(java.lang.Object, java.lang.Object[]) line: 62	
	sun.reflect.DelegatingMethodAccessorImpl.invoke(java.lang.Object, java.lang.Object[]) line: 43	
	java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object...) line: 498	
	org.jboss.weld.util.reflection.Reflections.invokeAndUnwrap(java.lang.Object, java.lang.reflect.Method, java.lang.Object...) line: 436	
	org.jboss.weld.bean.proxy.EnterpriseBeanProxyMethodHandler<T>.invoke(java.lang.Object, java.lang.reflect.Method, java.lang.reflect.Method, java.lang.Object[]) line: 127	
	org.jboss.weld.bean.proxy.InjectionPointPropagatingEnterpriseTargetBeanInstance(org.jboss.weld.bean.proxy.EnterpriseTargetBeanInstance).invoke(java.lang.Object, java.lang.reflect.Method, java.lang.Object...) line: 56	
	org.jboss.weld.bean.proxy.InjectionPointPropagatingEnterpriseTargetBeanInstance.invoke(java.lang.Object, java.lang.reflect.Method, java.lang.Object...) line: 67	
	org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(java.lang.Object, java.lang.reflect.Method, java.lang.reflect.Method, java.lang.Object[]) line: 100	
	wildfly.bug.onsuccess.facade.ModifyEntityAndFireEventFacade$Proxy$_$$_Weld$EnterpriseProxy$.modifyEntityAndFireEventB() line: not available	
	entrypoint.web.SystemTestBean.fireSomeEntityChangeBEvent() line: 70	
	sun.reflect.NativeMethodAccessorImpl.invoke0(java.lang.reflect.Method, java.lang.Object, java.lang.Object[]) line: not available [native method]	
	sun.reflect.NativeMethodAccessorImpl.invoke(java.lang.Object, java.lang.Object[]) line: 62	
	sun.reflect.DelegatingMethodAccessorImpl.invoke(java.lang.Object, java.lang.Object[]) line: 43	
	java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object...) line: 498	
	com.sun.el.util.ReflectionUtil.invokeMethod(javax.el.ELContext, java.lang.reflect.Method, java.lang.Object, java.lang.Object[]) line: 181	
	com.sun.el.parser.AstValue.invoke(com.sun.el.lang.EvaluationContext, java.lang.Class[], java.lang.Object[]) line: 289	
	com.sun.el.MethodExpressionImpl.invoke(javax.el.ELContext, java.lang.Object[]) line: 304	
	org.jboss.weld.el.WeldMethodExpression(org.jboss.weld.util.el.ForwardingMethodExpression).invoke(javax.el.ELContext, java.lang.Object[]) line: 40	
	org.jboss.weld.el.WeldMethodExpression.invoke(javax.el.ELContext, java.lang.Object[]) line: 50	
	org.jboss.weld.el.WeldMethodExpression(org.jboss.weld.util.el.ForwardingMethodExpression).invoke(javax.el.ELContext, java.lang.Object[]) line: 40	
	org.jboss.weld.el.WeldMethodExpression.invoke(javax.el.ELContext, java.lang.Object[]) line: 50	
	javax.faces.event.MethodExpressionActionListener.processAction(javax.faces.event.ActionEvent) line: 149	
	javax.faces.event.ActionEvent.processListener(javax.faces.event.FacesListener) line: 88	
	org.primefaces.component.commandbutton.CommandButton(javax.faces.component.UIComponentBase).broadcast(javax.faces.event.FacesEvent) line: 814	
	org.primefaces.component.commandbutton.CommandButton(javax.faces.component.UICommand).broadcast(javax.faces.event.FacesEvent) line: 300	
	javax.faces.component.UIViewRoot.broadcastEvents(javax.faces.context.FacesContext, javax.faces.event.PhaseId) line: 790	
	javax.faces.component.UIViewRoot.processApplication(javax.faces.context.FacesContext) line: 1282	
	com.sun.faces.lifecycle.InvokeApplicationPhase.execute(javax.faces.context.FacesContext) line: 81	
	com.sun.faces.lifecycle.InvokeApplicationPhase(com.sun.faces.lifecycle.Phase).doPhase(javax.faces.context.FacesContext, javax.faces.lifecycle.Lifecycle, java.util.ListIterator<javax.faces.event.PhaseListener>) line: 101	
	com.sun.faces.lifecycle.LifecycleImpl.execute(javax.faces.context.FacesContext) line: 198	
	org.apache.deltaspike.jsf.impl.listener.request.DeltaSpikeLifecycleWrapper.execute(javax.faces.context.FacesContext) line: 89	
	org.apache.deltaspike.jsf.impl.listener.request.JsfClientWindowAwareLifecycleWrapper(javax.faces.lifecycle.LifecycleWrapper).execute(javax.faces.context.FacesContext) line: 77	
	javax.faces.webapp.FacesServlet.service(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 658	
	io.undertow.servlet.handlers.ServletHandler.handleRequest(io.undertow.server.HttpServerExchange) line: 85	
	io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(io.undertow.server.HttpServerExchange) line: 62	
	io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(io.undertow.server.HttpServerExchange) line: 36	
	org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(io.undertow.server.HttpServerExchange) line: 78	
	io.undertow.server.handlers.PredicateHandler.handleRequest(io.undertow.server.HttpServerExchange) line: 43	
	io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(io.undertow.server.HttpServerExchange) line: 131	
	io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(io.undertow.server.HttpServerExchange) line: 57	
	io.undertow.server.handlers.PredicateHandler.handleRequest(io.undertow.server.HttpServerExchange) line: 43	
	io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler(io.undertow.security.handlers.AbstractConfidentialityHandler).handleRequest(io.undertow.server.HttpServerExchange) line: 46	
	io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(io.undertow.server.HttpServerExchange) line: 64	
	io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(io.undertow.server.HttpServerExchange) line: 60	
	io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(io.undertow.server.HttpServerExchange) line: 77	
	io.undertow.security.handlers.NotificationReceiverHandler.handleRequest(io.undertow.server.HttpServerExchange) line: 50	
	io.undertow.security.handlers.SecurityInitialHandler(io.undertow.security.handlers.AbstractSecurityContextAssociationHandler).handleRequest(io.undertow.server.HttpServerExchange) line: 43	
	io.undertow.server.handlers.PredicateHandler.handleRequest(io.undertow.server.HttpServerExchange) line: 43	
	org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(io.undertow.server.HttpServerExchange) line: 61	
	io.undertow.server.handlers.PredicateHandler.handleRequest(io.undertow.server.HttpServerExchange) line: 43	
	io.undertow.server.handlers.PredicateHandler.handleRequest(io.undertow.server.HttpServerExchange) line: 43	
	io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(io.undertow.server.HttpServerExchange, io.undertow.servlet.handlers.ServletChain, io.undertow.servlet.handlers.ServletRequestContext, javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 284	
	io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(io.undertow.server.HttpServerExchange, io.undertow.servlet.handlers.ServletRequestContext, io.undertow.servlet.handlers.ServletChain, javax.servlet.DispatcherType) line: 263	
	io.undertow.servlet.handlers.ServletInitialHandler.access$000(io.undertow.servlet.handlers.ServletInitialHandler, io.undertow.server.HttpServerExchange, io.undertow.servlet.handlers.ServletRequestContext, io.undertow.servlet.handlers.ServletChain, javax.servlet.DispatcherType) line: 81	
	io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(io.undertow.server.HttpServerExchange) line: 174	
	io.undertow.server.Connectors.executeRootHandler(io.undertow.server.HttpHandler, io.undertow.server.HttpServerExchange) line: 202	
	io.undertow.server.HttpServerExchange$1.run() line: 793	
	org.xnio.XnioWorker$TaskPool(java.util.concurrent.ThreadPoolExecutor).runWorker(java.util.concurrent.ThreadPoolExecutor$Worker) line: 1142	
	java.util.concurrent.ThreadPoolExecutor$Worker.run() line: 617	
	java.lang.Thread.run() line: 745	

    
    
4. Finally it merges changes into parent for the second transaction

Thread [default task-12] (Suspended (breakpoint at line 371 in org.eclipse.persistence.internal.sessions.RepeatableWriteUnitOfWork))	
	owns: java.lang.Object  (id=511)	
	org.eclipse.persistence.internal.sessions.RepeatableWriteUnitOfWork.mergeChangesIntoParent() line: 371	
	org.eclipse.persistence.internal.sessions.RepeatableWriteUnitOfWork(org.eclipse.persistence.internal.sessions.UnitOfWorkImpl).mergeClonesAfterCompletion() line: 3412	
	org.eclipse.persistence.transaction.JTASynchronizationListener(org.eclipse.persistence.transaction.AbstractSynchronizationListener).afterCompletion(java.lang.Object) line: 217	
	org.eclipse.persistence.transaction.JTASynchronizationListener.afterCompletion(int) line: 79	
	com.arjuna.ats.internal.jta.resources.arjunacore.SynchronizationImple.afterCompletion(int) line: 96	
	com.arjuna.ats.internal.jta.transaction.arjunacore.AtomicAction(com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator).afterCompletion(int, boolean) line: 545	
	com.arjuna.ats.internal.jta.transaction.arjunacore.AtomicAction(com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator).end(boolean) line: 101	
	com.arjuna.ats.internal.jta.transaction.arjunacore.AtomicAction(com.arjuna.ats.arjuna.AtomicAction).commit(boolean) line: 162	
	com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.commitAndDisassociate() line: 1200	
	com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionManagerImple(com.arjuna.ats.internal.jta.transaction.arjunacore.BaseTransaction).commit() line: 126	
	com.arjuna.ats.jbossatx.jta.TransactionManagerDelegate(com.arjuna.ats.jbossatx.BaseTransactionManagerDelegate).commit() line: 89	
	org.jboss.as.ejb3.tx.CMTTxInterceptor.endTransaction(javax.transaction.TransactionManager, javax.transaction.Transaction) line: 91	
	org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInOurTx(org.jboss.invocation.InterceptorContext, javax.transaction.TransactionManager, org.jboss.as.ejb3.component.EJBComponent) line: 279	
	org.jboss.as.ejb3.tx.CMTTxInterceptor.requiresNew(org.jboss.invocation.InterceptorContext, org.jboss.as.ejb3.component.EJBComponent, int) line: 349	
	org.jboss.as.ejb3.tx.CMTTxInterceptor.processInvocation(org.jboss.invocation.InterceptorContext) line: 241	
	org.jboss.invocation.InterceptorContext.proceed() line: 340	
	org.jboss.as.ejb3.component.interceptors.CurrentInvocationContextInterceptor.processInvocation(org.jboss.invocation.InterceptorContext) line: 41	
	org.jboss.invocation.InterceptorContext.proceed() line: 340	
	org.jboss.as.ejb3.component.invocationmetrics.WaitTimeInterceptor.processInvocation(org.jboss.invocation.InterceptorContext) line: 43	
	org.jboss.invocation.InterceptorContext.proceed() line: 340	
	org.jboss.as.ejb3.security.SecurityContextInterceptor.processInvocation(org.jboss.invocation.InterceptorContext) line: 100	
	org.jboss.invocation.InterceptorContext.proceed() line: 340	
	org.jboss.as.ejb3.component.interceptors.ShutDownInterceptorFactory$1.processInvocation(org.jboss.invocation.InterceptorContext) line: 64	
	org.jboss.invocation.InterceptorContext.proceed() line: 340	
	org.jboss.as.ejb3.component.interceptors.LoggingInterceptor.processInvocation(org.jboss.invocation.InterceptorContext) line: 66	
	org.jboss.invocation.InterceptorContext.proceed() line: 340	
	org.jboss.as.ee.component.NamespaceContextInterceptor.processInvocation(org.jboss.invocation.InterceptorContext) line: 50	
	org.jboss.invocation.InterceptorContext.proceed() line: 340	
	org.jboss.as.ejb3.component.interceptors.AdditionalSetupInterceptor.processInvocation(org.jboss.invocation.InterceptorContext) line: 54	
	org.jboss.invocation.InterceptorContext.proceed() line: 340	
	org.jboss.invocation.ContextClassLoaderInterceptor.processInvocation(org.jboss.invocation.InterceptorContext) line: 64	
	org.jboss.invocation.InterceptorContext.proceed() line: 340	
	org.jboss.invocation.InterceptorContext.run() line: 356	
	org.wildfly.security.manager.WildFlySecurityManager.doChecked(java.security.PrivilegedExceptionAction<T>) line: 636	
	org.jboss.invocation.AccessCheckingInterceptor.processInvocation(org.jboss.invocation.InterceptorContext) line: 61	
	org.jboss.invocation.InterceptorContext.proceed() line: 340	
	org.jboss.invocation.InterceptorContext.run() line: 356	
	org.jboss.invocation.PrivilegedWithCombinerInterceptor.processInvocation(org.jboss.invocation.InterceptorContext) line: 80	
	org.jboss.invocation.InterceptorContext.proceed() line: 340	
	org.jboss.invocation.ChainedInterceptor.processInvocation(org.jboss.invocation.InterceptorContext) line: 61	
	org.jboss.as.ee.component.ViewService$View.invoke(org.jboss.invocation.InterceptorContext) line: 195	
	org.jboss.as.ee.component.ViewDescription$1.processInvocation(org.jboss.invocation.InterceptorContext) line: 185	
	org.jboss.invocation.InterceptorContext.proceed() line: 340	
	org.jboss.invocation.ChainedInterceptor.processInvocation(org.jboss.invocation.InterceptorContext) line: 61	
	org.jboss.as.ee.component.ProxyInvocationHandler.invoke(java.lang.Object, java.lang.reflect.Method, java.lang.Object[]) line: 73	
	wildfly.bug.onsuccess.facade.ModifyEntityAndFireEventFacade$$$view1.modifyEntityAndFireEventB() line: not available	
	sun.reflect.NativeMethodAccessorImpl.invoke0(java.lang.reflect.Method, java.lang.Object, java.lang.Object[]) line: not available [native method]	
	sun.reflect.NativeMethodAccessorImpl.invoke(java.lang.Object, java.lang.Object[]) line: 62	
	sun.reflect.DelegatingMethodAccessorImpl.invoke(java.lang.Object, java.lang.Object[]) line: 43	
	java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object...) line: 498	
	org.jboss.weld.util.reflection.Reflections.invokeAndUnwrap(java.lang.Object, java.lang.reflect.Method, java.lang.Object...) line: 436	
	org.jboss.weld.bean.proxy.EnterpriseBeanProxyMethodHandler<T>.invoke(java.lang.Object, java.lang.reflect.Method, java.lang.reflect.Method, java.lang.Object[]) line: 127	
	org.jboss.weld.bean.proxy.InjectionPointPropagatingEnterpriseTargetBeanInstance(org.jboss.weld.bean.proxy.EnterpriseTargetBeanInstance).invoke(java.lang.Object, java.lang.reflect.Method, java.lang.Object...) line: 56	
	org.jboss.weld.bean.proxy.InjectionPointPropagatingEnterpriseTargetBeanInstance.invoke(java.lang.Object, java.lang.reflect.Method, java.lang.Object...) line: 67	
	org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(java.lang.Object, java.lang.reflect.Method, java.lang.reflect.Method, java.lang.Object[]) line: 100	
	wildfly.bug.onsuccess.facade.ModifyEntityAndFireEventFacade$Proxy$_$$_Weld$EnterpriseProxy$.modifyEntityAndFireEventB() line: not available	
	entrypoint.web.SystemTestBean.fireSomeEntityChangeBEvent() line: 70	
	sun.reflect.NativeMethodAccessorImpl.invoke0(java.lang.reflect.Method, java.lang.Object, java.lang.Object[]) line: not available [native method]	
	sun.reflect.NativeMethodAccessorImpl.invoke(java.lang.Object, java.lang.Object[]) line: 62	
	sun.reflect.DelegatingMethodAccessorImpl.invoke(java.lang.Object, java.lang.Object[]) line: 43	
	java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object...) line: 498	
	com.sun.el.util.ReflectionUtil.invokeMethod(javax.el.ELContext, java.lang.reflect.Method, java.lang.Object, java.lang.Object[]) line: 181	
	com.sun.el.parser.AstValue.invoke(com.sun.el.lang.EvaluationContext, java.lang.Class[], java.lang.Object[]) line: 289	
	com.sun.el.MethodExpressionImpl.invoke(javax.el.ELContext, java.lang.Object[]) line: 304	
	org.jboss.weld.el.WeldMethodExpression(org.jboss.weld.util.el.ForwardingMethodExpression).invoke(javax.el.ELContext, java.lang.Object[]) line: 40	
	org.jboss.weld.el.WeldMethodExpression.invoke(javax.el.ELContext, java.lang.Object[]) line: 50	
	org.jboss.weld.el.WeldMethodExpression(org.jboss.weld.util.el.ForwardingMethodExpression).invoke(javax.el.ELContext, java.lang.Object[]) line: 40	
	org.jboss.weld.el.WeldMethodExpression.invoke(javax.el.ELContext, java.lang.Object[]) line: 50	
	javax.faces.event.MethodExpressionActionListener.processAction(javax.faces.event.ActionEvent) line: 149	
	javax.faces.event.ActionEvent.processListener(javax.faces.event.FacesListener) line: 88	
	org.primefaces.component.commandbutton.CommandButton(javax.faces.component.UIComponentBase).broadcast(javax.faces.event.FacesEvent) line: 814	
	org.primefaces.component.commandbutton.CommandButton(javax.faces.component.UICommand).broadcast(javax.faces.event.FacesEvent) line: 300	
	javax.faces.component.UIViewRoot.broadcastEvents(javax.faces.context.FacesContext, javax.faces.event.PhaseId) line: 790	
	javax.faces.component.UIViewRoot.processApplication(javax.faces.context.FacesContext) line: 1282	
	com.sun.faces.lifecycle.InvokeApplicationPhase.execute(javax.faces.context.FacesContext) line: 81	
	com.sun.faces.lifecycle.InvokeApplicationPhase(com.sun.faces.lifecycle.Phase).doPhase(javax.faces.context.FacesContext, javax.faces.lifecycle.Lifecycle, java.util.ListIterator<javax.faces.event.PhaseListener>) line: 101	
	com.sun.faces.lifecycle.LifecycleImpl.execute(javax.faces.context.FacesContext) line: 198	
	org.apache.deltaspike.jsf.impl.listener.request.DeltaSpikeLifecycleWrapper.execute(javax.faces.context.FacesContext) line: 89	
	org.apache.deltaspike.jsf.impl.listener.request.JsfClientWindowAwareLifecycleWrapper(javax.faces.lifecycle.LifecycleWrapper).execute(javax.faces.context.FacesContext) line: 77	
	javax.faces.webapp.FacesServlet.service(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 658	
	io.undertow.servlet.handlers.ServletHandler.handleRequest(io.undertow.server.HttpServerExchange) line: 85	
	io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(io.undertow.server.HttpServerExchange) line: 62	
	io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(io.undertow.server.HttpServerExchange) line: 36	
	org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(io.undertow.server.HttpServerExchange) line: 78	
	io.undertow.server.handlers.PredicateHandler.handleRequest(io.undertow.server.HttpServerExchange) line: 43	
	io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(io.undertow.server.HttpServerExchange) line: 131	
	io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(io.undertow.server.HttpServerExchange) line: 57	
	io.undertow.server.handlers.PredicateHandler.handleRequest(io.undertow.server.HttpServerExchange) line: 43	
	io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler(io.undertow.security.handlers.AbstractConfidentialityHandler).handleRequest(io.undertow.server.HttpServerExchange) line: 46	
	io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(io.undertow.server.HttpServerExchange) line: 64	
	io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(io.undertow.server.HttpServerExchange) line: 60	
	io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(io.undertow.server.HttpServerExchange) line: 77	
	io.undertow.security.handlers.NotificationReceiverHandler.handleRequest(io.undertow.server.HttpServerExchange) line: 50	
	io.undertow.security.handlers.SecurityInitialHandler(io.undertow.security.handlers.AbstractSecurityContextAssociationHandler).handleRequest(io.undertow.server.HttpServerExchange) line: 43	
	io.undertow.server.handlers.PredicateHandler.handleRequest(io.undertow.server.HttpServerExchange) line: 43	
	org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(io.undertow.server.HttpServerExchange) line: 61	
	io.undertow.server.handlers.PredicateHandler.handleRequest(io.undertow.server.HttpServerExchange) line: 43	
	io.undertow.server.handlers.PredicateHandler.handleRequest(io.undertow.server.HttpServerExchange) line: 43	
	io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(io.undertow.server.HttpServerExchange, io.undertow.servlet.handlers.ServletChain, io.undertow.servlet.handlers.ServletRequestContext, javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 284	
	io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(io.undertow.server.HttpServerExchange, io.undertow.servlet.handlers.ServletRequestContext, io.undertow.servlet.handlers.ServletChain, javax.servlet.DispatcherType) line: 263	
	io.undertow.servlet.handlers.ServletInitialHandler.access$000(io.undertow.servlet.handlers.ServletInitialHandler, io.undertow.server.HttpServerExchange, io.undertow.servlet.handlers.ServletRequestContext, io.undertow.servlet.handlers.ServletChain, javax.servlet.DispatcherType) line: 81	
	io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(io.undertow.server.HttpServerExchange) line: 174	
	io.undertow.server.Connectors.executeRootHandler(io.undertow.server.HttpHandler, io.undertow.server.HttpServerExchange) line: 202	
	io.undertow.server.HttpServerExchange$1.run() line: 793	
	org.xnio.XnioWorker$TaskPool(java.util.concurrent.ThreadPoolExecutor).runWorker(java.util.concurrent.ThreadPoolExecutor$Worker) line: 1142	
	java.util.concurrent.ThreadPoolExecutor$Worker.run() line: 617	
	java.lang.Thread.run() line: 745	
    
{panel} 




> Wildfly 10 with eclipselink Onscucess observer gets stale entity
> ----------------------------------------------------------------
>
>                 Key: WFLY-8954
>                 URL: https://issues.jboss.org/browse/WFLY-8954
>             Project: WildFly
>          Issue Type: Bug
>          Components: JPA / Hibernate
>    Affects Versions: 10.0.0.Final
>            Reporter: Nuno Godinho de Matos
>            Assignee: Scott Marlow
>
> Hi,
> In widlfly there seems to be an important issue concerning CDI events and observing these events during onsuccess. At least while using eclipselink.
> When using wildfly 10.0.0.Final together with eclipselink, if an application modifies an entity A, fires an event stating entity A has been modified, and an observer consumes this event during transaction success.
> Then the observer will be working with stale entities that do not reflect the modifications done to the entity.
> A sample application for this issue is available in:
> https://github.com/99sono/wildfly10-observe-on-success-stale-entity
> The widlfly configuration xml for the sample application, is available in the application itself, as can be seen in the readme documentation.
> Many thanks for taking a look.
> Kindest regards.



--
This message was sent by Atlassian JIRA
(v7.2.3#72005)


More information about the jboss-jira mailing list