@Override public int hashCode() {
      int result = source.hashCode();
      result = 31 * result + target.hashCode();
      return result;
    }
An object that represents the source and target of a semi-join reducer.

The objects are meant to be used as keys in maps so it is required to implement hashCode and equals methods.
ql/src/java/org/apache/hadoop/hive/ql/optimizer/SemiJoinReductionMerge.java