[jboss-jira] [JBoss JIRA] (WFLY-6898) ConcurrentModificationException when returning from JMS onMessage() MBean

Martin Kouba (JIRA) issues at jboss.org
Thu Aug 4 02:20:00 EDT 2016


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

Martin Kouba commented on WFLY-6898:
------------------------------------

I agree with Stuart - {{InjectedJMSContext}} bean should not do any cleanup (neither {{RequestedJMSContext}} nor {{TransactedJMSContext}}). To be honest, the JMS 2.0 spec requirement WRT scope of injected {{JMSContext}} looks odd to me (see also 12.4.4. Scope of injected JMSContext objects) - I'm not sure it's legal from the CDI spec point of view.

[~jmesnil] It seems this regression was introduced as a part of the fix for WFLY-3471.

> 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