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


Reply via email to