ICEpush
  1. ICEpush
  2. PUSH-245

ConcurrentModificationException thrown from LocalPushGroupManager

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: EE-3.2.0.GA, 3.3
    • Fix Version/s: EE-3.3.0.GA
    • Component/s: Push Library
    • Labels:
      None
    • Environment:
      ICEpush, Cloud Push

      Description

      The following ConcurrentModificationException was encountered when using ICEpush with Cloud Push:

      java.util.ConcurrentModificationException
          at java.util.HashMap$HashIterator.nextEntry(HashMap.java:793)
          at java.util.HashMap$KeyIterator.next(HashMap.java:828)
          at org.icepush.LocalPushGroupManager.pruneParkedIDs(LocalPushGroupManager.java:252)
          at org.icepush.BlockingConnectionServer$RunningServer.service(BlockingConnectionServer.java:353)
          at org.icepush.BlockingConnectionServer.service(BlockingConnectionServer.java:96)
          at org.icepush.SequenceTaggingServer.service(SequenceTaggingServer.java:54)
          at org.icepush.ConfigurationServer.service(ConfigurationServer.java:93)
          at org.icepush.servlet.ThreadBlockingAdaptingServlet.service(ThreadBlockingAdaptingServlet.java:45)
          at org.icepush.servlet.EnvironmentAdaptingServlet.service(EnvironmentAdaptingServlet.java:52)
          at org.icepush.servlet.PathDispatcher.service(PathDispatcher.java:39)
          at org.icepush.servlet.BrowserDispatcher$BrowserEntry.service(BrowserDispatcher.java:117)
          at org.icepush.servlet.BrowserDispatcher.service(BrowserDispatcher.java:45)
          at org.icepush.servlet.PathDispatcher.service(PathDispatcher.java:39)
          at org.icepush.servlet.MainServlet.service(MainServlet.java:128)
          at org.icefaces.impl.push.servlet.ICEpushResourceHandler$ICEpushResourceHandlerImpl.handleResourceRequest(ICEpushResourceHandler.java:235)
          at org.icefaces.impl.push.servlet.ICEpushResourceHandler.handleResourceRequest(ICEpushResourceHandler.java:128)
          at org.icefaces.impl.push.DynamicResourceDispatcher.handleResourceRequest(DynamicResourceDispatcher.java:78)
          at org.icefaces.application.ResourceRegistry.handleResourceRequest(ResourceRegistry.java:138)
          at org.icefaces.impl.application.WindowScopeManager.handleSessionAwareResourceRequest(WindowScopeManager.java:68)
          at org.icefaces.impl.application.SessionAwareResourceHandlerWrapper.handleResourceRequest(SessionAwareResourceHandlerWrapper.java:40)
          at javax.faces.application.ResourceHandlerWrapper.handleResourceRequest(ResourceHandlerWrapper.java:125)
          at org.icefaces.impl.application.SessionTimeoutMonitor.handleSessionAwareResourceRequest(SessionTimeoutMonitor.java:71)
          at org.icefaces.impl.application.SessionAwareResourceHandlerWrapper.handleResourceRequest(SessionAwareResourceHandlerWrapper.java:40)
          at org.icefaces.mobi.component.qrcode.generator.QRCodeResourceHandler.handleResourceRequest(QRCodeResourceHandler.java:67)
          at javax.faces.application.ResourceHandlerWrapper.handleResourceRequest(ResourceHandlerWrapper.java:125)
          at org.icefaces.impl.application.AuxUploadResourceHandler.handleResourceRequest(AuxUploadResourceHandler.java:82)
          at javax.faces.webapp.FacesServlet.service(FacesServlet.java:591)
          at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
          at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
          at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
          at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
          at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
          at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
          at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
          at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:947)
          at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
          at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
          at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1009)
          at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
          at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
          at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
          at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
          at java.lang.Thread.run(Thread.java:680)

        Activity

        Hide
        Jack Van Ooststroom added a comment -

        Sending src/main/java/org/icepush/LocalPushGroupManager.java
        Transmitting file data .
        Committed revision 35651.

        Show
        Jack Van Ooststroom added a comment - Sending src/main/java/org/icepush/LocalPushGroupManager.java Transmitting file data . Committed revision 35651.
        Hide
        Jack Van Ooststroom added a comment -

        It appears that both the Servlet request thread and the TimerThread for the ConfirmationTimeout are using the parkedPushIDs collection. The parkedPushIDs is now a ConcurrentMap (ConcurrentHashMap) instead of a Map (HashMap). Marking this one as FIXED.

        Show
        Jack Van Ooststroom added a comment - It appears that both the Servlet request thread and the TimerThread for the ConfirmationTimeout are using the parkedPushIDs collection. The parkedPushIDs is now a ConcurrentMap (ConcurrentHashMap) instead of a Map (HashMap). Marking this one as FIXED.

          People

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

            Dates

            • Created:
              Updated:
              Resolved: