PersistentSet does not honor hashcode/equals contract when loaded eagerly

Description

when persistent set is loaded eagerly in some situations it calls hashcode on its items before their field values are populated and then uses this incorrect hashcode to store them in the set. this makes set items inaccessible by any collection items that rely on hashcode such as contains(), remove(), etc.

attached is a simple maven test project that reproduces the error, unzip and mvn test to run the test.

Environment

None

Status

Assignee

Gail Badner

Reporter

IgorI

Fix versions

Labels

None

backPortable

None

Suitable for new contributors

None

Requires Release Note

Affirmative

Pull Request

None

backportDecision

None

Components

Affects versions

Priority

Major
Configure