Repository: activemq Updated Branches: refs/heads/master 450cabe4e -> 937b2acd4
https://issues.apache.org/jira/browse/AMQ-6482 Adding websocket send timeout to AMQP over websockets Project: http://git-wip-us.apache.org/repos/asf/activemq/repo Commit: http://git-wip-us.apache.org/repos/asf/activemq/commit/937b2acd Tree: http://git-wip-us.apache.org/repos/asf/activemq/tree/937b2acd Diff: http://git-wip-us.apache.org/repos/asf/activemq/diff/937b2acd Branch: refs/heads/master Commit: 937b2acd4628fdbfe8165db5f97225dddab515e7 Parents: 450cabe Author: Christopher L. Shannon (cshannon) <[email protected]> Authored: Fri Nov 4 14:09:26 2016 -0400 Committer: Christopher L. Shannon (cshannon) <[email protected]> Committed: Fri Nov 4 14:09:26 2016 -0400 ---------------------------------------------------------------------- .../activemq/transport/ws/WSTransportProxy.java | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/activemq/blob/937b2acd/activemq-http/src/main/java/org/apache/activemq/transport/ws/WSTransportProxy.java ---------------------------------------------------------------------- diff --git a/activemq-http/src/main/java/org/apache/activemq/transport/ws/WSTransportProxy.java b/activemq-http/src/main/java/org/apache/activemq/transport/ws/WSTransportProxy.java index 7d3ba18..0ca80ef 100644 --- a/activemq-http/src/main/java/org/apache/activemq/transport/ws/WSTransportProxy.java +++ b/activemq-http/src/main/java/org/apache/activemq/transport/ws/WSTransportProxy.java @@ -237,7 +237,11 @@ public final class WSTransportProxy extends TransportSupport implements Transpor } LOG.trace("WS Proxy sending string of size {} out", data.length()); - session.getRemote().sendString(data); + try { + session.getRemote().sendStringByFuture(data).get(getDefaultSendTimeOut(), TimeUnit.SECONDS); + } catch (Exception e) { + throw IOExceptionSupport.create(e); + } } @Override @@ -253,7 +257,11 @@ public final class WSTransportProxy extends TransportSupport implements Transpor LOG.trace("WS Proxy sending {} bytes out", data.remaining()); int limit = data.limit(); - session.getRemote().sendBytes(data); + try { + session.getRemote().sendBytesByFuture(data).get(getDefaultSendTimeOut(), TimeUnit.SECONDS); + } catch (Exception e) { + throw IOExceptionSupport.create(e); + } // Reset back to original limit and move position to match limit indicating // that we read everything, the websocket sender clears the passed buffer @@ -267,4 +275,8 @@ public final class WSTransportProxy extends TransportSupport implements Transpor private boolean transportStartedAtLeastOnce() { return socketTransportStarted.getCount() == 0; } + + private static int getDefaultSendTimeOut() { + return Integer.getInteger("org.apache.activemq.transport.ws.WSTransportProxy.sendTimeout", 30); + } }
