You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nutch.apache.org by cu...@apache.org on 2006/01/09 22:50:50 UTC

svn commit: r367406 - in /lucene/nutch/trunk/src: java/org/apache/nutch/ipc/RPC.java test/org/apache/nutch/ipc/TestRPC.java

Author: cutting
Date: Mon Jan  9 13:50:48 2006
New Revision: 367406

URL: http://svn.apache.org/viewcvs?rev=367406&view=rev
Log:
Fix parallel RPC calls to work correctly with methods that return void.

Modified:
    lucene/nutch/trunk/src/java/org/apache/nutch/ipc/RPC.java
    lucene/nutch/trunk/src/test/org/apache/nutch/ipc/TestRPC.java

Modified: lucene/nutch/trunk/src/java/org/apache/nutch/ipc/RPC.java
URL: http://svn.apache.org/viewcvs/lucene/nutch/trunk/src/java/org/apache/nutch/ipc/RPC.java?rev=367406&r1=367405&r2=367406&view=diff
==============================================================================
--- lucene/nutch/trunk/src/java/org/apache/nutch/ipc/RPC.java (original)
+++ lucene/nutch/trunk/src/java/org/apache/nutch/ipc/RPC.java Mon Jan  9 13:50:48 2006
@@ -149,6 +149,10 @@
     
     Writable[] wrappedValues = CLIENT.call(invocations, addrs);
     
+    if (method.getReturnType() == Void.TYPE) {
+      return null;
+    }
+
     Object[] values =
       (Object[])Array.newInstance(method.getReturnType(),wrappedValues.length);
     for (int i = 0; i < values.length; i++)

Modified: lucene/nutch/trunk/src/test/org/apache/nutch/ipc/TestRPC.java
URL: http://svn.apache.org/viewcvs/lucene/nutch/trunk/src/test/org/apache/nutch/ipc/TestRPC.java?rev=367406&r1=367405&r2=367406&view=diff
==============================================================================
--- lucene/nutch/trunk/src/test/org/apache/nutch/ipc/TestRPC.java (original)
+++ lucene/nutch/trunk/src/test/org/apache/nutch/ipc/TestRPC.java Mon Jan  9 13:50:48 2006
@@ -110,13 +110,17 @@
     }
     assertTrue(caught);
 
-    // try a multi-call
-    Method method =
+    // try some multi-calls
+    Method echo =
       TestProtocol.class.getMethod("echo", new Class[] { String.class });
-    String[] values = (String[])RPC.call(method, new String[][]{{"a"},{"b"}},
+    String[] strings = (String[])RPC.call(echo, new String[][]{{"a"},{"b"}},
                                          new InetSocketAddress[] {addr, addr});
-    assertTrue(Arrays.equals(values, new String[]{"a","b"}));
+    assertTrue(Arrays.equals(strings, new String[]{"a","b"}));
 
+    Method ping = TestProtocol.class.getMethod("ping", new Class[] {});
+    Object[] voids = (Object[])RPC.call(ping, new Object[][]{{},{}},
+                                        new InetSocketAddress[] {addr, addr});
+    assertEquals(voids, null);
 
     server.stop();
   }