PROTON-843: Java should match C for idle timeout

As discussed on the mailing list. Currently proton-j advertises a
provided local idle timeout value as-is, whereas proton-c will halve it
before sending it to the remote side. The two implementations should
match in behaviour.

Closes #15

(cherry picked from commit 0b439c16e72560d575bce67e5a4300d1ea89ef52)


Project: http://git-wip-us.apache.org/repos/asf/qpid-proton/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-proton/commit/50ab1436
Tree: http://git-wip-us.apache.org/repos/asf/qpid-proton/tree/50ab1436
Diff: http://git-wip-us.apache.org/repos/asf/qpid-proton/diff/50ab1436

Branch: refs/heads/0.9.x
Commit: 50ab143680918f3a812cf529526459ecb6c617f1
Parents: 56101ee
Author: Dominic Evans <[email protected]>
Authored: Thu Apr 2 18:47:14 2015 +0100
Committer: Robert Gemmell <[email protected]>
Committed: Fri Apr 24 15:42:55 2015 +0100

----------------------------------------------------------------------
 .../java/org/apache/qpid/proton/engine/impl/TransportImpl.java  | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/50ab1436/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/TransportImpl.java
----------------------------------------------------------------------
diff --git 
a/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/TransportImpl.java 
b/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/TransportImpl.java
index 852489a..b866ca8 100644
--- 
a/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/TransportImpl.java
+++ 
b/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/TransportImpl.java
@@ -798,8 +798,11 @@ public class TransportImpl extends EndpointImpl
             if (_channelMax > 0) {
                 open.setChannelMax(UnsignedShort.valueOf((short) _channelMax));
             }
+
+            // as per the recommendation in the spec, advertise half our
+            // actual timeout to the remote
             if (_localIdleTimeout > 0) {
-                open.setIdleTimeOut(new UnsignedInteger(_localIdleTimeout));
+                open.setIdleTimeOut(new UnsignedInteger(_localIdleTimeout / 
2));
             }
             _isOpenSent = true;
 


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to