CWE-581: Object Model Violation: Just One of Equals and Hashcode Defined
Object Model Violation: Just One of Equals and Hashcode Defined
Weakness ID: 581 (Weakness Base)
Status: Draft
Description
Description Summary
The software does not maintain equal hashcodes for equal objects.
Extended Description
Java objects are expected to obey a number of invariants related to equality. One of these invariants is that equal objects must have equal hashcodes. In other words, if a.equals(b) == true then a.hashCode() == b.hashCode().
Time of Introduction
Implementation
Applicable Platforms
Languages
Java
Common Consequences
Scope
Effect
Integrity
Other
Technical Impact: Other
If this invariant is not upheld, it is likely to cause trouble if
objects of this class are stored in a collection. If the objects of the
class in question are used as a key in a Hashtable or if they are
inserted into a Map or Set, it is critical that equal objects have equal
hashcodes.