diff --git a/core/src/main/java/org/springframework/ldap/filter/CompareFilter.java b/core/src/main/java/org/springframework/ldap/filter/CompareFilter.java index e0d1cfe5..97dfd9e8 100644 --- a/core/src/main/java/org/springframework/ldap/filter/CompareFilter.java +++ b/core/src/main/java/org/springframework/ldap/filter/CompareFilter.java @@ -87,16 +87,18 @@ public abstract class CompareFilter extends AbstractFilter { * @see org.springframework.ldap.filter.Filter#equals(java.lang.Object) */ public boolean equals(Object o) { - if (o instanceof CompareFilter && o.getClass() == this.getClass()) { - CompareFilter that = (CompareFilter) o; - EqualsBuilder builder = new EqualsBuilder(); - builder.append(this.attribute, that.attribute); - builder.append(this.value, that.value); - return builder.isEquals(); - } - else { + if (o == null) { return false; } + if (o == this) { + return true; + } + if (o.getClass() != getClass()) { + return false; + } + CompareFilter f = (CompareFilter) o; + EqualsBuilder builder = new EqualsBuilder(); + return builder.append(this.attribute, f.attribute).append(this.value, f.value).isEquals(); } /** diff --git a/core/src/main/java/org/springframework/ldap/filter/HardcodedFilter.java b/core/src/main/java/org/springframework/ldap/filter/HardcodedFilter.java index 08c66f83..bad4f304 100644 --- a/core/src/main/java/org/springframework/ldap/filter/HardcodedFilter.java +++ b/core/src/main/java/org/springframework/ldap/filter/HardcodedFilter.java @@ -77,14 +77,17 @@ public class HardcodedFilter extends AbstractFilter { * @see java.lang.Object#equals(java.lang.Object) */ public boolean equals(Object o) { - - if (o instanceof HardcodedFilter && o.getClass() == this.getClass()) { - HardcodedFilter f = (HardcodedFilter) o; - EqualsBuilder builder = new EqualsBuilder().append(this.filter, f.filter); - return builder.isEquals(); + if (o == null) { + return false; } - - return false; + if (o == this) { + return true; + } + if (o.getClass() != getClass()) { + return false; + } + HardcodedFilter f = (HardcodedFilter) o; + return new EqualsBuilder().append(this.filter, f.filter).isEquals(); } /* diff --git a/core/src/main/java/org/springframework/ldap/filter/NotFilter.java b/core/src/main/java/org/springframework/ldap/filter/NotFilter.java index 7fd5b8b5..c0fa3ff0 100644 --- a/core/src/main/java/org/springframework/ldap/filter/NotFilter.java +++ b/core/src/main/java/org/springframework/ldap/filter/NotFilter.java @@ -17,6 +17,8 @@ package org.springframework.ldap.filter; import org.apache.commons.lang.Validate; +import org.apache.commons.lang.builder.EqualsBuilder; +import org.apache.commons.lang.builder.HashCodeBuilder; /** * A filter for 'not'. The following code: @@ -66,13 +68,17 @@ public class NotFilter extends AbstractFilter { * @see java.lang.Object#equals(java.lang.Object) */ public boolean equals(Object o) { - - if (o instanceof NotFilter && o.getClass() == this.getClass()) { - NotFilter f = (NotFilter) o; - return this.filter.equals(f.filter); + if (o == null) { + return false; } - - return false; + if (o == this) { + return true; + } + if (o.getClass() != getClass()) { + return false; + } + NotFilter f = (NotFilter) o; + return new EqualsBuilder().append(this.filter, f.filter).isEquals(); } /* diff --git a/core/src/main/java/org/springframework/ldap/filter/NotPresentFilter.java b/core/src/main/java/org/springframework/ldap/filter/NotPresentFilter.java index 4f35c3a9..fe4cad40 100644 --- a/core/src/main/java/org/springframework/ldap/filter/NotPresentFilter.java +++ b/core/src/main/java/org/springframework/ldap/filter/NotPresentFilter.java @@ -63,14 +63,17 @@ public class NotPresentFilter extends AbstractFilter { * @see java.lang.Object#equals(java.lang.Object) */ public boolean equals(Object o) { - - if (o instanceof NotPresentFilter && o.getClass() == this.getClass()) { - NotPresentFilter f = (NotPresentFilter) o; - EqualsBuilder builder = new EqualsBuilder().append(this.attribute, f.attribute); - return builder.isEquals(); + if (o == null) { + return false; } - - return false; + if (o == this) { + return true; + } + if (o.getClass() != getClass()) { + return false; + } + NotPresentFilter f = (NotPresentFilter) o; + return new EqualsBuilder().append(this.attribute, f.attribute).isEquals(); } /* diff --git a/core/src/main/java/org/springframework/ldap/filter/PresentFilter.java b/core/src/main/java/org/springframework/ldap/filter/PresentFilter.java index 6040f5bb..a15d4d08 100644 --- a/core/src/main/java/org/springframework/ldap/filter/PresentFilter.java +++ b/core/src/main/java/org/springframework/ldap/filter/PresentFilter.java @@ -62,14 +62,17 @@ public class PresentFilter extends AbstractFilter { * @see java.lang.Object#equals(java.lang.Object) */ public boolean equals(Object o) { - - if (o instanceof PresentFilter && o.getClass() == this.getClass()) { - PresentFilter f = (PresentFilter) o; - EqualsBuilder builder = new EqualsBuilder().append(this.attribute, f.attribute); - return builder.isEquals(); + if (o == null) { + return false; } - - return false; + if (o == this) { + return true; + } + if (o.getClass() != getClass()) { + return false; + } + PresentFilter f = (PresentFilter) o; + return new EqualsBuilder().append(this.attribute, f.attribute).isEquals(); } /* diff --git a/core/src/test/java/org/springframework/ldap/filter/GreaterThanOrEqualsFilterTest.java b/core/src/test/java/org/springframework/ldap/filter/GreaterThanOrEqualsFilterTest.java index 5305d5c0..e2e609cd 100644 --- a/core/src/test/java/org/springframework/ldap/filter/GreaterThanOrEqualsFilterTest.java +++ b/core/src/test/java/org/springframework/ldap/filter/GreaterThanOrEqualsFilterTest.java @@ -69,7 +69,6 @@ public class GreaterThanOrEqualsFilterTest extends TestCase { GreaterThanOrEqualsFilter subclassObject = new GreaterThanOrEqualsFilter(attribute, value) { }; - new EqualsTester(originalObject, identicalObject, differentObject, - subclassObject); + new EqualsTester(originalObject, identicalObject, differentObject, subclassObject); } } diff --git a/core/src/test/java/org/springframework/ldap/filter/NotFilterTest.java b/core/src/test/java/org/springframework/ldap/filter/NotFilterTest.java index 95ae8ae8..b9c84fff 100644 --- a/core/src/test/java/org/springframework/ldap/filter/NotFilterTest.java +++ b/core/src/test/java/org/springframework/ldap/filter/NotFilterTest.java @@ -48,5 +48,4 @@ public class NotFilterTest extends TestCase { new EqualsTester(originalObject, identicalObject, differentObject, subclassObject); } - }