> Hello,
> 
> This PR fixes an issue in `JVM_IHashCode` where we don't handle an exception 
> occurring in the Java call to `ValueObjectMethods.valueObjectHashCode`. If an 
> exception is thrown, we still proceed to install the (bad) hashcode that is 
> based on a return value which is garbage data.
> 
> To fix this, we should make sure to return if there is a pending exception.
> 
> @xmas92 came up with a smart approach to encapsulate the behavior of wrapping 
> an exception in an internal error into a separate helper, which is 
> implemented in this PR as well. I've adapted other similar places where we 
> wrap exceptions like this as well. These use-cases are all Valhalla-specific, 
> so makes sense to change here IMO.
> 
> Testing:
> * Running Oracle's tier1-4
> * Test reproducer that fails before (installing a bad hashcode), and succeeds 
> with the changes in this PR (never installs a bad hashcode).
> 
> ---------
> - [x] I confirm that I make this contribution in accordance with the [OpenJDK 
> Interim AI Policy](https://openjdk.org/legal/ai).

Joel Sikström has updated the pull request incrementally with one additional 
commit since the last revision:

  Add regression test by @arraying

-------------

Changes:
  - all: https://git.openjdk.org/valhalla/pull/2410/files
  - new: https://git.openjdk.org/valhalla/pull/2410/files/d3eaf59a..5c8d378a

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=valhalla&pr=2410&range=02
 - incr: https://webrevs.openjdk.org/?repo=valhalla&pr=2410&range=01-02

  Stats: 67 lines in 1 file changed: 67 ins; 0 del; 0 mod
  Patch: https://git.openjdk.org/valhalla/pull/2410.diff
  Fetch: git fetch https://git.openjdk.org/valhalla.git pull/2410/head:pull/2410

PR: https://git.openjdk.org/valhalla/pull/2410

Reply via email to