[ https://issues.apache.org/jira/browse/HIVE-5865?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14158095#comment-14158095 ]
Ben Roling commented on HIVE-5865: ---------------------------------- Hey [~brocknoland] - the HCatLoader tests failed again but as I stated previously, those tests are failing without any of the changes from this JIRA. Is there anything more you want me to do on this? Are those test failures something someone else is already looking at? I would have to assume they are being seen in other builds as well. > AvroDeserializer incorrectly assumes keys to Maps will always be of type > 'org.apache.avro.util.Utf8' > ---------------------------------------------------------------------------------------------------- > > Key: HIVE-5865 > URL: https://issues.apache.org/jira/browse/HIVE-5865 > Project: Hive > Issue Type: Bug > Affects Versions: 0.11.0, 0.12.0, 0.13.0 > Reporter: Ben Roling > Attachments: HIVE-5865-v2.patch, HIVE-5865.2.patch, > HIVE-5865.2.patch, HIVE-5865.patch > > > AvroDeserializer. deserializeMap() incorrectly assumes the type of they keys > will always be 'org.apache.avro.util.Utf8'. If the reader schema defines > "avro.java.string"="String", this assumption does not hold, resulting in a > ClassCastException. > I think a simple fix would be to define 'mapDatum' with type > Map<CharSequence,Object> instead of Map<Utf8,Object>. Assuming the key has > the more general type of 'CharSequence' avoids the need to make an assumption > of either String or Utf8. > I discovered the issue when using Hive 0.11.0. Looking at the tags it is > also there is in 0.12.0 and trunk: > https://github.com/apache/hive/blob/99f5bfcdf64330d062a30c0c9d83be1fbee54c34/serde/src/java/org/apache/hadoop/hive/serde2/avro/AvroDeserializer.java#L313 > The reason I saw this issue was because I pointed my Hive table to a schema > file I populated based on pulling the schema from the SCHEMA$ attribute of an > Avro generated Java class and I used stringType=String in the configuration > of the avro-maven-plugin when generating my Java classes. > If I alter the schema my Hive table points to such that it doesn't have the > "avro.java.string" attribute on my "map" type objects then queries work fine > but if I leave those in there I get the ClassCastException anytime I try to > query the table. -- This message was sent by Atlassian JIRA (v6.3.4#6332)