[ 
https://issues.apache.org/jira/browse/TINKERPOP-3170?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Stephen Mallette updated TINKERPOP-3170:
----------------------------------------
    Component/s: process

> Majority of steps violate hashcode/equals contracts
> ---------------------------------------------------
>
>                 Key: TINKERPOP-3170
>                 URL: https://issues.apache.org/jira/browse/TINKERPOP-3170
>             Project: TinkerPop
>          Issue Type: Bug
>          Components: process
>    Affects Versions: 3.7.3
>            Reporter: Andrea Child
>            Priority: Major
>
> AbstractStep.java is the parent class for all steps which has the following 
> `equals` method implementation which relies on the hashCode value to 
> determine equality:
> {code:java}
> @Override
> public boolean equals(final Object other) {
>     return other != null && other.getClass().equals(this.getClass()) && 
> this.hashCode() == other.hashCode();
> } {code}
> This is a violation of the hashCode and equals contracts because unequal 
> objects may have the same hashCode. This reliance on hashCode comparison for 
> equality can lead to unexpected behaviour and bugs which are difficult to 
> troubleshoot. Almost all steps use this logic as I can only see 2 which 
> override the equals method from the abstract parent.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to