Hi, Daemon Thread [http-nio-8080-exec-4] (Suspended (breakpoint at line 84 in EditorEndpoint))
owns: Object (id=16796) owns: NioEndpoint$NioSocketWrapper (id=16797) EditorEndpoint.onError(Throwable) line: 84 NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method] NativeMethodAccessorImpl.invoke(Object, Object[]) line: 62 DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 43 Method.invoke(Object, Object...) line: 567 PojoEndpointServer(PojoEndpointBase).onError(Session, Throwable) line: 133 WsSession.sendCloseMessage(CloseReason) line: 619 WsSession.onClose(CloseReason) line: 526 WsFrameServer(WsFrameBase).processDataControl() line: 348 WsFrameServer(WsFrameBase).processData() line: 290 WsFrameServer(WsFrameBase).processInputBuffer() line: 130 WsFrameServer.onDataAvailable() line: 70 WsHttpUpgradeHandler.upgradeDispatch(SocketEvent) line: 148 UpgradeProcessorInternal.dispatch(SocketEvent) line: 54 UpgradeProcessorInternal(AbstractProcessorLight).process(SocketWrapperBase<?>, SocketEvent) line: 53 AbstractProtocol$ConnectionHandler<S>.process(SocketWrapperBase<S>, SocketEvent) line: 789 NioEndpoint$SocketProcessor.doRun() line: 1437 NioEndpoint$SocketProcessor(SocketProcessorBase<S>).run() line: 49 ThreadPoolExecutor(ThreadPoolExecutor).runWorker(ThreadPoolExecutor$Worker) line: 1128 ThreadPoolExecutor$Worker.run() line: 628 TaskThread$WrappingRunnable.run() line: 61 TaskThread(Thread).run() line: 835 That is a stack that we encounter which i find quite strange it seems to me that WsFrameBase.processDataControl does a wsSession.onClose(new CloseReason(Util.getCloseCode(code), reason)); when it gets an op_code close that sounds reasonably but the problem is WsSession will call when it was in a open state an sendCloseMessage: if (state == State.OPEN) { state = State.OUTPUT_CLOSED; sendCloseMessage(closeReason); problem is it is closed so this will result in a exception (broken pipe stuff) when that is called As far as i can understand it should not try to send a close message at that point, because the close did already happen from the client side.. I guess if onclose was called programatically from the server side then it is logical. -- Johan Compagner Servoy