opwvhk commented on code in PR #1639:
URL: https://github.com/apache/avro/pull/1639#discussion_r852595847
##########
lang/java/avro/src/main/java/org/apache/avro/file/DataFileReader12.java:
##########
@@ -61,6 +61,7 @@ public DataFileReader12(SeekableInput sin, DatumReader<D>
reader) throws IOExcep
this.in = new DataFileReader.SeekableInputStream(sin);
byte[] magic = new byte[4];
+ in.seek(0); // seek to 0 to read magic header
in.read(magic);
Review Comment:
~If fewer bytes come back, `read()` returns another number than 4 (this is
discarded), and the leftover part of the array contains zeroes.~
~This fails the magic check later.~
The mismatch @rbalamohan mentioned only occurs with network traffic, and
then only if the first part of the network packet contains an application
specific header of up to 1459 bytes, fragmenting the first 4 bytes of the avro
file.
Though unlikely, it's probably best to implement `readFully` here as well.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]