Naming a method hashcode() or equal is either:
Object.hashCode() or Object.equals was meant and the application does not behave as expected.In both cases, the method should be renamed.
public int hashcode() { /* ... */ } // Noncompliant
public boolean equal(Object obj) { /* ... */ } // Noncompliant
@Override
public int hashCode() { /* ... */ }
public boolean equals(Object obj) { /* ... */ }