Updated Branches: refs/heads/master 9aa08a9f6 -> 194f0114c
THRIFT-2108 java: Fix TAsyncClientManager timeout race Patch: Vadim Spivak Project: http://git-wip-us.apache.org/repos/asf/thrift/repo Commit: http://git-wip-us.apache.org/repos/asf/thrift/commit/194f0114 Tree: http://git-wip-us.apache.org/repos/asf/thrift/tree/194f0114 Diff: http://git-wip-us.apache.org/repos/asf/thrift/diff/194f0114 Branch: refs/heads/master Commit: 194f0114c27f6a41c96be6d5702895bf5c1519e3 Parents: 9aa08a9 Author: Roger Meier <[email protected]> Authored: Wed Jan 22 00:10:31 2014 +0100 Committer: Roger Meier <[email protected]> Committed: Wed Jan 22 00:10:31 2014 +0100 ---------------------------------------------------------------------- lib/java/src/org/apache/thrift/async/TAsyncMethodCall.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/thrift/blob/194f0114/lib/java/src/org/apache/thrift/async/TAsyncMethodCall.java ---------------------------------------------------------------------- diff --git a/lib/java/src/org/apache/thrift/async/TAsyncMethodCall.java b/lib/java/src/org/apache/thrift/async/TAsyncMethodCall.java index fcd50ea..5c679b6 100644 --- a/lib/java/src/org/apache/thrift/async/TAsyncMethodCall.java +++ b/lib/java/src/org/apache/thrift/async/TAsyncMethodCall.java @@ -65,7 +65,8 @@ public abstract class TAsyncMethodCall<T> { private final AsyncMethodCallback<T> callback; private final boolean isOneway; private long sequenceId; - + private final long timeout; + private ByteBuffer sizeBuffer; private final byte[] sizeBufferArray = new byte[4]; private ByteBuffer frameBuffer; @@ -79,6 +80,7 @@ public abstract class TAsyncMethodCall<T> { this.client = client; this.isOneway = isOneway; this.sequenceId = TAsyncMethodCall.sequenceIdCounter.getAndIncrement(); + this.timeout = client.getTimeout(); } protected State getState() { @@ -102,11 +104,11 @@ public abstract class TAsyncMethodCall<T> { } public boolean hasTimeout() { - return client.hasTimeout(); + return timeout > 0; } public long getTimeoutTimestamp() { - return client.getTimeout() + startTime; + return timeout + startTime; } protected abstract void write_args(TProtocol protocol) throws TException;
