[jboss-jira] [JBoss JIRA] (WFLY-6898) ConcurrentModificationException when returning from JMS onMessage() MBean
Harold Campbell (JIRA)
issues at jboss.org
Wed Aug 3 11:59:00 EDT 2016
[ https://issues.jboss.org/browse/WFLY-6898?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13274652#comment-13274652 ]
Harold Campbell commented on WFLY-6898:
---------------------------------------
The weld logging creates a lot of output, no suprise, so I've concentrated on PreDestroy. Before both the warning during the REST request in my first comment and before the stacktrace I get this group of log messages. Note, both instances call into the same RequestScoped bean which does in fact inject some JMS resources:
2016-08-03 15:44:00,957 TRACE [org.jboss.weld.Context] (default task-1) WELD-000200: Looked for WELD%ManagedBean%winthorpe-ear.ear|org.wildfly.extension.messaging-activemq:main.additionalClasses|org.wildfly.extension.messaging.activemq.deployment.injection.RequestedJMSContext|org.wildfly.extension.messaging.activemq.deployment.injection.RequestedJMSContext[@javax.enterprise.context.RequestScoped()]{org.wildfly.extension.messaging.activemq.deployment.injection.AbstractJMSContext.cleanUp[@javax.annotation.PreDestroy()]();}|false and got null in org.jboss.weld.context.beanstore.http.RequestBeanStore at 1baf0df0
2016-08-03 15:44:00,957 TRACE [org.jboss.weld.Context] (default task-1) WELD-000200: Looked for WELD%ManagedBean%winthorpe-ear.ear|org.wildfly.extension.messaging-activemq:main.additionalClasses|org.wildfly.extension.messaging.activemq.deployment.injection.RequestedJMSContext|org.wildfly.extension.messaging.activemq.deployment.injection.RequestedJMSContext[@javax.enterprise.context.RequestScoped()]{org.wildfly.extension.messaging.activemq.deployment.injection.AbstractJMSContext.cleanUp[@javax.annotation.PreDestroy()]();}|false and got null in org.jboss.weld.context.beanstore.http.RequestBeanStore at 1baf0df0
2016-08-03 15:44:00,958 TRACE [org.jboss.weld.Context] (default task-1) WELD-000200: Looked for WELD%ManagedBean%winthorpe-ear.ear|org.wildfly.extension.messaging-activemq:main.additionalClasses|org.wildfly.extension.messaging.activemq.deployment.injection.RequestedJMSContext|org.wildfly.extension.messaging.activemq.deployment.injection.RequestedJMSContext[@javax.enterprise.context.RequestScoped()]{org.wildfly.extension.messaging.activemq.deployment.injection.AbstractJMSContext.cleanUp[@javax.annotation.PreDestroy()]();}|false and got null in org.jboss.weld.context.beanstore.http.RequestBeanStore at 1baf0df0
2016-08-03 15:44:00,958 TRACE [org.jboss.weld.Context] (default task-1) WELD-000202: Added ForwardingBean null for Managed Bean [class org.wildfly.extension.messaging.activemq.deployment.injection.RequestedJMSContext] with qualifiers [@Any @Default] with key WELD%ManagedBean%winthorpe-ear.ear|org.wildfly.extension.messaging-activemq:main.additionalClasses|org.wildfly.extension.messaging.activemq.deployment.injection.RequestedJMSContext|org.wildfly.extension.messaging.activemq.deployment.injection.RequestedJMSContext[@javax.enterprise.context.RequestScoped()]{org.wildfly.extension.messaging.activemq.deployment.injection.AbstractJMSContext.cleanUp[@javax.annotation.PreDestroy()]();}|false to org.jboss.weld.context.beanstore.http.RequestBeanStore at 1baf0df0
In the REST case that these are followed by:
2016-08-03 15:44:00,964 TRACE [org.jboss.weld.Context] (default task-1) WELD-000203: Removed Bean: ForwardingBean null for Managed Bean [class com.envestnet.ejb.winthorpe.optimizer.WinthorpeRunBean] with qualifiers [@Any @Default]; Instance: com.envestnet.ejb.winthorpe.optimizer.WinthorpeRunBean$Proxy$_$$_WeldSubclass at 3efebafc; CreationalContext: org.jboss.weld.context.CreationalContextImpl at 41f85638 from org.jboss.weld.context.http.HttpRequestContextImpl at 526de3a4
2016-08-03 15:44:00,965 WARN [org.jboss.weld.Servlet] (default task-1) WELD-000717: Unable to deactivate context org.jboss.weld.context.http.HttpRequestContextImpl at 526de3a4 when destroying request HttpServletRequestImpl [ POST /winthorpe-service/rest/accounts/oak:57336/optimizations ]
And in the onMessage case:
016-08-03 15:44:57,084 TRACE [org.jboss.weld.Context] (Thread-0 (ActiveMQ-client-global-threads-1478604432)) WELD-000203: Removed Bean: ForwardingBean null for Managed Bean [class com.envestnet.ejb.winthorpe.optimizer.WinthorpeRunBean] with qualifiers [@Any @Default]; Instance: com.envestnet.ejb.winthorpe.optimizer.WinthorpeRunBean$Proxy$_$$_WeldSubclass at 476149d1; CreationalContext: org.jboss.weld.context.CreationalContextImpl at 63ef2e90 from org.jboss.weld.context.ejb.EjbRequestContextImpl at 6b841795
2016-08-03 15:44:57,087 ERROR [org.jboss.as.ejb3.invocation] (Thread-0 (ActiveMQ-client-global-threads-1478604432)) WFLYEJB0034: EJB Invocation failed on component...
> ConcurrentModificationException when returning from JMS onMessage() MBean
> -------------------------------------------------------------------------
>
> Key: WFLY-6898
> URL: https://issues.jboss.org/browse/WFLY-6898
> Project: WildFly
> Issue Type: Bug
> Components: CDI / Weld
> Affects Versions: 10.1.0.CR1
> Reporter: Harold Campbell
> Assignee: Stuart Douglas
>
> I receive the following stacktrace when an MBean's onMessage() returns. The transaction is rolled back and the message marked as undelivered. This started sometime after nightly #2280 which works fine for me.
> 2016-07-30 21:51:49,273 TRACE [com.envestnet.ejb.winthorpe.optimizer.WinthorpeRunListener] (Thread-0 (ActiveMQ-client-global-threads-556320704)) Finished processing run 16819
> at org.jboss.as.ejb3.tx.CMTTxInterceptor.handleInCallerTx(CMTTxInterceptor.java:159)
> at org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInCallerTx(CMTTxInterceptor.java:256)
> at org.jboss.as.ejb3.tx.CMTTxInterceptor.required(CMTTxInterceptor.java:329)
> at org.jboss.as.ejb3.tx.CMTTxInterceptor.processInvocation(CMTTxInterceptor.java:239)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
> at org.jboss.as.ejb3.component.interceptors.CurrentInvocationContextInterceptor.processInvocation(CurrentInvocationContextInterceptor.java:41)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
> at org.jboss.as.ejb3.component.invocationmetrics.WaitTimeInterceptor.processInvocation(WaitTimeInterceptor.java:47)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
> at org.jboss.as.ejb3.security.SecurityContextInterceptor.processInvocation(SecurityContextInterceptor.java:100)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
> at org.jboss.as.ejb3.deployment.processors.StartupAwaitInterceptor.processInvocation(StartupAwaitInterceptor.java:22)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
> at org.jboss.as.ejb3.component.interceptors.ShutDownInterceptorFactory$1.processInvocation(ShutDownInterceptorFactory.java:64)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
> at org.jboss.as.ejb3.deployment.processors.EjbSuspendInterceptor.processInvocation(EjbSuspendInterceptor.java:53)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
> at org.jboss.as.ejb3.component.interceptors.LoggingInterceptor.processInvocation(LoggingInterceptor.java:67)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
> at org.jboss.as.ee.component.NamespaceContextInterceptor.processInvocation(NamespaceContextInterceptor.java:50)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
> at org.jboss.as.ejb3.component.interceptors.AdditionalSetupInterceptor.processInvocation(AdditionalSetupInterceptor.java:54)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
> at org.jboss.as.ejb3.component.messagedriven.MessageDrivenComponentDescription$5$1.processInvocation(MessageDrivenComponentDescription.java:239)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
> at org.jboss.invocation.ContextClassLoaderInterceptor.processInvocation(ContextClassLoaderInterceptor.java:64)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
> at org.jboss.invocation.InterceptorContext.run(InterceptorContext.java:356)
> at org.wildfly.security.manager.WildFlySecurityManager.doChecked(WildFlySecurityManager.java:636)
> at org.jboss.invocation.AccessCheckingInterceptor.processInvocation(AccessCheckingInterceptor.java:61)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
> at org.jboss.invocation.InterceptorContext.run(InterceptorContext.java:356)
> at org.jboss.invocation.PrivilegedWithCombinerInterceptor.processInvocation(PrivilegedWithCombinerInterceptor.java:80)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
> at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)
> at org.jboss.as.ee.component.ViewService$View.invoke(ViewService.java:198)
> at org.jboss.as.ee.component.ViewDescription$1.processInvocation(ViewDescription.java:185)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
> at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)
> at org.jboss.as.ee.component.ProxyInvocationHandler.invoke(ProxyInvocationHandler.java:73)
> at com.envestnet.ejb.winthorpe.optimizer.WinthorpeRunListener$$$view3.onMessage(Unknown Source)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:497)
> at org.jboss.as.ejb3.inflow.MessageEndpointInvocationHandler.doInvoke(MessageEndpointInvocationHandler.java:139)
> at org.jboss.as.ejb3.inflow.AbstractInvocationHandler.invoke(AbstractInvocationHandler.java:73)
> at com.envestnet.ejb.winthorpe.optimizer.WinthorpeRunListener$$$endpoint1.onMessage(Unknown Source)
> at org.apache.activemq.artemis.ra.inflow.ActiveMQMessageHandler.onMessage(ActiveMQMessageHandler.java:310)
> at org.apache.activemq.artemis.core.client.impl.ClientConsumerImpl.callOnMessage(ClientConsumerImpl.java:1018)
> at org.apache.activemq.artemis.core.client.impl.ClientConsumerImpl.access$400(ClientConsumerImpl.java:48)
> at org.apache.activemq.artemis.core.client.impl.ClientConsumerImpl$Runner.run(ClientConsumerImpl.java:1145)
> at org.apache.activemq.artemis.utils.OrderedExecutorFactory$OrderedExecutor$ExecutorTask.run(OrderedExecutorFactory.java:103)
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> at java.lang.Thread.run(Thread.java:745)
> Caused by: java.util.ConcurrentModificationException
> at java.util.HashMap$HashIterator.nextNode(HashMap.java:1429)
> at java.util.HashMap$KeyIterator.next(HashMap.java:1453)
> at org.jboss.weld.context.AbstractContext.destroy(AbstractContext.java:160)
> at org.jboss.weld.context.AbstractManagedContext.deactivate(AbstractManagedContext.java:58)
> at org.jboss.weld.context.AbstractBoundContext.deactivate(AbstractBoundContext.java:72)
> at org.jboss.weld.context.ejb.EjbRequestContextImpl.deactivate(EjbRequestContextImpl.java:47)
> at org.jboss.weld.ejb.AbstractEJBRequestScopeActivationInterceptor.aroundInvoke(AbstractEJBRequestScopeActivationInterceptor.java:76)
> at org.jboss.as.weld.ejb.EjbRequestScopeActivationInterceptor.processInvocation(EjbRequestScopeActivationInterceptor.java:83)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
> at org.jboss.as.ee.concurrent.ConcurrentContextInterceptor.processInvocation(ConcurrentContextInterceptor.java:45)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
> at org.jboss.invocation.InitialInterceptor.processInvocation(InitialInterceptor.java:21)
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
More information about the jboss-jira
mailing list