@Override public boolean equals(Object obj){
  if (this == obj)   return true;
  if (obj == null)   return false;
  if (getClass() != obj.getClass())   return false;
  @SuppressWarnings("rawtypes") AuditRecord other=(AuditRecord)obj;
  if (holder == null) {
    if (other.holder != null)     return false;
  }
 else   if (!holder.equals(other.holder))   return false;
  return true;
}

@ Override public boolean equals ( Object obj ) { if ( this == obj ) return true ; if ( obj == null ) return false ; if ( getClass ( ) != obj . getClass ( ) ) return false ; @ SuppressWarnings ( "rawtypes" ) AuditRecord other = ( AuditRecord ) obj ; if ( holder == null ) { if ( other . holder != null ) return false ; } else if ( ! holder . equals ( other . holder ) ) return false ; return true ; }
this implementation depends only on the lock holder and not on the lock expiration time .
