[ https://issues.apache.org/jira/browse/AVRO-2351?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Nandor Kollar resolved AVRO-2351. --------------------------------- Resolution: Fixed Fix Version/s: 1.9.0 > Long/Int in Binary Decoder > -------------------------- > > Key: AVRO-2351 > URL: https://issues.apache.org/jira/browse/AVRO-2351 > Project: Apache Avro > Issue Type: Improvement > Components: java > Affects Versions: 1.9.0 > Reporter: David Mollitor > Assignee: David Mollitor > Priority: Minor > Fix For: 1.9.0 > > > {code:java|title=BinaryDecoder.java} > /** > * Returns the number of items to follow in the current array or map. > Returns > * 0 if there are no more items in the current array and the array/map has > * ended. > * > * @throws IOException > */ > protected long doReadItemCount() throws IOException { > long result = readLong(); > if (result < 0) { > readLong(); // Consume byte-count if present > result = -result; > } > return result; > } > /** > * Reads the count of items in the current array or map and skip those > items, > * if possible. If it could skip the items, keep repeating until there are > no > * more items left in the array or map. If items cannot be skipped (because > * byte count to skip is not found in the stream) return the count of the > * items found. The client needs to skip the items individually. > * > * @return Zero if there are no more items to skip and end of array/map is > * reached. Positive number if some items are found that cannot be > * skipped and the client needs to skip them individually. > * @throws IOException > */ > private long doSkipItems() throws IOException { > long result = readInt(); > while (result < 0) { > long bytecount = readLong(); > doSkipBytes(bytecount); > result = readInt(); > } > return result; > } > {code} > https://github.com/apache/avro/blob/master/lang/java/avro/src/main/java/org/apache/avro/io/BinaryDecoder.java#L370-L406 > The spec states that the sizes are {{long}} values.The {{doReadItemCount}} > method has it correct and the {{doSkipItems}} method uses {{int}} values > values. > https://avro.apache.org/docs/1.8.2/spec.html#binary_encode_complex -- This message was sent by Atlassian JIRA (v7.6.3#76005)