You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-user@james.apache.org by Johnny Minty <jo...@minty.net.nz> on 2013/08/01 06:24:45 UTC
ActiveMQ - Bug
Hi Guys,
It looks like I'm able to put the mail server in to an infinite loop if I call close on the root application context. (Stack and cause below)
The shutdown is failing on the destroy method on the 'mailqueuefactorybean' :
<bean id="mailqueuefactory" class="org.apache.james.queue.activemq.ActiveMQMailQueueFactory" depends-on="broker"/>
@PreDestroy public void destroy() { for (String mbean : mbeans) { unregisterMBean(mbean); <-- throws java.util.ConcurrentModificationException here }
for (MailQueue mailQueue : queues.values()) { LifecycleUtil.dispose(mailQueue); }
}
WARN 16:10:48 | InitDestroyAnnotationBeanPostProcessor | Invocation of destroy method failed on bean with name 'mailqueuefactory': java.util.ConcurrentModificationExceptionERROR 16:10:48 | JamesMailetContext | Exception caught in OutboundDelivery.run()org.apache.james.queue.api.MailQueue$MailQueueException: Unable to dequeue next message; nested exception is: javax.jms.IllegalStateException: The Session is closed at org.apache.james.queue.jms.JMSMailQueue.deQueue(JMSMailQueue.java:171) at com.liverton.seemail.transport.OutboundDelivery.run(OutboundDelivery.java:655) at java.lang.Thread.run(Thread.java:722)Caused by: javax.jms.IllegalStateException: The Session is closed at org.apache.activemq.ActiveMQSession.checkClosed(ActiveMQSession.java:731) at org.apache.activemq.ActiveMQSession.commit(ActiveMQSession.java:554) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at org.springframework.jms.connection.CachingConnectionFactory$CachedSessionInvocationHandler.invoke(CachingConnectionFactory.java:348) at com.sun.proxy.$Proxy96.commit(Unknown Source) at org.apache.james.queue.jms.JMSMailQueue.deQueue(JMSMailQueue.java:116) ... 2 moreERROR 16:10:48 | JamesMailetContext | Exception caught in OutboundDelivery.run()org.apache.james.queue.api.MailQueue$MailQueueException: Unable to dequeue next message; nested exception is: javax.jms.IllegalStateException: The Session is closed at org.apache.james.queue.jms.JMSMailQueue.deQueue(JMSMailQueue.java:171) at com.liverton.seemail.transport.OutboundDelivery.run(OutboundDelivery.java:655) at java.lang.Thread.run(Thread.java:722)Caused by: javax.jms.IllegalStateException: The Session is closed at org.apache.activemq.ActiveMQSession.checkClosed(ActiveMQSession.java:731) at org.apache.activemq.ActiveMQSession.commit(ActiveMQSession.java:554) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at org.springframework.jms.connection.CachingConnectionFactory$CachedSessionInvocationHandler.invoke(CachingConnectionFactory.java:348) at com.sun.proxy.$Proxy96.commit(Unknown Source) at org.apache.james.queue.jms.JMSMailQueue.deQueue(JMSMailQueue.java:116) ... 2 more
Regards,
Johnny Minty
Re: ActiveMQ - Bug
Posted by Eric Charles <er...@apache.org>.
Is it really an infinite loop (server never ending) or a ungraceful
shutdown? Which version do you run? I usually see graceful shutdowns here.
On 08/01/2013 05:24 AM, Johnny Minty wrote:
> Hi Guys,
>
> It looks like I'm able to put the mail server in to an infinite loop if I call close on the root application context. (Stack and cause below)
>
> The shutdown is failing on the destroy method on the 'mailqueuefactorybean' :
> <bean id="mailqueuefactory" class="org.apache.james.queue.activemq.ActiveMQMailQueueFactory" depends-on="broker"/>
>
> @PreDestroy public void destroy() { for (String mbean : mbeans) { unregisterMBean(mbean); <-- throws java.util.ConcurrentModificationException here }
> for (MailQueue mailQueue : queues.values()) { LifecycleUtil.dispose(mailQueue); }
> }
>
> WARN 16:10:48 | InitDestroyAnnotationBeanPostProcessor | Invocation of destroy method failed on bean with name 'mailqueuefactory': java.util.ConcurrentModificationExceptionERROR 16:10:48 | JamesMailetContext | Exception caught in OutboundDelivery.run()org.apache.james.queue.api.MailQueue$MailQueueException: Unable to dequeue next message; nested exception is: javax.jms.IllegalStateException: The Session is closed at org.apache.james.queue.jms.JMSMailQueue.deQueue(JMSMailQueue.java:171) at com.liverton.seemail.transport.OutboundDelivery.run(OutboundDelivery.java:655) at java.lang.Thread.run(Thread.java:722)Caused by: javax.jms.IllegalStateException: The Session is closed at org.apache.activemq.ActiveMQSession.checkClosed(ActiveMQSession.java:731) at org.apache.activemq.ActiveMQSession.commit(ActiveMQSession.java:554) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.Delegat
i
ngMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at org.springframework.jms.connection.CachingConnectionFactory$CachedSessionInvocationHandler.invoke(CachingConnectionFactory.java:348) at com.sun.proxy.$Proxy96.commit(Unknown Source) at org.apache.james.queue.jms.JMSMailQueue.deQueue(JMSMailQueue.java:116) ... 2 moreERROR 16:10:48 | JamesMailetContext | Exception caught in OutboundDelivery.run()org.apache.james.queue.api.MailQueue$MailQueueException: Unable to dequeue next message; nested exception is: javax.jms.IllegalStateException: The Session is closed at org.apache.james.queue.jms.JMSMailQueue.deQueue(JMSMailQueue.java:171) at com.liverton.seemail.transport.OutboundDelivery.run(OutboundDelivery.java:655) at java.lang.Thread.run(Thread.java:722)Caused by: javax.jms.IllegalStateException: The Session is closed at org.apache.activemq.ActiveMQSession.checkClosed(ActiveMQSession.java:731) at org.apache.activemq.Act
i
veMQSession.commit(ActiveMQSession.java:554) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at org.springframework.jms.connection.CachingConnectionFactory$CachedSessionInvocationHandler.invoke(CachingConnectionFactory.java:348) at com.sun.proxy.$Proxy96.commit(Unknown Source) at org.apache.james.queue.jms.JMSMailQueue.deQueue(JMSMailQueue.java:116) ... 2 more
> Regards,
>
> Johnny Minty
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: server-user-unsubscribe@james.apache.org
For additional commands, e-mail: server-user-help@james.apache.org