Details
-
Bug
-
Status: Open
-
Minor
-
Resolution: Unresolved
-
3.4.4
-
None
-
None
Description
In the current implementation two filters definitions are equal:
<filter root="/etc/map" mode="replace" />
<filter root="/etc/map" mode="update" />
Only entries and root are used to calculate hashcode and equals comparisons:
The solution could be:
public boolean equals(Object o) { if (this == o) return true; if (!(o instanceof FilterSet)) return false; FilterSet filterSet = (FilterSet) o; // importMode is @NotNull, can we depend on it? if (!importMode.equals(filterSet.importMode)) return false; if (entries != null ? !entries.equals(filterSet.entries) : filterSet.entries != null) return false; return root.equals(filterSet.root); }
public int hashCode() { int result = root.hashCode(); // importMode is @NotNull, can we depend on it? result = 31 * importMode.hashCode(); result = 31 * result + (entries != null ? entries.hashCode() : 0); return result; }