{"action":"created","issue":{"url":"https://api.github.com/repos/Atmosphere/atmosphere/issues/1908","labels_url":"https://api.github.com/repos/Atmosphere/atmosphere/issues/1908/labels{/name}","comments_url":"https://api.github.com/repos/Atmosphere/atmosphere/issues/1908/comments","events_url":"https://api.github.com/repos/Atmosphere/atmosphere/issues/1908/events","html_url":"https://github.com/Atmosphere/atmosphere/issues/1908","id":64233987,"number":1908,"title":"ConcurrentModificationException on atmosphere websocket connection","user":{"login":"albertdabrowski","id":7994493,"avatar_url":"https://avatars.githubusercontent.com/u/7994493?v=3","gravatar_id":"","url":"https://api.github.com/users/albertdabrowski","html_url":"https://github.com/albertdabrowski","followers_url":"https://api.github.com/users/albertdabrowski/followers","following_url":"https://api.github.com/users/albertdabrowski/following{/other_user}","gists_url":"https://api.github.com/users/albertdabrowski/gists{/gist_id}","starred_url":"https://api.github.com/users/albertdabrowski/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/albertdabrowski/subscriptions","organizations_url":"https://api.github.com/users/albertdabrowski/orgs","repos_url":"https://api.github.com/users/albertdabrowski/repos","events_url":"https://api.github.com/users/albertdabrowski/events{/privacy}","received_events_url":"https://api.github.com/users/albertdabrowski/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/Atmosphere/atmosphere/labels/2.3.0","name":"2.3.0","color":"5319e7"}],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":2,"created_at":"2015-03-25T10:09:34Z","updated_at":"2015-03-26T13:34:50Z","closed_at":"2015-03-25T13:04:27Z","body":"I'm using atmosphere-runtime version 2.3.0-RC3 and the following exception occurs after exchanging few frames over websocket. BTW, it's setup to send it in binary mode.\r\n\r\n```java\r\nMessage received! 1817199655410146\r\n2015-03-23 14:51:32 WARN  TrackMessageSizeInterceptor:135 - Cannot use TrackMessageSizeInterceptor with binary write. Writing the message as it is.\r\n2015-03-23 14:51:32 WARN  TrackMessageSizeInterceptor:135 - Cannot use TrackMessageSizeInterceptor with binary write. Writing the message as it is.\r\nMessage received! 1817199655410147\r\n2015-03-23 14:51:32 WARN  TrackMessageSizeInterceptor:135 - Cannot use TrackMessageSizeInterceptor with binary write. Writing the message as it is.\r\nMessage received! 1817199655410148\r\n2015-03-23 14:51:32 WARN  TrackMessageSizeInterceptor:135 - Cannot use TrackMessageSizeInterceptor with binary write. Writing the message as it is.\r\nMessage received! 1817199655410149\r\n2015-03-23 14:51:32 WARN  TrackMessageSizeInterceptor:135 - Cannot use TrackMessageSizeInterceptor with binary write. Writing the message as it is.\r\nMessage received! 1817199655410150\r\n2015-03-23 14:51:32 WARN  TrackMessageSizeInterceptor:135 - Cannot use TrackMessageSizeInterceptor with binary write. Writing the message as it is.\r\nMessage received! 1817199655410151\r\n2015-03-23 14:51:32 WARN  TrackMessageSizeInterceptor:135 - Cannot use TrackMessageSizeInterceptor with binary write. Writing the message as it is.\r\nMessage received! 1817199655410152\r\n2015-03-23 14:51:32 WARN  TrackMessageSizeInterceptor:135 - Cannot use TrackMessageSizeInterceptor with binary write. Writing the message as it is.\r\nMessage received! 1817199655410153\r\n2015-03-23 14:51:32 WARN  TrackMessageSizeInterceptor:135 - Cannot use TrackMessageSizeInterceptor with binary write. Writing the message as it is.\r\nMessage received! 1817199655410154\r\n2015-03-23 14:51:32 WARN  TrackMessageSizeInterceptor:135 - Cannot use TrackMessageSizeInterceptor with binary write. Writing the message as it is.\r\n2015-03-23 14:51:32 DEBUG BridgeRuntime:682 - Exception\r\njava.util.ConcurrentModificationException\r\n       at java.util.HashMap$HashIterator.nextNode(HashMap.java:1429)\r\n       at java.util.HashMap$EntryIterator.next(HashMap.java:1463)\r\n       at java.util.HashMap$EntryIterator.next(HashMap.java:1461)\r\n       at org.atmosphere.websocket.protocol.ProtocolUtil.attributes(ProtocolUtil.java:57)\r\n       at org.atmosphere.websocket.protocol.ProtocolUtil.constructRequest(ProtocolUtil.java:35)\r\n       at org.atmosphere.websocket.protocol.SimpleHttpProtocol.onMessage(SimpleHttpProtocol.java:136)\r\n       at org.atmosphere.websocket.DefaultWebSocketProcessor.invokeWebSocketProtocol(DefaultWebSocketProcessor.java:464)\r\n       at org.atmosphere.nettosphere.BridgeRuntime.handleWebSocketFrame(BridgeRuntime.java:347)\r\n       at org.atmosphere.nettosphere.BridgeRuntime.messageReceived(BridgeRuntime.java:270)\r\n       at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70)\r\n       at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)\r\n       at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791)\r\n       at org.jboss.netty.handler.stream.ChunkedWriteHandler.handleUpstream(ChunkedWriteHandler.java:142)\r\n       at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)\r\n       at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791)\r\n       at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:296)\r\n       at org.jboss.netty.handler.codec.frame.FrameDecoder.unfoldAndFireMessageReceived(FrameDecoder.java:462)\r\n       at org.jboss.netty.handler.codec.replay.ReplayingDecoder.callDecode(ReplayingDecoder.java:536)\r\n       at org.jboss.netty.handler.codec.replay.ReplayingDecoder.messageReceived(ReplayingDecoder.java:435)\r\n       at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70)\r\n       at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)\r\n       at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:559)\r\n       at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:268)\r\n       at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:255)\r\n       at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:88)\r\n       at org.jboss.netty.channel.socket.nio.AbstractNioWorker.process(AbstractNioWorker.java:108)\r\n       at org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:337)\r\n       at org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:89)\r\n       at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:178)\r\n       at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108)\r\n       at org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42)\r\n       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)\r\n       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)\r\n       at java.lang.Thread.run(Thread.java:745)\r\n2015-03-23 14:51:32 DEBUG BridgeRuntime:620 - Error 500 Internal Server Error for null\r\nMessage received! 1817199655410156\r\nConnection established!\r\nUser {89eaa38e-c3c0-4ba1-9c5f-13d2f3f6ab6e} connected.\r\n2015-03-23 14:51:32 WARN  TrackMessageSizeInterceptor:135 - Cannot use TrackMessageSizeInterceptor with binary write. Writing the message as it is.\r\nMessage received! 1817199655410157\r\n2015-03-23 14:51:32 WARN  TrackMessageSizeInterceptor:135 - Cannot use TrackMessageSizeInterceptor with binary write. Writing the message as it is.\r\n2015-03-23 14:51:48 DEBUG IdleResourceInterceptor:91 - IdleResourceInterceptor disconnecting AtmosphereResource{\r\n       uuid=89eaa38e-c3c0-4ba1-9c5f-13d2f3f6ab6e,\r\n       transport=WEBSOCKET,\r\n       isInScope=true,\r\n       isResumed=false,\r\n       isCancelled=false,\r\n       isSuspended=true,\r\n       broadcaster=/atmosphere size: 1,\r\n       isClosedByClient=false,\r\n       isClosedByApplication=false,\r\n       action=Action{timeout=-1, type=SUSPEND}}\r\nUser {89eaa38e-c3c0-4ba1-9c5f-13d2f3f6ab6e} unexpectedly disconnected\r\n```"},"comment":{"url":"https://api.github.com/repos/Atmosphere/atmosphere/issues/comments/86515601","html_url":"https://github.com/Atmosphere/atmosphere/issues/1908#issuecomment-86515601","issue_url":"https://api.github.com/repos/Atmosphere/atmosphere/issues/1908","id":86515601,"user":{"login":"albertdabrowski","id":7994493,"avatar_url":"https://avatars.githubusercontent.com/u/7994493?v=3","gravatar_id":"","url":"https://api.github.com/users/albertdabrowski","html_url":"https://github.com/albertdabrowski","followers_url":"https://api.github.com/users/albertdabrowski/followers","following_url":"https://api.github.com/users/albertdabrowski/following{/other_user}","gists_url":"https://api.github.com/users/albertdabrowski/gists{/gist_id}","starred_url":"https://api.github.com/users/albertdabrowski/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/albertdabrowski/subscriptions","organizations_url":"https://api.github.com/users/albertdabrowski/orgs","repos_url":"https://api.github.com/users/albertdabrowski/repos","events_url":"https://api.github.com/users/albertdabrowski/events{/privacy}","received_events_url":"https://api.github.com/users/albertdabrowski/received_events","type":"User","site_admin":false},"created_at":"2015-03-26T13:34:50Z","updated_at":"2015-03-26T13:34:50Z","body":"I experience the same effect on that snapshot version. Did test on stable 2.2.6 but was the same effect."}}