diff --git a/serde/src/java/org/apache/hadoop/hive/serde2/avro/InstanceCache.java b/serde/src/java/org/apache/hadoop/hive/serde2/avro/InstanceCache.java index 0b10d99..23f6f01 100644 --- a/serde/src/java/org/apache/hadoop/hive/serde2/avro/InstanceCache.java +++ b/serde/src/java/org/apache/hadoop/hive/serde2/avro/InstanceCache.java @@ -33,7 +33,7 @@ */ public abstract class InstanceCache { private static final Log LOG = LogFactory.getLog(InstanceCache.class); - HashMap cache = new HashMap(); + HashMap cache = new HashMap(); public InstanceCache() {} @@ -53,15 +53,15 @@ public Instance retrieve(SeedObject hv, Set seenSchemas) throws AvroSerdeException { if(LOG.isDebugEnabled()) LOG.debug("Checking for hv: " + hv.toString()); - if(cache.containsKey(hv.hashCode())) { + if(cache.containsKey(hv)) { if(LOG.isDebugEnabled()) LOG.debug("Returning cache result."); - return cache.get(hv.hashCode()); + return cache.get(hv); } if(LOG.isDebugEnabled()) LOG.debug("Creating new instance and storing in cache"); Instance instance = makeInstance(hv, seenSchemas); - cache.put(hv.hashCode(), instance); + cache.put(hv, instance); return instance; }