You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@avro.apache.org by cu...@apache.org on 2010/08/26 02:03:34 UTC

svn commit: r989408 - in /avro/trunk: ./ lang/java/src/java/org/apache/avro/ipc/ lang/java/src/java/org/apache/avro/ipc/trace/ lang/java/src/test/java/org/apache/avro/ lang/java/src/test/java/org/apache/avro/ipc/trace/

Author: cutting
Date: Thu Aug 26 00:03:34 2010
New Revision: 989408

URL: http://svn.apache.org/viewvc?rev=989408&view=rev
Log:
AVRO-631. Java: Make RPC plugin payload reporting consistent.  Contributed by Patrick Wendell.

Modified:
    avro/trunk/CHANGES.txt
    avro/trunk/lang/java/src/java/org/apache/avro/ipc/RPCContext.java
    avro/trunk/lang/java/src/java/org/apache/avro/ipc/Requestor.java
    avro/trunk/lang/java/src/java/org/apache/avro/ipc/Responder.java
    avro/trunk/lang/java/src/java/org/apache/avro/ipc/trace/SpanAggregator.java
    avro/trunk/lang/java/src/test/java/org/apache/avro/RPCMetaTestPlugin.java
    avro/trunk/lang/java/src/test/java/org/apache/avro/ipc/trace/TestSpanAggregation.java

Modified: avro/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/avro/trunk/CHANGES.txt?rev=989408&r1=989407&r2=989408&view=diff
==============================================================================
--- avro/trunk/CHANGES.txt (original)
+++ avro/trunk/CHANGES.txt Thu Aug 26 00:03:34 2010
@@ -139,6 +139,9 @@ Avro 1.4.0 (unreleased)
     AVRO-598. Java: Use generic data structures when reading with
     reflect API and classes are not defined. (cutting)
 
+    AVRO-631. Java: Make RPC plugin payload reporting consistent.
+    (Patrick Wendell via cutting)
+
   BUG FIXES
 
     AVRO-622. python avro.ipc doesn't work with python2.4 (philz)

Modified: avro/trunk/lang/java/src/java/org/apache/avro/ipc/RPCContext.java
URL: http://svn.apache.org/viewvc/avro/trunk/lang/java/src/java/org/apache/avro/ipc/RPCContext.java?rev=989408&r1=989407&r2=989408&view=diff
==============================================================================
--- avro/trunk/lang/java/src/java/org/apache/avro/ipc/RPCContext.java (original)
+++ avro/trunk/lang/java/src/java/org/apache/avro/ipc/RPCContext.java Thu Aug 26 00:03:34 2010
@@ -169,18 +169,18 @@ public class RPCContext {
     this.requestPayload = payload;
   }
  
-  /** Returns the serialized payload of the request in this RPC. Will
-   * not include handshake or meta-data. If the request payload has not been
-   * set yet, returns null.
+  /** Returns the serialized payload of the request in this RPC. Will only be
+   * generated from a Requestor and will not include handshake or meta-data. 
+   * If the request payload has not been set yet, returns null.
    * 
    * @return this RPC's request payload.*/
   public List<ByteBuffer> getRequestPayload() {
     return this.requestPayload;
   }
   
