### Question:
ProblemReport { @Override public int hashCode() { return tableId.hashCode() + problemType.hashCode() + resource.hashCode(); } ProblemReport(TableId tableId, ProblemType problemType, String resource, String server,
      Throwable e, long creationTime);  ProblemReport(TableId tableId, ProblemType problemType, String resource, String server,
      Throwable e);  ProblemReport(TableId tableId, ProblemType problemType, String resource, Throwable e); private  ProblemReport(TableId table, ProblemType problemType, String resource, byte[] enc); static ProblemReport decodeMetadataEntry(Entry<Key,Value> entry); TableId getTableId(); ProblemType getProblemType(); String getResource(); String getException(); String getServer(); long getTime(); @Override int hashCode(); @Override boolean equals(Object o);  }### Answer:
@Test public void testHashCode() { r = new ProblemReport(TABLE_ID, ProblemType.FILE_READ, RESOURCE, SERVER, null); ProblemReport r2 = new ProblemReport(TABLE_ID, ProblemType.FILE_READ, RESOURCE, SERVER, null); assertEquals(r.hashCode(), r2.hashCode()); ProblemReport re1 = new ProblemReport(TABLE_ID, ProblemType.FILE_READ, RESOURCE, SERVER + "x", null); assertEquals(r.hashCode(), re1.hashCode()); ProblemReport re2 = new ProblemReport(TABLE_ID, ProblemType.FILE_READ, RESOURCE, SERVER, new IllegalArgumentException("yikes")); assertEquals(r.hashCode(), re2.hashCode()); }