TAsyncClient class's currentMethod is never used, hence a second call on the
same client will fail if a previous call is ongoing.
---------------------------------------------------------------------------------------------------------------------------------
Key: THRIFT-945
URL: https://issues.apache.org/jira/browse/THRIFT-945
Project: Thrift
Issue Type: Bug
Components: Java - Library
Affects Versions: 0.4
Reporter: Zhenlei Cai
TAsyncClient has this check:
protected void checkReady() {
// Ensure we are not currently executing a method
if (currentMethod != null) {
throw new IllegalStateException("Client is currently executing another
method: " + currentMethod.getClass().getName());
}
However currentMethod is not being set anywhere.
In my code I have a TAsyncClient and method calls made on it are not
necessarily serialized (one starts after previous finishes), so interleaving
calls will fail with mysterious messages such as:
java.lang.IllegalArgumentException
at java.nio.ByteBuffer.allocate(ByteBuffer.java:311)
at
org.apache.thrift.async.TAsyncMethodCall.doReadingResponseSize(TAsyncMethodCall.java:175)
at
org.apache.thrift.async.TAsyncMethodCall.transition(TAsyncMethodCall.java:128)
at
org.apache.thrift.async.TAsyncClientManager$SelectThread.run(TAsyncClientManager.java:99)
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.