-  /** Returns the serialized payload of the response in this RPC. Will
-   * not include handshake or meta-data. If the response payload has not been
-   * set yet, returns null.
+  /** Returns the serialized payload of the response in this RPC. Will only be
+   * generated from a Responder and will not include handshake or meta-data. 
+   * If the response payload has not been set yet, returns null.
    * 
    * @return this RPC's response payload.*/
   public List<ByteBuffer> getResponsePayload() {

Modified: avro/trunk/lang/java/src/java/org/apache/avro/ipc/Requestor.java
URL: http://svn.apache.org/viewvc/avro/trunk/lang/java/src/java/org/apache/avro/ipc/Requestor.java?rev=989408&r1=989407&r2=989408&view=diff
==============================================================================
--- avro/trunk/lang/java/src/java/org/apache/avro/ipc/Requestor.java (original)
+++ avro/trunk/lang/java/src/java/org/apache/avro/ipc/Requestor.java Thu Aug 26 00:03:34 2010
@@ -121,7 +121,6 @@ public abstract class Requestor {
         return null;
       } else {                                    // two-way message
         List<ByteBuffer> response = t.transceive(requestBytes);
-        context.setResponsePayload(response);
         ByteBufferInputStream bbi = new ByteBufferInputStream(response);
         in = DecoderFactory.defaultFactory().createBinaryDecoder(bbi, in);
       }

Modified: avro/trunk/lang/java/src/java/org/apache/avro/ipc/Responder.java
URL: http://svn.apache.org/viewvc/avro/trunk/lang/java/src/java/org/apache/avro/ipc/Responder.java?rev=989408&r1=989407&r2=989408&view=diff
==============================================================================
--- avro/trunk/lang/java/src/java/org/apache/avro/ipc/Responder.java (original)
+++ avro/trunk/lang/java/src/java/org/apache/avro/ipc/Responder.java Thu Aug 26 00:03:34 2010
@@ -117,7 +117,6 @@ public abstract class Responder {
       
       Object request = readRequest(rm.getRequest(), in);
       
-      context.setRequestPayload(buffers);
       context.setMessage(rm);
       for (RPCPlugin plugin : rpcMetaPlugins) {
         plugin.serverReceiveRequest(context);

Modified: avro/trunk/lang/java/src/java/org/apache/avro/ipc/trace/SpanAggregator.java
URL: http://svn.apache.org/viewvc/avro/trunk/lang/java/src/java/org/apache/avro/ipc/trace/SpanAggregator.java?rev=989408&r1=989407&r2=989408&view=diff
==============================================================================
--- avro/trunk/lang/java/src/java/org/apache/avro/ipc/trace/SpanAggregator.java (original)
+++ avro/trunk/lang/java/src/java/org/apache/avro/ipc/trace/SpanAggregator.java Thu Aug 26 00:03:34 2010
@@ -115,6 +115,10 @@ public class SpanAggregator {
             for (TimestampedEvent event: other.events) {
               s.events.add(event);
             }
+            s.requestPayloadSize = Math.max(
+                s.requestPayloadSize, other.requestPayloadSize);
+            s.responsePayloadSize = Math.max(
+                s.responsePayloadSize, other.responsePayloadSize);
             s.complete = true;
             out.completeSpans.add(s);
           }

Modified: avro/trunk/lang/java/src/test/java/org/apache/avro/RPCMetaTestPlugin.java
URL: http://svn.apache.org/viewvc/avro/trunk/lang/java/src/test/java/org/apache/avro/RPCMetaTestPlugin.java?rev=989408&r1=989407&r2=989408&view=diff
==============================================================================
--- avro/trunk/lang/java/src/test/java/org/apache/avro/RPCMetaTestPlugin.java (original)
+++ avro/trunk/lang/java/src/test/java/org/apache/avro/RPCMetaTestPlugin.java Thu Aug 26 00:03:34 2010
@@ -111,7 +111,6 @@ public final class RPCMetaTestPlugin ext
     
     Assert.assertNotNull(meta);    
     Assert.assertNotNull(context.getMessage());
-    Assert.assertNotNull(context.getRequestPayload());
     Assert.assertNull(context.getResponsePayload());
     
     if (!meta.containsKey(key)) return;
@@ -134,7 +133,6 @@ public final class RPCMetaTestPlugin ext
     Assert.assertNotNull(context.requestCallMeta());
     Assert.assertNotNull(context.responseCallMeta());
 
-    Assert.assertNotNull(context.getRequestPayload());
     Assert.assertNotNull(context.getResponsePayload());
     
     if (!context.requestCallMeta().containsKey(key)) return;
@@ -156,7 +154,6 @@ public final class RPCMetaTestPlugin ext
   public void clientReceiveResponse(RPCContext context) {
     Assert.assertNotNull(context.responseCallMeta());
     Assert.assertNotNull(context.getRequestPayload());
-    Assert.assertNotNull(context.getResponsePayload());
     
     if (!context.responseCallMeta().containsKey(key)) return;
     

Modified: avro/trunk/lang/java/src/test/java/org/apache/avro/ipc/trace/TestSpanAggregation.java
URL: http://svn.apache.org/viewvc/avro/trunk/lang/java/src/test/java/org/apache/avro/ipc/trace/TestSpanAggregation.java?rev=989408&r1=989407&r2=989408&view=diff
==============================================================================
--- avro/trunk/lang/java/src/test/java/org/apache/avro/ipc/trace/TestSpanAggregation.java (original)
+++ avro/trunk/lang/java/src/test/java/org/apache/avro/ipc/trace/TestSpanAggregation.java Thu Aug 26 00:03:34 2010
@@ -46,7 +46,12 @@ public class TestSpanAggregation {
   @Test
   public void testSpanCompletion1() {
     Span span1a = createClientSpan(idValue(1), idValue(1), null, new Utf8("a"));
+    span1a.requestPayloadSize = 10;
+    span1a.responsePayloadSize = 0;
+    
     Span span1b = createServerSpan(idValue(1), idValue(1), null, new Utf8("a"));
+    span1b.requestPayloadSize = 0;
+    span1b.responsePayloadSize = 11;
     
     List<Span> partials = new ArrayList<Span>();
     partials.add(span1a);
@@ -62,6 +67,8 @@ public class TestSpanAggregation {
     assertEquals(null, result.parentSpanID);
     assertTrue(idsEqual(idValue(1), result.spanID));
     assertEquals(4, result.events.size());
+    assertEquals(10, result.requestPayloadSize);
+    assertEquals(11, result.responsePayloadSize);
   }
   
   /**