Program: 20356
Project: 20356
Buggy source:
public synchronized boolean equals(java.lang.Object obj){
  if (!(obj instanceof BusinessPartner))   return false;
  BusinessPartner other=(BusinessPartner)obj;
  if (obj == null)   return false;
  if (this == obj)   return true;
  if (__equalsCalc != null) {
    return (__equalsCalc == obj);
  }
  __equalsCalc=obj;
  boolean _equals;
  _equals=true && this.clientId == other.getClientId() && ((this.complete == null && other.getComplete() == null) || (this.complete != null && this.complete.equals(other.getComplete()))) && ((this.contacts == null && other.getContacts() == null) || (this.contacts != null && java.util.Arrays.equals(this.contacts,other.getContacts()))) && ((this.customer == null && other.getCustomer() == null) || (this.customer != null && this.customer.equals(other.getCustomer()))) && ((this.description == null && other.getDescription() == null) || (this.description != null && this.description.equals(other.getDescription()))) && this.id == other.getId() && ((this.locations == null && other.getLocations() == null) || (this.locations != null && java.util.Arrays.equals(this.locations,other.getLocations()))) && ((this.name == null && other.getName() == null) || (this.name != null && this.name.equals(other.getName()))) && ((this.searchKey == null && other.getSearchKey() == null) || (this.searchKey != null && this.searchKey.equals(other.getSearchKey()))) && ((this.vendor == null && other.getVendor() == null) || (this.vendor != null && this.vendor.equals(other.getVendor())));
  __equalsCalc=null;
  return _equals;
}

Fixed version (ground truth):
public synchronized boolean equals(java.lang.Object obj){
  if (!(obj instanceof BusinessPartner))   return false;
  BusinessPartner other=(BusinessPartner)obj;
  if (obj == null)   return false;
  if (this == obj)   return true;
  if (__equalsCalc != null) {
    return (__equalsCalc == obj);
  }
  __equalsCalc=obj;
  boolean _equals;
  _equals=true && ((this.clientId == null && other.getClientId() == null) || (this.clientId != null && this.clientId.equals(other.getClientId()))) && ((this.complete == null && other.getComplete() == null) || (this.complete != null && this.complete.equals(other.getComplete())))&& ((this.contacts == null && other.getContacts() == null) || (this.contacts != null && java.util.Arrays.equals(this.contacts,other.getContacts())))&& ((this.customer == null && other.getCustomer() == null) || (this.customer != null && this.customer.equals(other.getCustomer())))&& ((this.description == null && other.getDescription() == null) || (this.description != null && this.description.equals(other.getDescription())))&& ((this.id == null && other.getId() == null) || (this.id != null && this.id.equals(other.getId())))&& ((this.locations == null && other.getLocations() == null) || (this.locations != null && java.util.Arrays.equals(this.locations,other.getLocations())))&& ((this.name == null && other.getName() == null) || (this.name != null && this.name.equals(other.getName())))&& ((this.searchKey == null && other.getSearchKey() == null) || (this.searchKey != null && this.searchKey.equals(other.getSearchKey())))&& ((this.vendor == null && other.getVendor() == null) || (this.vendor != null && this.vendor.equals(other.getVendor())));
  __equalsCalc=null;
  return _equals;
}