Author: bryanduxbury
Date: Tue Jul 13 23:11:04 2010
New Revision: 963901
URL: http://svn.apache.org/viewvc?rev=963901&view=rev
Log:
THRIFT-818. java: Async client doesn't send method args
This patch amends the tests and fixes the bug.
Modified:
incubator/thrift/trunk/lib/java/src/org/apache/thrift/async/TAsyncClientManager.java
incubator/thrift/trunk/lib/java/src/org/apache/thrift/async/TAsyncMethodCall.java
incubator/thrift/trunk/lib/java/test/org/apache/thrift/async/TestTAsyncClientManager.java
Modified:
incubator/thrift/trunk/lib/java/src/org/apache/thrift/async/TAsyncClientManager.java
URL:
http://svn.apache.org/viewvc/incubator/thrift/trunk/lib/java/src/org/apache/thrift/async/TAsyncClientManager.java?rev=963901&r1=963900&r2=963901&view=diff
==============================================================================
---
incubator/thrift/trunk/lib/java/src/org/apache/thrift/async/TAsyncClientManager.java
(original)
+++
incubator/thrift/trunk/lib/java/src/org/apache/thrift/async/TAsyncClientManager.java
Tue Jul 13 23:11:04 2010
@@ -25,6 +25,7 @@ import java.nio.channels.spi.SelectorPro
import java.util.Iterator;
import java.util.concurrent.ConcurrentLinkedQueue;
+import org.apache.thrift.TException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -42,7 +43,8 @@ public class TAsyncClientManager {
selectThread.start();
}
- public void call(TAsyncMethodCall method) {
+ public void call(TAsyncMethodCall method) throws TException {
+ method.prepareMethodCall();
pendingCalls.add(method);
selectThread.getSelector().wakeup();
}
Modified:
incubator/thrift/trunk/lib/java/src/org/apache/thrift/async/TAsyncMethodCall.java
URL:
http://svn.apache.org/viewvc/incubator/thrift/trunk/lib/java/src/org/apache/thrift/async/TAsyncMethodCall.java?rev=963901&r1=963900&r2=963901&view=diff
==============================================================================
---
incubator/thrift/trunk/lib/java/src/org/apache/thrift/async/TAsyncMethodCall.java
(original)
+++
incubator/thrift/trunk/lib/java/src/org/apache/thrift/async/TAsyncMethodCall.java
Tue Jul 13 23:11:04 2010
@@ -62,7 +62,7 @@ public abstract class TAsyncMethodCall<T
private ByteBuffer frameBuffer;
private State state;
- protected TAsyncMethodCall(TAsyncClient client, TProtocolFactory
protocolFactory, TNonblockingTransport transport, AsyncMethodCallback<T>
callback, boolean isOneway) throws TException {
+ protected TAsyncMethodCall(TAsyncClient client, TProtocolFactory
protocolFactory, TNonblockingTransport transport, AsyncMethodCallback<T>
callback, boolean isOneway) {
this.transport = transport;
this.callback = callback;
this.protocolFactory = protocolFactory;
@@ -70,7 +70,6 @@ public abstract class TAsyncMethodCall<T
this.isOneway = isOneway;
this.state = State.WRITING_REQUEST_SIZE;
- prepareMethodCall();
}
protected State getState() {
@@ -79,7 +78,7 @@ public abstract class TAsyncMethodCall<T
protected abstract void write_args(TProtocol protocol) throws TException;
- private void prepareMethodCall() throws TException {
+ protected void prepareMethodCall() throws TException {
TMemoryBuffer memoryBuffer = new TMemoryBuffer(INITIAL_MEMORY_BUFFER_SIZE);
TProtocol protocol = protocolFactory.getProtocol(memoryBuffer);
write_args(protocol);
Modified:
incubator/thrift/trunk/lib/java/test/org/apache/thrift/async/TestTAsyncClientManager.java
URL:
http://svn.apache.org/viewvc/incubator/thrift/trunk/lib/java/test/org/apache/thrift/async/TestTAsyncClientManager.java?rev=963901&r1=963900&r2=963901&view=diff
==============================================================================
---
incubator/thrift/trunk/lib/java/test/org/apache/thrift/async/TestTAsyncClientManager.java
(original)
+++
incubator/thrift/trunk/lib/java/test/org/apache/thrift/async/TestTAsyncClientManager.java
Tue Jul 13 23:11:04 2010
@@ -47,7 +47,8 @@ public class TestTAsyncClientManager ext
public class SrvHandler implements Iface {
@Override
public int Janky(int arg) throws TException {
- return 0;
+ assertEquals(1, arg);
+ return 3;
}
@Override
@@ -99,7 +100,7 @@ public class TestTAsyncClientManager ext
@Override
public void onComplete(Janky_call response) {
try {
- assertEquals(0, response.getResult());
+ assertEquals(3, response.getResult());
jankyReturned.set(true);
} catch (TException e) {
fail("unexpected exception: " + e);