On Mon, 26 Jun 2023 07:46:38 GMT, Doug Simon <dnsi...@openjdk.org> wrote:
> The usages of `vmSupport` below all use `JavaCalls:call_static` which takes > care of linking and initializing the class. Sure but my point is that initialization can fail and the code does not seem to directly take that into account - if the first `decode` encounters a class initialization error then it will just return with the exception pending and no decoding will actually have occurred. If we get to the `encode` first and it encounters an initialization error it will still attempt to do a `decode` that must in turn fail and again we return with an exception pending and no encoding/decoding occurring. This code does not seem to be written in a way that allows for an error initializing `VMSupport`. So while the fix side-steps the problematic guarantee, I think it is just highlighting that this code is prepared for "system" errors like this. ------------- PR Comment: https://git.openjdk.org/jdk/pull/14641#issuecomment-1606915981