ConcurrentModificationException In HTTP Session Replication
nickman Mar 4, 2004 8:18 AMI am not sure why we are getting this error. Well, to be clear, we only got it once. The only thing I can think of is an issue of timing with different frames in the frameset of the browser app hitting the server concurrently, one causing a read and the other a write.
Any ideas ?
The stack trace is here:
09:24:37,363 WARN [org.jboss.web.tomcat.session.InstantSnapshotManager] Failed to replicate sessionID:j91zK3w-+LPO+ZS575NtMw** javax.ejb.EJBException: Exception in setHttpSession: javax.ejb.EJBException: Exception in setHttpSession: RuntimeMBeanException: RuntimeException in MBean operation 'invoke(org.jboss.invocation.Invocation)' Cause: javax.ejb.EJBException: java.util.ConcurrentModificationException at org.jboss.ha.httpsession.server.ClusteredHTTPSessionService.setHttpSession(Ljava.lang.String;Lorg.jboss.ha.httpsession.interfaces.SerializableHttpSession;)V(ClusteredHTTPSessionService.java:117) at jrockit.reflect.NativeMethodInvoker.invoke0(Ljava.lang.Object;ILjava.lang.Object;[Ljava.lang.Object;)Ljava.lang.Object;(Unknown Source) at jrockit.reflect.NativeMethodInvoker.invoke(Ljava.lang.Object;[Ljava.lang.Object;)Ljava.lang.Object;(Unknown Source) at jrockit.reflect.VirtualNativeMethodInvoker.invoke(Ljava.lang.Object;[Ljava.lang.Object;)Ljava.lang.Object;(Unknown Source) at java.lang.reflect.Method.invoke(Ljava.lang.Object;[Ljava.lang.Object;I)Ljava.lang.Object;(Unknown Source) at org.jboss.mx.capability.ReflectedMBeanDispatcher.invoke(Ljava.lang.String;[Ljava.lang.Object;[Ljava.lang.String;)Ljava.lang.Object;(ReflectedMBeanDispatcher.java:284) at org.jboss.mx.server.MBeanServerImpl.invoke(Ljavax.management.ObjectName;Ljava.lang.String;[Ljava.lang.Object;[Ljava.lang.String;)Ljava.lang.Object;(MBeanServerImpl.java:546) at org.jboss.mx.util.MBeanProxyExt.invoke(Ljava.lang.Object;Ljava.lang.reflect.Method;[Ljava.lang.Object;)Ljava.lang.Object;(MBeanProxyExt.java:177) at $Proxy38.setHttpSession(Ljava.lang.String;Lorg.jboss.ha.httpsession.interfaces.SerializableHttpSession;)V(Unknown Source) at org.jboss.web.tomcat.session.ClusterManager.storeSession(Lorg.jboss.web.tomcat.session.ClusteredSession;)V(ClusterManager.java:615) at org.jboss.web.tomcat.session.InstantSnapshotManager.snapshot(Ljava.lang.String;)V(InstantSnapshotManager.java:39) at org.jboss.web.tomcat.session.ClusteredSessionValve.invoke(Lorg.apache.catalina.Request;Lorg.apache.catalina.Response;Lorg.apache.catalina.ValveContext;)V(ClusteredSessionValve.java:89) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(Lorg.apache.catalina.Request;Lorg.apache.catalina.Response;)V(StandardPipeline.java:641) at org.apache.catalina.core.StandardPipeline.invoke(Lorg.apache.catalina.Request;Lorg.apache.catalina.Response;)V(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(Lorg.apache.catalina.Request;Lorg.apache.catalina.Response;)V(ContainerBase.java:995) at org.apache.catalina.core.StandardContext.invoke(Lorg.apache.catalina.Request;Lorg.apache.catalina.Response;)V(StandardContext.java:2417) at org.apache.catalina.core.StandardHostValve.invoke(Lorg.apache.catalina.Request;Lorg.apache.catalina.Response;Lorg.apache.catalina.ValveContext;)V(StandardHostValve.java:180) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(Lorg.apache.catalina.Request;Lorg.apache.catalina.Response;)V(StandardPipeline.java:643) at org.apache.catalina.valves.ErrorDispatcherValve.invoke(Lorg.apache.catalina.Request;Lorg.apache.catalina.Response;Lorg.apache.catalina.ValveContext;)V(ErrorDispatcherValve.java:171) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(Lorg.apache.catalina.Request;Lorg.apache.catalina.Response;)V(StandardPipeline.java:641) at org.apache.catalina.valves.ErrorReportValve.invoke(Lorg.apache.catalina.Request;Lorg.apache.catalina.Response;Lorg.apache.catalina.ValveContext;)V(ErrorReportValve.java:172) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(Lorg.apache.catalina.Request;Lorg.apache.catalina.Response;)V(StandardPipeline.java:641) at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(Lorg.apache.catalina.Request;Lorg.apache.catalina.Response;Lorg.apache.catalina.ValveContext;)V(SecurityAssociationValve.java:65) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(Lorg.apache.catalina.Request;Lorg.apache.catalina.Response;)V(StandardPipeline.java:641) at org.apache.catalina.valves.AccessLogValve.invoke(Lorg.apache.catalina.Request;Lorg.apache.catalina.Response;Lorg.apache.catalina.ValveContext;)V(AccessLogValve.java:577) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(Lorg.apache.catalina.Request;Lorg.apache.catalina.Response;)V(StandardPipeline.java:641) at org.apache.catalina.core.StandardPipeline.invoke(Lorg.apache.catalina.Request;Lorg.apache.catalina.Response;)V(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(Lorg.apache.catalina.Request;Lorg.apache.catalina.Response;)V(ContainerBase.java:995) at org.apache.catalina.core.StandardEngineValve.invoke(Lorg.apache.catalina.Request;Lorg.apache.catalina.Response;Lorg.apache.catalina.ValveContext;)V(StandardEngineValve.java:174) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(Lorg.apache.catalina.Request;Lorg.apache.catalina.Response;)V(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke(Lorg.apache.catalina.Request;Lorg.apache.catalina.Response;)V(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(Lorg.apache.catalina.Request;Lorg.apache.catalina.Response;)V(ContainerBase.java:995)