Spring4 - Servlet3.0 Websocket ConcurrentModificationException 익셉션 발생 시

Spring 4 에서 지원하는 @MessageMapping 어노테이션으로 구현한 WebSocket 서버 프로그램에서 Exception in thread "clientInboundChannel-5" java.util.ConcurrentModificationException 와 같은 익셉션 발생 시.
스프링 프레임워크 버전을 확인.  4.0.5 에서 해결된 문제로 이하 버전으로 개발했다면 프레임워크 업데이트로 해결 가능.
https://jira.spring.io/browse/SPR-11755
[code] Exception in thread "clientInboundChannel-5" java.util.ConcurrentModificationException at java.util.LinkedHashMap$LinkedHashIterator.nextNode(LinkedHashMap.java:711) at java.util.LinkedHashMap$LinkedKeyIterator.next(LinkedHashMap.java:734) at org.springframework.messaging.simp.broker.DefaultSubscriptionRegistry$DestinationCache.updateAfterNewSubscription(DefaultSubscriptionRegistry.java:179) at org.springframework.messaging.simp.broker.DefaultSubscriptionRegistry.addSubscriptionInternal(DefaultSubscriptionRegistry.java:91) at org.springframework.messaging.simp.broker.AbstractSubscriptionRegistry.registerSubscription(AbstractSubscriptionRegistry.java:65) at org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler.handleMessageInternal(SimpleBrokerMessageHandler.java:126) at org.springframework.messaging.simp.broker.AbstractBrokerMessageHandler.handleMessage(AbstractBrokerMessageHandler.java:171) at org.springframework.messaging.support.ExecutorSubscribableChannel$1.run(ExecutorSubscribableChannel.java:70) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) Exception in thread "clientInboundChannel-4" java.util.ConcurrentModificationException at java.util.LinkedHashMap$LinkedHashIterator.nextNode(LinkedHashMap.java:711) at java.util.LinkedHashMap$LinkedKeyIterator.next(LinkedHashMap.java:734) at org.springframework.messaging.simp.broker.DefaultSubscriptionRegistry$DestinationCache.updateAfterRemovedSession(DefaultSubscriptionRegistry.java:214) at org.springframework.messaging.simp.broker.DefaultSubscriptionRegistry.unregisterAllSubscriptions(DefaultSubscriptionRegistry.java:112) at org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler.handleMessageInternal(SimpleBrokerMessageHandler.java:136) at org.springframework.messaging.simp.broker.AbstractBrokerMessageHandler.handleMessage(AbstractBrokerMessageHandler.java:171) at org.springframework.messaging.support.ExecutorSubscribableChannel$1.run(ExecutorSubscribableChannel.java:70) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) [/code]
2014/06/03 15:59 2014/06/03 15:59
Trackback Address:이 글에는 트랙백을 보낼 수 없습니다