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);
+    }
 }

Reply via email to