NH-3957 - fix 2nd level query cache bug and test cases #564
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.
Test cases and fix for NH-3957:
Equalsoverrides vulnerable to hashcode collisions have been added in a bunch of result transformers classes.This causes the second level query cache to be unreliable: we may get a wrong cached query result from it. Granted, due to the way those hashcode are calculated, is it very unlikely, but still possible. This cause a dire situation where an application thoroughly tested may starts failing till restarted, without much possibilities of reproducing the issue afterward.
Test cases only test
Equality, they do not showcase second level query cache failures which may result from thoseEqualityfailures, contrary to those of NH-3954 for the proxy cache. But there is no reason the second level query cache would not have been affected by thoseEqualsfailures.