You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by vik Dhawan <vi...@lexisnexis.com> on 2006/03/24 17:17:57 UTC
JMX exception
Hi,
I am running a JMX agent who saparate different kind of messages from 1
queue to the different work queues.
After running the process for a while i started getting following Exception.
javax.management.RuntimeMBeanException: RuntimeException thrown in operation
removeMessage
at
com.sun.jmx.mbeanserver.StandardMetaDataImpl.wrapRuntimeException(StandardMetaDataImpl.java:994)
at
com.sun.jmx.mbeanserver.StandardMetaDataImpl.invoke(StandardMetaDataImpl.java:430)
at com.sun.jmx.mbeanserver.MetaDataImpl.invoke(MetaDataImpl.java:220)
at
com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:815)
at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:784)
at
javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1408)
at
javax.management.remote.rmi.RMIConnectionImpl.access$100(RMIConnectionImpl.java:81)
at
javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1245)
at
javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1341)
at
javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:782)
at sun.reflect.GeneratedMethodAccessor6.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:294)
at sun.rmi.transport.Transport$1.run(Transport.java:153)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport.java:149)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:460)
at
sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:701)
at java.lang.Thread.run(Thread.java:595)
at
sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:247)
at
sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:223)
at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:126)
at com.sun.jmx.remote.internal.PRef.invoke(Unknown Source)
at javax.management.remote.rmi.RMIConnectionImpl_Stub.invoke(Unknown
Source)
at
javax.management.remote.rmi.RMIConnector$RemoteMBeanServerConnection.invoke(RMIConnector.java:969)
at
com.lexisnexis.expresso.priorityschedular.schedular.Schedular.moveMessageToGrid(Schedular.java:553)
at
com.lexisnexis.expresso.priorityschedular.schedular.Schedular.run(Schedular.java:404)
at
com.lexisnexis.expresso.priorityschedular.schedular.Schedular.start(Schedular.java:189)
at
com.lexisnexis.expresso.priorityschedular.schedular.Schedular.main(Schedular.java:632)
Caused by: java.util.ConcurrentModificationException
at java.util.LinkedList$ListItr.checkForComodification(LinkedList.java:617)
at java.util.LinkedList$ListItr.remove(LinkedList.java:585)
at org.apache.activemq.broker.region.Queue.removeMessage(Queue.java:471)
at
org.apache.activemq.broker.jmx.QueueView.removeMessage(QueueView.java:39)
at sun.reflect.GeneratedMethodAccessor70.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at
com.sun.jmx.mbeanserver.StandardMetaDataImpl.invoke(StandardMetaDataImpl.java:414)
at com.sun.jmx.mbeanserver.MetaDataImpl.invoke(MetaDataImpl.java:220)
at
com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:815)
at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:784)
at
javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1408)
at
javax.management.remote.rmi.RMIConnectionImpl.access$100(RMIConnectionImpl.java:81)
at
javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1245)
at
javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1341)
at
javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:782)
at sun.reflect.GeneratedMethodAccessor6.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:294)
at sun.rmi.transport.Transport$1.run(Transport.java:153)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport.java:149)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:460)
at
sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:701)
at java.lang.Thread.run(Thread.java:595)
--
View this message in context: http://www.nabble.com/JMX-exception-t1337321.html#a3574202
Sent from the ActiveMQ - Dev forum at Nabble.com.
Re: JMX exception
Posted by James Strachan <ja...@gmail.com>.
I've just reviewed the code - there was one possible code path
(recovery) which could access the collection which was causing the
concurrent modification exception. All other accesses are within a
synchronized block so there is no possibility of the concurrent access
exception.
I wonder could you retry with SVN HEAD to see if you can still produce this?
James
On 3/24/06, vik Dhawan <vi...@lexisnexis.com> wrote:
>
> I looked at the code for method removeMessage() in the
> org.apache.activemq.broker.region.Queue Class. This code is removing a
> message from the fail-fast iterator obtained in the code.
>
> It's definitely a hot spot for "java.util.ConcurrentModificationException"
> what i am seeing.
>
> I am not sure why developer of this code have chosen this implementation
> when its clearly written in Sun Collection Java docs for iterators.
>
> I will really appreciate if some one can explain that.
>
> Thanks!
>
> --
> View this message in context: http://www.nabble.com/JMX-exception-t1337321.html#a3578256
> Sent from the ActiveMQ - Dev forum at Nabble.com.
>
>
--
James
-------
http://radio.weblogs.com/0112098/
Re: JMX exception
Posted by vik Dhawan <vi...@lexisnexis.com>.
I looked at the code for method removeMessage() in the
org.apache.activemq.broker.region.Queue Class. This code is removing a
message from the fail-fast iterator obtained in the code.
It’s definitely a hot spot for "java.util.ConcurrentModificationException"
what i am seeing.
I am not sure why developer of this code have chosen this implementation
when its clearly written in Sun Collection Java docs for iterators.
I will really appreciate if some one can explain that.
Thanks!
--
View this message in context: http://www.nabble.com/JMX-exception-t1337321.html#a3578256
Sent from the ActiveMQ - Dev forum at Nabble.com.