Im using spring-boot-starter-websocket with spring 1.5.3.RELEASE boot and I get tons of logs when sockjs tries to complete the Heartbeat task. Somehow the connection is lost. this article talks about closing (according to JIRA ), but I'm still with the same kind of problem
Here is my configuration
@Configuration @EnableWebSocketMessageBroker public class WebSocketConfig extends AbstractWebSocketMessageBrokerConfigurer { @Bean WebSocketHandler getWsHandler() { return new WebSocketHandler(); } @Override public void configureMessageBroker(MessageBrokerRegistry config) { config.enableSimpleBroker("/topic"); } @Override public void registerStompEndpoints(StompEndpointRegistry registry) { registry.addEndpoint("/ws").setAllowedOrigins("*").withSockJS(); } }
Here are the magazines
2017-07-11 15: 10: 23.753 INFO 7574 --- [MessageBroker-4] o.apache.coyote.http11.Http11Processor: An error occurred while processing in the non-container stream. The connection will close immediately
java.io.IOException: Broken tube on sun.nio.ch.FileDispatcherImpl.write0 (native method) ~ [na: 1.8.0] at sun.nio.ch.SocketDispatcher.write (SocketDispatcher.java:47) ~ [na : 1.8.0] in sun.nio.ch.IOUtil.writeFromNativeBuffer (IOUtil.java:93) ~ [na: 1.8.0] on sun.nio.ch.IOUtil.write (IOUtil.java:65) ~ [na : 1.8.0] at sun.nio.ch.SocketChannelImpl.write (SocketChannelImpl.java:466) ~ [na: 1.8.0] in org.apache.tomcat.util.net.NioChannel.write (NioChannel.java:134 ) ~ [tomcat-embed-core-8.5.14.jar: 8.5.14] at org.apache.tomcat.util.net.NioBlockingSelector.write (NioBlockingSelector.java:101) ~ [tomcat-embed-core-8.5. 14.jar: 8.5.14] at org.apache.tomcat.util.net.NioSelectorPool.write (NioSelectorPool.java:157) ~ [tomcat-embed-core-8.5.14.jar: 8.5.14] at org. apache.tomcat.util.net.NioEndpoint $ NioSocketWrapper.doWrite (NioEndpoint.java:1259) ~ [tomcat-embed-core-8.5.14.jar: 8.5.14] at org.apache.tomcat.util.net.SocketWrapperBase .doWrite (SocketWrapperBase.java: 670) ~ [tomcat-embed-core-8.5.14.jar: 8.5.14] at org.apache.tomcat.util.net.SocketWrapperBase.flushBlocking (SocketWrapperBase.java:607) ~ [tomcat-embed-core-8.5 .14.jar: 8.5.14] at org.apache.tomcat.util.net.SocketWrapperBase.flush (SocketWrapperBase.java∗97) ~ [tomcat-embed-core-8.5.14.jar: 8.5.14] at org .apache.coyote.http11.Http11OutputBuffer.flushBuffer (Http11OutputBuffer.java► 81) ~ [tomcat-embed-core-8.5.14.jar: 8.5.14] at org.apache.coyote.http11.Http11OutputBuffer.flush. java: 272) ~ [tomcat-embed-core-8.5.14.jar: 8.5.14] at org.apache.coyote.http11.Http11Processor.flush (Http11Processor.java:1506) ~ [tomcat-embed-core-8.5 .14.jar: 8.5.14] at org.apache.coyote.AbstractProcessor.action (AbstractProcessor.java:279) ~ [tomcat-embed-core-8.5.14.jar: 8.5.14] at org.apache.coyote .Response.action (Response.java:172) [tomcat-embed-core-8.5.14.jar: 8.5.14] at org.apache.catalina.connector.OutputBuffer.doFlush (OutputBuffer.javahaps17) [tomcat- embed-core-8.5.14.jar: 8.5.14] at o rg.apache.catalina.connector.OutputBuffer.flush (OutputBuffer.java:284) [tomcat-embed-core-8.5.14.jar: 8.5.14] at org.apache.catalina.connector.Response.flushBuffer (Response. java: 541) [tomcat-embed-core-8.5.14.jar: 8.5.14] at org.apache.catalina.connector.ResponseFacade.flushBuffer (ResponseFacade.javahaps12) [tomcat-embed-core-8.5.14 .jar: 8.5.14] at javax.servlet.ServletResponseWrapper.flushBuffer (ServletResponseWrapper.java:176) [tomcat-embed-core-8.5.14.jar: 8.5.14] at javax.servlet.ServletResponseWrapper.flushBuffer (ServletRespon java: 176) [tomcat-embed-core-8.5.14.jar: 8.5.14] at org.springframework.security.web.util.OnCommittedResponseWrapper.flushBuffer (OnCommittedResponseWrapper.java:159) [spring -security-web-4.2 .2.RELEASE.jar: 4.2.2.RELEASE] in org.springframework.http.server.ServletServerHttpResponse.flush (ServletServerHttpResponse.java:96) [spring -web-4.3.8.RELEASE.jar: 4.3.8.RELEASE ] in org.springframework.web.socket.sockjs.transport.session.AbstractHttpSockJsSessio n.writeFrameInternal (AbstractHttpSockJsSession.java{50) [spring -websocket-4.3.8.RELEASE.jar: 4.3.8.RELEASE] in org.springframework.web.socket.sockjs.transport.session.AbstractSockJsSession.writeFrame (AbstractSockJsession. java: 322) [spring -websocket-4.3.8.RELEASE.jar: 4.3.8.RELEASE] in org.springframework.web.socket.sockjs.transport.session.AbstractSockJsSession.sendHeartbeat (AbstractSockJsSession.java:255) [spring -websocket-4.3.8.RELEASE.jar: 4.3.8.RELEASE] in org.springframework.web.socket.sockjs.transport.session.AbstractSockJsSession $ HeartbeatTask.run (AbstractSockJsSession.java:456) [spring -websocket-4.3 .8.RELEASE.jar: 4.3.8.RELEASE] in org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run (DelegatingErrorHandlingRunnable.java:54) [spring -context-4.3.8.RELEASE.jar: 4.3.8.RELEASE ] in java.util.concurrent.Executors $ RunnableAdapter.call (Executors.java UP11) [na: 1.8.0] in java.util.concurrent.FutureTask.run (FutureTask.java:266) [na: 1.8.0 ] in java.util.con current.ScheduledThreadPoolExecutor $ ScheduledFutureTask.access $ 201 (ScheduledThreadPoolExecutor.java:180) [na: 1.8.0] in java.util.concurrent.ScheduledThreadPoolExecutor $ ScheduledFutureTask.run (ScheduledThreadPoolExecutor.java:ava .util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1142) [na: 1.8.0] in java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:617) [na: 1.8.0] in java .lang.Thread.run (Thread.java:744) [na: 1.8.0]}
source share