ICEfaces
  1. ICEfaces
  2. ICE-4751

ConcurrentModificationException in PathDispatcherServer's service method

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Critical Critical
    • Resolution: Fixed
    • Affects Version/s: 1.8.2
    • Fix Version/s: 1.8.2-RC1, 1.8.2
    • Component/s: Framework
    • Labels:
      None
    • Environment:
      ICEfaces Core, Component Showcase, JBoss 4.0.3.SP1

      Description

      2009-07-22 20:44:56,412 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[localhost].[/component-showcase].[Blocking Servlet]] Servlet.service() for servlet Blocking Servlet threw exception
      java.lang.RuntimeException: wrapped Exception: java.util.ConcurrentModificationException
              at com.icesoft.faces.webapp.http.servlet.MainServlet.service(MainServlet.java:160)
              at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
              at com.icesoft.faces.webapp.xmlhttp.BlockingServlet.service(BlockingServlet.java:56)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
              at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:81)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
              at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
              at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
              at org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalValve.java:39)
              at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:159)
              at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:59)
              at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
              at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
              at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
              at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
              at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:307)
              at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:385)
              at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:748)
              at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:678)
              at org.apache.jk.common.SocketConnection.runIt(ChannelSocket.java:871)
              at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
              at java.lang.Thread.run(Thread.java:595)
      Caused by: java.util.ConcurrentModificationException
              at java.util.AbstractList$Itr.checkForComodification(AbstractList.java:449)
              at java.util.AbstractList$Itr.next(AbstractList.java:420)
              at com.icesoft.faces.webapp.http.common.standard.PathDispatcherServer.service(PathDispatcherServer.java:21)
              at com.icesoft.faces.webapp.http.common.standard.CompressingServer.service(CompressingServer.java:37)
              at com.icesoft.faces.webapp.http.core.ResourceDispatcher.service(ResourceDispatcher.java:48)
              at com.icesoft.faces.webapp.http.common.standard.PathDispatcherServer.service(PathDispatcherServer.java:24)
              at com.icesoft.faces.webapp.http.servlet.BasicAdaptingServlet.service(BasicAdaptingServlet.java:16)
              at com.icesoft.faces.webapp.http.servlet.PathDispatcher.service(PathDispatcher.java:23)
              at com.icesoft.faces.webapp.http.servlet.SessionDispatcher.service(SessionDispatcher.java:47)
              at com.icesoft.faces.webapp.http.servlet.SessionVerifier.service(SessionVerifier.java:22)
              at com.icesoft.faces.webapp.http.servlet.PathDispatcher.service(PathDispatcher.java:23)
              at com.icesoft.faces.webapp.http.servlet.MainServlet.service(MainServlet.java:135)
              ... 23 more

        Activity

        Hide
        Jack Van Ooststroom added a comment -

        Changed Fix Version(s) to 1.8.2

        Show
        Jack Van Ooststroom added a comment - Changed Fix Version(s) to 1.8.2
        Hide
        Ted Goddard added a comment -

        Should this collection be under modification at the time of dispatch?

        Show
        Ted Goddard added a comment - Should this collection be under modification at the time of dispatch?
        Hide
        Mircea Toma added a comment -

        I guess it is possible to have a request that arrives right after the GET request that triggers the session creation. PathDispatcherServer is configured on the request thread the session is created.

        Use a copying iterator to avoid ConcurrentModificationExceptions.

        Show
        Mircea Toma added a comment - I guess it is possible to have a request that arrives right after the GET request that triggers the session creation. PathDispatcherServer is configured on the request thread the session is created. Use a copying iterator to avoid ConcurrentModificationExceptions.

          People

          • Assignee:
            Mircea Toma
            Reporter:
            Jack Van Ooststroom
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: