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;


Reply via email to