[ https://issues.apache.org/jira/browse/AMQ-5155?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14348653#comment-14348653 ]
Claudio Parodi commented on AMQ-5155: ------------------------------------- Hi, I have created a patch for activemq 5.9.1 version that seems to work. These are my changes for org.apache.activemq.transport.ws.StompSocket: 1. in doStart() I set transportListener to remove NPE: {code} @Override protected void doStart() throws Exception { socketTransportStarted.countDown(); stompInactivityMonitor.setTransportListener(this.getTransportListener()); } {code} 2. in onMessage(String data) I managed keepalive frame: {code} if (!transportStartedAtLeastOnce()) { LOG.debug("Waiting for StompSocket to be properly started..."); try { socketTransportStarted.await(); } catch (InterruptedException e) { LOG.warn("While waiting for StompSocket to be properly started, we got interrupted!! Should be okay, but you could see race conditions..."); } } try { if (data!=null && data.equals("\n")) { sendToActiveMQ(new KeepAliveInfo()); } else { protocolConverter.onStompCommand((StompFrame)wireFormat.unmarshal(new ByteSequence(data.getBytes("UTF-8")))); } } catch (Exception e) { onException(IOExceptionSupport.create(e)); } {code} Can I share with you my code in a better way? Thanks Claudio Parodi > Heartbeat fails in STOMP over WebSockets > ---------------------------------------- > > Key: AMQ-5155 > URL: https://issues.apache.org/jira/browse/AMQ-5155 > Project: ActiveMQ > Issue Type: Bug > Affects Versions: 5.9.1, 5.10.0 > Reporter: Arjan van den Berg > Assignee: Dejan Bosanac > Priority: Minor > > From AMQ-4740: > I receive the following error after establishing a connection and heartbeat > through stomp.js. This seems to occur after the 'PING' is sent. > ---------- stomp.js output > <<< CONNECTED > heart-beat:10000,10000 > session:ID:localhost.localdomain-45596-1396530920609-2:2 > server:ActiveMQ/5.10-SNAPSHOT > version:1.1 > send PING every 10000ms > check PONG every 10000ms > <<< PONG > >>> PING > did not receive server activity for the last 20005ms > Whoops! Lost connection to ws://172.16.99.73:61614/stomp > --------------------- activemq console --------------- > WARN | Transport Connection to: StompSocket_19548821 failed: > java.io.IOException > Exception in thread "ActiveMQ InactivityMonitor Worker" > java.lang.NullPointerException > at > org.apache.activemq.transport.AbstractInactivityMonitor.onException(AbstractInactivityMonitor.java:314) > at > org.apache.activemq.transport.AbstractInactivityMonitor$4.run(AbstractInactivityMonitor.java:215) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) > at java.lang.Thread.run(Thread.java:722) > WARN | Transport Connection to: StompSocket_19548821 failed: > java.io.IOException > Exception in thread "ActiveMQ InactivityMonitor Worker" > java.lang.NullPointerException > at > org.apache.activemq.transport.AbstractInactivityMonitor.onException(AbstractInactivityMonitor.java:314) > at > org.apache.activemq.transport.AbstractInactivityMonitor$4.run(AbstractInactivityMonitor.java:215) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) > at java.lang.Thread.run(Thread.java:722) > For me it looks as if the StompInactivityMonitor is delivering its events to > the wrong Transport, i.e. it needs a "narrow()" when setting it up. -- This message was sent by Atlassian JIRA (v6.3.4#6332)