On Thu, 6 Apr 2023 18:09:33 GMT, Mandy Chung <mch...@openjdk.org> wrote:
> If you run the test with the system property on, it's dumped in the scratch > directory. Do you run with jtreg command? I ran with `make test TEST="test/jdk/java/lang/invoke/MethodHandleProxies"`. The scratch's subdirectories (corresponding to processors) are all empty. > > It appears the default class hierarchy resolver cannot be used to generates > > stack maps with only the FilePermission required by JTReg granted. > > what permission does it need? It didn't explicitly fail with a security exception; the test fails with such a stacktrace: java.lang.IllegalArgumentException: Could not resolve class RuntimeException at java.base/jdk.internal.classfile.impl.ClassHierarchyImpl.resolve(ClassHierarchyImpl.java:59) at java.base/jdk.internal.classfile.impl.ClassHierarchyImpl.isInterface(ClassHierarchyImpl.java:69) at java.base/jdk.internal.classfile.impl.StackMapGenerator$Type.mergeReferenceFrom(StackMapGenerator.java:1360) at java.base/jdk.internal.classfile.impl.StackMapGenerator$Type.mergeFrom(StackMapGenerator.java:1328) at java.base/jdk.internal.classfile.impl.StackMapGenerator$Frame.merge(StackMapGenerator.java:1191) at java.base/jdk.internal.classfile.impl.StackMapGenerator$Frame.checkAssignableTo(StackMapGenerator.java:1141) at java.base/jdk.internal.classfile.impl.StackMapGenerator.checkJumpTarget(StackMapGenerator.java:263) at java.base/jdk.internal.classfile.impl.StackMapGenerator.processExceptionHandlerTargets(StackMapGenerator.java:659) at java.base/jdk.internal.classfile.impl.StackMapGenerator.processBlock(StackMapGenerator.java:645) at java.base/jdk.internal.classfile.impl.StackMapGenerator.processMethod(StackMapGenerator.java:420) at java.base/jdk.internal.classfile.impl.StackMapGenerator.generate(StackMapGenerator.java:293) at java.base/jdk.internal.classfile.impl.StackMapGenerator.<init>(StackMapGenerator.java:232) at java.base/jdk.internal.classfile.impl.DirectCodeBuilder$4.writeBody(DirectCodeBuilder.java:333) at java.base/jdk.internal.classfile.impl.UnboundAttribute$AdHocAttribute.writeTo(UnboundAttribute.java:914) at java.base/jdk.internal.classfile.impl.AttributeHolder.writeTo(AttributeHolder.java:56) at java.base/jdk.internal.classfile.impl.DirectMethodBuilder.writeTo(DirectMethodBuilder.java:136) at java.base/jdk.internal.classfile.impl.BufWriterImpl.writeList(BufWriterImpl.java:194) at java.base/jdk.internal.classfile.impl.DirectClassBuilder.build(DirectClassBuilder.java:176) at java.base/jdk.internal.classfile.Classfile.build(Classfile.java:218) at java.base/jdk.internal.classfile.Classfile.build(Classfile.java:200) at java.base/jdk.internal.classfile.Classfile.build(Classfile.java:186) at java.base/java.lang.invoke.MethodHandleProxies.createTemplate(MethodHandleProxies.java:297) at java.base/java.lang.invoke.MethodHandleProxies$1.computeValue(MethodHandleProxies.java:260) at java.base/java.lang.invoke.MethodHandleProxies$1.computeValue(MethodHandleProxies.java:229) at java.base/java.lang.ClassValue.getFromHashMap(ClassValue.java:229) at java.base/java.lang.ClassValue.getFromBackup(ClassValue.java:211) at java.base/java.lang.ClassValue.get(ClassValue.java:117) at java.base/java.lang.invoke.MethodHandleProxies.asInterfaceInstance(MethodHandleProxies.java:195) at WithSecurityManagerTest.main(WithSecurityManagerTest.java:38) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) at java.base/java.lang.reflect.Method.invoke(Method.java:578) at com.sun.javatest.regtest.agent.MainWrapper$MainTask.run(MainWrapper.java:138) at java.base/java.lang.Thread.run(Thread.java:1630) Think it relates to the behavior of `ClassLoader.getSystemResourceAsStream`. ------------- PR Comment: https://git.openjdk.org/jdk/pull/13197#issuecomment-1499458101