Details
-
Type: Bug
-
Status: Closed
-
Priority: Major
-
Resolution: Fixed
-
Affects Version/s: EE-3.3.0.GA_P03
-
Fix Version/s: EE-3.3.0.GA_P04
-
Component/s: Push Server
-
Labels:None
-
Environment:ICEpush
Description
A ConcurrentModificationException is thrown for concurrent access to the pendingNotifications in LocalPushGroupManager:
WARNING: Failed to respond to request
java.util.ConcurrentModificationException
at java.util.HashMap$HashIterator.nextEntry(HashMap.java:839)
at java.util.HashMap$KeyIterator.next(HashMap.java:874)
at java.util.AbstractCollection.toArray(AbstractCollection.java:195)
at org.icepush.LocalPushGroupManager.getPendingNotifications(LocalPushGroupManager.java:133)
at org.icepush.BlockingConnectionServer$RunningServer.service(BlockingConnectionServer.java:338)
at org.icepush.BlockingConnectionServer.service(BlockingConnectionServer.java:96)
at org.icepush.SequenceTaggingServer.service(SequenceTaggingServer.java:54)
at org.icepush.PushStormDetectionServer.service(PushStormDetectionServer.java:52)
at org.icepush.servlet.AsyncAdaptingServlet.service(AsyncAdaptingServlet.java:68)
at org.icepush.servlet.EnvironmentAdaptingServlet.service(EnvironmentAdaptingServlet.java:56)
at org.icepush.servlet.PathDispatcher.service(PathDispatcher.java:39)
at org.icepush.servlet.BrowserDispatcher$BrowserEntry.service(BrowserDispatcher.java:101)
at org.icepush.servlet.BrowserDispatcher.service(BrowserDispatcher.java:45)
at org.icepush.servlet.ConfigurationServlet.service(ConfigurationServlet.java:101)
at org.icepush.servlet.PathDispatcher.service(PathDispatcher.java:39)
at org.icepush.servlet.MainServlet.service(MainServlet.java:131)
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.application.SessionTimeoutMonitor.handleSessionAwareResourceRequest(SessionTimeoutMonitor.java:63)
at org.icefaces.impl.application.SessionAwareResourceHandlerWrapper.handleResourceRequest(SessionAwareResourceHandlerWrapper.java:40)
at javax.faces.application.ResourceHandlerWrapper.handleResourceRequest(ResourceHandlerWrapper.java:125)
at javax.faces.application.ResourceHandlerWrapper.handleResourceRequest(ResourceHandlerWrapper.java:125)
at javax.faces.application.ResourceHandlerWrapper.handleResourceRequest(ResourceHandlerWrapper.java:125)
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:303)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:504)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:421)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1074)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:744)
This one is similar toPUSH-277 but requires additional backporting.
WARNING: Failed to respond to request
java.util.ConcurrentModificationException
at java.util.HashMap$HashIterator.nextEntry(HashMap.java:839)
at java.util.HashMap$KeyIterator.next(HashMap.java:874)
at java.util.AbstractCollection.toArray(AbstractCollection.java:195)
at org.icepush.LocalPushGroupManager.getPendingNotifications(LocalPushGroupManager.java:133)
at org.icepush.BlockingConnectionServer$RunningServer.service(BlockingConnectionServer.java:338)
at org.icepush.BlockingConnectionServer.service(BlockingConnectionServer.java:96)
at org.icepush.SequenceTaggingServer.service(SequenceTaggingServer.java:54)
at org.icepush.PushStormDetectionServer.service(PushStormDetectionServer.java:52)
at org.icepush.servlet.AsyncAdaptingServlet.service(AsyncAdaptingServlet.java:68)
at org.icepush.servlet.EnvironmentAdaptingServlet.service(EnvironmentAdaptingServlet.java:56)
at org.icepush.servlet.PathDispatcher.service(PathDispatcher.java:39)
at org.icepush.servlet.BrowserDispatcher$BrowserEntry.service(BrowserDispatcher.java:101)
at org.icepush.servlet.BrowserDispatcher.service(BrowserDispatcher.java:45)
at org.icepush.servlet.ConfigurationServlet.service(ConfigurationServlet.java:101)
at org.icepush.servlet.PathDispatcher.service(PathDispatcher.java:39)
at org.icepush.servlet.MainServlet.service(MainServlet.java:131)
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.application.SessionTimeoutMonitor.handleSessionAwareResourceRequest(SessionTimeoutMonitor.java:63)
at org.icefaces.impl.application.SessionAwareResourceHandlerWrapper.handleResourceRequest(SessionAwareResourceHandlerWrapper.java:40)
at javax.faces.application.ResourceHandlerWrapper.handleResourceRequest(ResourceHandlerWrapper.java:125)
at javax.faces.application.ResourceHandlerWrapper.handleResourceRequest(ResourceHandlerWrapper.java:125)
at javax.faces.application.ResourceHandlerWrapper.handleResourceRequest(ResourceHandlerWrapper.java:125)
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:303)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:504)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:421)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1074)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:744)
This one is similar to
Sending core/src/main/java/org/icepush/BlockingConnectionServer.java
Sending core/src/main/java/org/icepush/LocalNotificationBroadcaster.java
Sending core/src/main/java/org/icepush/LocalPushGroupManager.java
Sending core/src/main/java/org/icepush/NoopPushGroupManager.java
Sending core/src/main/java/org/icepush/NotificationBroadcaster.java
Sending core/src/main/java/org/icepush/PushGroupManager.java
Sending core/src/main/java/org/icepush/PushID.java
Sending core/src/main/java/org/icepush/servlet/AsyncAdaptingServlet.java
Transmitting file data ........
Committed revision 46008.
Sending eps/src/main/java/com/icesoft/push/DynamicPushGroupManager.java
Sending eps/src/main/java/com/icesoft/push/LocalPushGroupManager.java
Sending eps/src/main/java/com/icesoft/push/RemotePushGroupManager.java
Sending eps/src/main/java/com/icesoft/push/messaging/MessagePayload.java
Sending eps/src/main/java/com/icesoft/push/messaging/PushMessageService.java
Transmitting file data .....
Committed revision 43006.