Program: 117589
Project: 117589
Buggy source:
@Override public boolean equals(final Object obj){
  if (this == obj) {
    return true;
  }
  if (obj == null) {
    return false;
  }
  if (getClass() != obj.getClass()) {
    return false;
  }
  final Configuration other=(Configuration)obj;
  if (APIKey == null) {
    if (other.APIKey != null) {
      return false;
    }
  }
 else   if (!APIKey.equals(other.APIKey)) {
    return false;
  }
  if (http404Strategy == null) {
    if (other.http404Strategy != null) {
      return false;
    }
  }
 else   if (!http404Strategy.equals(other.http404Strategy)) {
    return false;
  }
  if (http429Strategy == null) {
    if (other.http429Strategy != null) {
      return false;
    }
  }
 else   if (!http429Strategy.equals(other.http429Strategy)) {
    return false;
  }
  if (http500Strategy == null) {
    if (other.http500Strategy != null) {
      return false;
    }
  }
 else   if (!http500Strategy.equals(other.http500Strategy)) {
    return false;
  }
  if (http503Strategy == null) {
    if (other.http503Strategy != null) {
      return false;
    }
  }
 else   if (!http503Strategy.equals(other.http503Strategy)) {
    return false;
  }
  if (httpTimeoutStrategy == null) {
    if (other.httpTimeoutStrategy != null) {
      return false;
    }
  }
 else   if (!httpTimeoutStrategy.equals(other.httpTimeoutStrategy)) {
    return false;
  }
  if (Double.doubleToLongBits(limitingShare) != Double.doubleToLongBits(other.limitingShare)) {
    return false;
  }
  if (limitingType != other.limitingType) {
    return false;
  }
  if (rateLimiterTimeoutStrategy == null) {
    if (other.rateLimiterTimeoutStrategy != null) {
      return false;
    }
  }
 else   if (!rateLimiterTimeoutStrategy.equals(other.rateLimiterTimeoutStrategy)) {
    return false;
  }
  if (requests == null) {
    if (other.requests != null) {
      return false;
    }
  }
 else   if (!requests.equals(other.requests)) {
    return false;
  }
  if (services == null) {
    if (other.services != null) {
      return false;
    }
  }
 else   if (!services.equals(other.services)) {
    return false;
  }
  return true;
}

Fixed version (ground truth):
@Override public boolean equals(final Object obj){
  if (this == obj) {
    return true;
  }
  if (obj == null) {
    return false;
  }
  if (getClass() != obj.getClass()) {
    return false;
  }
  final Configuration other=(Configuration)obj;
  if (apiKey == null) {
    if (other.apiKey != null) {
      return false;
    }
  }
 else   if (!apiKey.equals(other.apiKey)) {
    return false;
  }
  if (http404Strategy == null) {
    if (other.http404Strategy != null) {
      return false;
    }
  }
 else   if (!http404Strategy.equals(other.http404Strategy)) {
    return false;
  }
  if (http429Strategy == null) {
    if (other.http429Strategy != null) {
      return false;
    }
  }
 else   if (!http429Strategy.equals(other.http429Strategy)) {
    return false;
  }
  if (http500Strategy == null) {
    if (other.http500Strategy != null) {
      return false;
    }
  }
 else   if (!http500Strategy.equals(other.http500Strategy)) {
    return false;
  }
  if (http503Strategy == null) {
    if (other.http503Strategy != null) {
      return false;
    }
  }
 else   if (!http503Strategy.equals(other.http503Strategy)) {
    return false;
  }
  if (httpTimeoutStrategy == null) {
    if (other.httpTimeoutStrategy != null) {
      return false;
    }
  }
 else   if (!httpTimeoutStrategy.equals(other.httpTimeoutStrategy)) {
    return false;
  }
  if (Double.doubleToLongBits(limitingShare) != Double.doubleToLongBits(other.limitingShare)) {
    return false;
  }
  if (limitingType != other.limitingType) {
    return false;
  }
  if (rateLimiterTimeoutStrategy == null) {
    if (other.rateLimiterTimeoutStrategy != null) {
      return false;
    }
  }
 else   if (!rateLimiterTimeoutStrategy.equals(other.rateLimiterTimeoutStrategy)) {
    return false;
  }
  if (requests == null) {
    if (other.requests != null) {
      return false;
    }
  }
 else   if (!requests.equals(other.requests)) {
    return false;
  }
  if (services == null) {
    if (other.services != null) {
      return false;
    }
  }
 else   if (!services.equals(other.services)) {
    return false;
  }
  return true;
}