diff --git a/ql/src/java/org/apache/hadoop/hive/ql/lockmgr/zookeeper/ZooKeeperHiveLock.java b/ql/src/java/org/apache/hadoop/hive/ql/lockmgr/zookeeper/ZooKeeperHiveLock.java index 8e35007..463a339 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/lockmgr/zookeeper/ZooKeeperHiveLock.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/lockmgr/zookeeper/ZooKeeperHiveLock.java @@ -18,6 +18,7 @@ package org.apache.hadoop.hive.ql.lockmgr.zookeeper; +import org.apache.commons.lang.builder.HashCodeBuilder; import org.apache.hadoop.hive.ql.lockmgr.HiveLock; import org.apache.hadoop.hive.ql.lockmgr.HiveLockMode; import org.apache.hadoop.hive.ql.lockmgr.HiveLockObject; @@ -71,4 +72,25 @@ public boolean equals(Object o) { obj.equals(zLock.getHiveLockObject()) && mode == zLock.getHiveLockMode(); } + + @Override + public int hashCode() { + HashCodeBuilder builder = new HashCodeBuilder(); + boolean pathPresent = path != null; + builder.append(pathPresent); + if (pathPresent) { + builder.append(path.toCharArray()); + } + boolean lockObjectPresent = obj != null; + builder.append(lockObjectPresent); + if (lockObjectPresent) { + builder.append(obj.hashCode()); + } + boolean modePresent = mode != null; + builder.append(modePresent); + if (modePresent) { + builder.append(mode); + } + return builder.toHashCode(); + } }