On Fri, 2 Aug 2024 04:26:45 GMT, Chen Liang <li...@openjdk.org> wrote:
>> Shaojin Wen has updated the pull request incrementally with one additional >> commit since the last revision: >> >> Fix performance regression caused by args.erase() > > Because we load the class in the bootstrap loader so it can access java.lang; > means our class cannot see user classes as a result. @liach If MethodHandles.Lookup.IMPL_LOOKUP is not used, the following error will be reported Exception in thread "main" java.lang.BootstrapMethodError: bootstrap method initialization exception at java.base/java.lang.invoke.BootstrapMethodInvoker.invoke(BootstrapMethodInvoker.java:191) at java.base/java.lang.invoke.CallSite.makeSite(CallSite.java:316) at java.base/java.lang.invoke.MethodHandleNatives.linkCallSiteImpl(MethodHandleNatives.java:275) at java.base/java.lang.invoke.MethodHandleNatives.linkCallSite(MethodHandleNatives.java:265) at build.tools.symbolgenerator.CreateSymbols.doWrite(CreateSymbols.java:928) at build.tools.symbolgenerator.CreateSymbols.writeModule(CreateSymbols.java:859) at build.tools.symbolgenerator.CreateSymbols.writeModulesForVersions(CreateSymbols.java:823) at build.tools.symbolgenerator.CreateSymbols.createSymbols(CreateSymbols.java:265) at build.tools.symbolgenerator.CreateSymbols.main(CreateSymbols.java:4791) Caused by: java.lang.invoke.StringConcatException: Generator failed at java.base/java.lang.invoke.StringConcatFactory.makeConcatWithConstants(StringConcatFactory.java:403) at java.base/java.lang.invoke.BootstrapMethodInvoker.invoke(BootstrapMethodInvoker.java:102) ... 8 more Caused by: java.lang.invoke.StringConcatException: Exception while spinning the class at java.base/java.lang.invoke.StringConcatFactory$InlineHiddenClassStrategy.generate(StringConcatFactory.java:1333) at java.base/java.lang.invoke.StringConcatFactory.makeConcatWithConstants(StringConcatFactory.java:394) ... 9 more Caused by: java.lang.IllegalAccessException: no such constructor: java.lang.String$$StringConcat/0x0000030000110400.<init>(String[])void/newInvokeSpecial at java.base/java.lang.invoke.MemberName.makeAccessException(MemberName.java:906) at java.base/java.lang.invoke.MemberName$Factory.resolveOrFail(MemberName.java:989) at java.base/java.lang.invoke.MethodHandles$Lookup.resolveOrFail(MethodHandles.java:3750) at java.base/java.lang.invoke.MethodHandles$Lookup.findConstructor(MethodHandles.java:2810) at java.base/java.lang.invoke.StringConcatFactory$InlineHiddenClassStrategy.generate(StringConcatFactory.java:1327) ... 10 more Caused by: java.lang.IllegalAccessError: class java.lang.StringConcatHelper tried to access private method 'void java.lang.String$$StringConcat/0x0000030000110400.<init>(java.lang.String[])' (java.lang.StringConcatHelper and java.lang.String$$StringConcat/0x0000030000110400 are in module java.base of loader 'bootstrap') at java.base/java.lang.invoke.MethodHandleNatives.resolve(Native Method) at java.base/java.lang.invoke.MemberName$Factory.resolve(MemberName.java:957) at java.base/java.lang.invoke.MemberName$Factory.resolveOrFail(MemberName.java:986) ------------- PR Comment: https://git.openjdk.org/jdk/pull/20273#issuecomment-2284757113