0 Replies Latest reply on Mar 4, 2004 8:18 AM by nickman

    ConcurrentModificationException In HTTP Session Replication

      I 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)