On 5/14/20 1:52 PM, Chris Hegarty wrote:
Hi Mandy,
On 14 May 2020, at 21:12, Mandy Chung <mandy.ch...@oracle.com> wrote:
MethodHandles::privateLookupIn should prepare for being called during early
startup when the module of java.base classes are not yet assigned. This bug is
uncovered by panama prototype converting NIO to use memory access API.
The fix is very simple and move the call to Module::isNamed only if the caller
module and target module are different:
http://cr.openjdk.java.net/~mchung/jdk15/webrevs/8244961/webrev.00/
LGTM.
Thanks.
In this case both the caller and target modules are, well.. , null (at this
point of initialization). So your change should avoid tripping up on this and
resulting in a NPE. I am surprised that nothing else has run into this
before, but the code executed this early on is somewhat limited.
JDK 9 jigsaw cleaned up various bootstrapping issues that enables early
startup to use lambdas. This is very early during VM initialization
and those code path may still be pre-JDK 9 code and not surprised that
it does not use VarHandle/MethodHandle yet until this panama change.
Mandy