You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@avro.apache.org by th...@apache.org on 2010/01/29 11:12:38 UTC

svn commit: r904448 - in /hadoop/avro/trunk: CHANGES.txt lang/java/src/java/org/apache/avro/io/BlockingBinaryEncoder.java lang/java/src/test/java/org/apache/avro/io/TestEncoders.java

Author: thiru
Date: Fri Jan 29 10:12:35 2010
New Revision: 904448

URL: http://svn.apache.org/viewvc?rev=904448&view=rev
Log:
AVRO-385. Initializing uninizialized BlockingBinaryEncoder fails

Modified:
    hadoop/avro/trunk/CHANGES.txt
    hadoop/avro/trunk/lang/java/src/java/org/apache/avro/io/BlockingBinaryEncoder.java
    hadoop/avro/trunk/lang/java/src/test/java/org/apache/avro/io/TestEncoders.java

Modified: hadoop/avro/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/avro/trunk/CHANGES.txt?rev=904448&r1=904447&r2=904448&view=diff
==============================================================================
--- hadoop/avro/trunk/CHANGES.txt (original)
+++ hadoop/avro/trunk/CHANGES.txt Fri Jan 29 10:12:35 2010
@@ -396,6 +396,8 @@
 
     AVRO-382. Avro hashCode throws a NullPointerException when fields are uninitialized (Michael Armbrust via philz)
 
+    AVRO-385. Initializing uninizialized BlockingBinaryEncoder fails (thiru)
+
 Avro 1.2.0 (14 October 2009)
 
   INCOMPATIBLE CHANGES

Modified: hadoop/avro/trunk/lang/java/src/java/org/apache/avro/io/BlockingBinaryEncoder.java
URL: http://svn.apache.org/viewvc/hadoop/avro/trunk/lang/java/src/java/org/apache/avro/io/BlockingBinaryEncoder.java?rev=904448&r1=904447&r2=904448&view=diff
==============================================================================
--- hadoop/avro/trunk/lang/java/src/java/org/apache/avro/io/BlockingBinaryEncoder.java (original)
+++ hadoop/avro/trunk/lang/java/src/java/org/apache/avro/io/BlockingBinaryEncoder.java Fri Jan 29 10:12:35 2010
@@ -247,16 +247,18 @@
 
   @Override
   public void flush() throws IOException {
-    BlockedValue bv = blockStack[stackTop];
-    if (bv.state == BlockedValue.State.ROOT) {
-      out.write(buf, 0, pos);
-      pos = 0;
-    } else {
-      while (bv.state != BlockedValue.State.OVERFLOW) {
-        compact();
+    if (out != null) {
+      BlockedValue bv = blockStack[stackTop];
+      if (bv.state == BlockedValue.State.ROOT) {
+        out.write(buf, 0, pos);
+        pos = 0;
+      } else {
+        while (bv.state != BlockedValue.State.OVERFLOW) {
+          compact();
+        }
       }
+      out.flush();
     }
-    out.flush();
 
     assert check();
   }

Modified: hadoop/avro/trunk/lang/java/src/test/java/org/apache/avro/io/TestEncoders.java
URL: http://svn.apache.org/viewvc/hadoop/avro/trunk/lang/java/src/test/java/org/apache/avro/io/TestEncoders.java?rev=904448&r1=904447&r2=904448&view=diff
==============================================================================
--- hadoop/avro/trunk/lang/java/src/test/java/org/apache/avro/io/TestEncoders.java (original)
+++ hadoop/avro/trunk/lang/java/src/test/java/org/apache/avro/io/TestEncoders.java Fri Jan 29 10:12:35 2010
@@ -32,6 +32,12 @@
   }
 
   @Test
+  public void testBlockingBinaryEncoderInit() throws IOException {
+    OutputStream out = null;
+    new BlockingBinaryEncoder(out).init(new ByteArrayOutputStream());
+  }
+
+  @Test
   public void testJsonEncoderInit() throws IOException {
     Schema s = Schema.parse("\"int\"");
     OutputStream out = null;