Author: cutting
Date: Mon Feb  8 23:37:55 2010
New Revision: 907845

URL: http://svn.apache.org/viewvc?rev=907845&view=rev
Log:
AVRO-407.  Fix a bug in the Java data file reader.  Contributed by Scott Carey.

Modified:
    hadoop/avro/trunk/CHANGES.txt
    
hadoop/avro/trunk/lang/java/src/java/org/apache/avro/file/DataFileStream.java

Modified: hadoop/avro/trunk/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/hadoop/avro/trunk/CHANGES.txt?rev=907845&r1=907844&r2=907845&view=diff
==============================================================================
--- hadoop/avro/trunk/CHANGES.txt (original)
+++ hadoop/avro/trunk/CHANGES.txt Mon Feb  8 23:37:55 2010
@@ -461,6 +461,8 @@
 
     AVRO-408. lang/c/build.sh 'dist' broken (massie)
 
+    AVRO-407. Fix a bug in the Java data file reader. (Scott Carey via cutting)
+
 Avro 1.2.0 (14 October 2009)
 
   INCOMPATIBLE CHANGES

Modified: 
hadoop/avro/trunk/lang/java/src/java/org/apache/avro/file/DataFileStream.java
URL: 
http://svn.apache.org/viewvc/hadoop/avro/trunk/lang/java/src/java/org/apache/avro/file/DataFileStream.java?rev=907845&r1=907844&r2=907845&view=diff
==============================================================================
--- 
hadoop/avro/trunk/lang/java/src/java/org/apache/avro/file/DataFileStream.java 
(original)
+++ 
hadoop/avro/trunk/lang/java/src/java/org/apache/avro/file/DataFileStream.java 
Mon Feb  8 23:37:55 2010
@@ -150,16 +150,12 @@
           }
         }
         blockRemaining = vin.readLong();          // read block count
-        long compressedSize = vin.readLong(); // read block size
+        long compressedSize = vin.readLong();     // read block size
         if (compressedSize > Integer.MAX_VALUE) {
           throw new IOException("Block size too large: " + compressedSize);
         }
         byte[] block = new byte[(int)compressedSize];
-        // if vin buffers in, the below will needs to handle it
-        int sizeRead = in.read(block); 
-        if (sizeRead != compressedSize) {
-          throw new IOException("Incomplete Block");
-        }
+        vin.readFixed(block, 0, (int)compressedSize); 
         datumIn = codec.decompress(block);
       }
       return blockRemaining != 0;


Reply via email to