@Override
 public int hashCode() {
   int result = statusCode;
   result = 31 * result + (exceptionDiagnosis != null ? exceptionDiagnosis.hashCode() : 0);
   result = 31 * result + (response != null ? response.hashCode() : 0);
   result = 31 * result + (errorMessage != null ? errorMessage.hashCode() : 0);
   result = 31 * result + (requestPath != null ? requestPath.hashCode() : 0);
   result = 31 * result + (nested ? 1 : 0);
   return result;
 }
  @Override
  public boolean equals(Object o) {
    if (this == o) return true;
    if (!(o instanceof TwitterException)) return false;

    TwitterException that = (TwitterException) o;

    if (nested != that.nested) return false;
    if (statusCode != that.statusCode) return false;
    if (errorMessage != null ? !errorMessage.equals(that.errorMessage) : that.errorMessage != null)
      return false;
    if (exceptionDiagnosis != null
        ? !exceptionDiagnosis.equals(that.exceptionDiagnosis)
        : that.exceptionDiagnosis != null) return false;
    if (requestPath != null ? !requestPath.equals(that.requestPath) : that.requestPath != null)
      return false;
    if (response != null ? !response.equals(that.response) : that.response != null) return false;

    return true;
  }