Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
Fix for 4 flaky tests which were found in class com.intuit.wasabi.assignmentobjects.AssignmentTest. The tests are as follows:
Steps to reproduce
This was identified by running NonDex.
The flaky tests can be found when running the following command:
mvn edu.illinois:nondex-maven-plugin:2.1.7:nondex -Dtest={test}
Logs
Failed tests: testAssignmentFromOther(com.intuit.wasabi.assignmentobjects.AssignmentTest): expected:<-1303240598> but was:<169444110> testAssignmentWithEmptyBucketAndDefaultNotEqualsAndHash(com.intuit.wasabi.assignmentobjects.AssignmentTest) testAssignmentWithEmptyBucketNotEqualsAndHash(com.intuit.wasabi.assignmentobjects.AssignmentTest) testAssignmentWithEmptyBucketEqualsAndHash(com.intuit.wasabi.assignmentobjects.AssignmentTest): expected:<1508589707> but was:<-992211973>
Reason for failure
The flaky nature of the test case is due to the
HashCodeBuilder.reflectionHashCode()
function. The function internally uses getDeclaredFields() method which does not maintain the order in which the fields are fetched.Expected Behaviour
The hashCode() method should return same value for same objects irrespective of the fields order.
Actual Behaviour
The test is failing since it is returning different hashcode values
Solution
In order to fix this, we are now defining a fixed order in which the fields get appended in hashCode() method.