-
Notifications
You must be signed in to change notification settings - Fork 959
Support JDKs more recent than 8 (or at least document this hard requirement) #825
Copy link
Copy link
Open
Description
I installed btrace using sdk on an ubuntu system.
sdk install btrace 2.2.6(small note on the side: if I don't specify a version here, it installs 2.2.0, which is not the latest version. Maybe the defaults have to be updated somewhere)
I also activated a recent JDK for my shell, for example by using one of the below:
sdk use java 17.0.16-tem
sdk use java 21.0.6-tem
sdk use java 25.0.2-temIf I then execute any btracec command, even just btracec --help, I get the following:
$ btracec --help
[main] WARN org.openjdk.btrace.runtime.BTraceRuntimes - Failed to load BTrace runtime implementation org.openjdk.btrace.runtime.BTraceRuntimeImpl_11$Factory
java.lang.reflect.InvocationTargetException
at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:74)
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:502)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:486)
at org.openjdk.btrace.runtime.BTraceRuntimes.loadFactory(BTraceRuntimes.java:31)
at org.openjdk.btrace.runtime.BTraceRuntimes.<clinit>(BTraceRuntimes.java:17)
at org.openjdk.btrace.runtime.BTraceRuntimeAccess.registerRuntimeAccessor(BTraceRuntimeAccess.java:245)
at org.openjdk.btrace.runtime.BTraceRuntimeAccess.<clinit>(BTraceRuntimeAccess.java:104)
at java.base/jdk.internal.misc.Unsafe.ensureClassInitialized0(Native Method)
at java.base/jdk.internal.misc.Unsafe.ensureClassInitialized(Unsafe.java:1160)
at java.base/jdk.internal.reflect.MethodHandleAccessorFactory.ensureClassInitialized(MethodHandleAccessorFactory.java:300)
at java.base/jdk.internal.reflect.MethodHandleAccessorFactory.newFieldAccessor(MethodHandleAccessorFactory.java:140)
at java.base/jdk.internal.reflect.ReflectionFactory.newFieldAccessor(ReflectionFactory.java:145)
at java.base/java.lang.reflect.Field.acquireOverrideFieldAccessor(Field.java:1200)
at java.base/java.lang.reflect.Field.getOverrideFieldAccessor(Field.java:1169)
at java.base/java.lang.reflect.Field.set(Field.java:836)
at org.openjdk.btrace.compiler.Compiler.main(Compiler.java:102)
Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make static java.lang.Class java.lang.ClassLoader.findBootstrapClassOrNull(java.lang.String) accessible: module java.base does not "opens java.lang" to unnamed module @68de145
at java.base/java.lang.reflect.AccessibleObject.throwInaccessibleObjectException(AccessibleObject.java:391)
at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:367)
at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:315)
at java.base/java.lang.reflect.Method.checkCanSetAccessible(Method.java:203)
at java.base/java.lang.reflect.Method.setAccessible(Method.java:197)
at org.openjdk.btrace.runtime.BTraceRuntimeImpl_11.<init>(BTraceRuntimeImpl_11.java:98)
at org.openjdk.btrace.runtime.BTraceRuntimeImpl_11$Factory.<init>(BTraceRuntimeImpl_11.java:63)
at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:62)
... 15 more
[main] WARN org.openjdk.btrace.runtime.BTraceRuntimes - Failed to load BTrace runtime implementation org.openjdk.btrace.runtime.BTraceRuntimeImpl_9$Factory
java.lang.reflect.InvocationTargetException
at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:74)
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:502)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:486)
at org.openjdk.btrace.runtime.BTraceRuntimes.loadFactory(BTraceRuntimes.java:31)
at org.openjdk.btrace.runtime.BTraceRuntimes.<clinit>(BTraceRuntimes.java:18)
at org.openjdk.btrace.runtime.BTraceRuntimeAccess.registerRuntimeAccessor(BTraceRuntimeAccess.java:245)
at org.openjdk.btrace.runtime.BTraceRuntimeAccess.<clinit>(BTraceRuntimeAccess.java:104)
at java.base/jdk.internal.misc.Unsafe.ensureClassInitialized0(Native Method)
at java.base/jdk.internal.misc.Unsafe.ensureClassInitialized(Unsafe.java:1160)
at java.base/jdk.internal.reflect.MethodHandleAccessorFactory.ensureClassInitialized(MethodHandleAccessorFactory.java:300)
at java.base/jdk.internal.reflect.MethodHandleAccessorFactory.newFieldAccessor(MethodHandleAccessorFactory.java:140)
at java.base/jdk.internal.reflect.ReflectionFactory.newFieldAccessor(ReflectionFactory.java:145)
at java.base/java.lang.reflect.Field.acquireOverrideFieldAccessor(Field.java:1200)
at java.base/java.lang.reflect.Field.getOverrideFieldAccessor(Field.java:1169)
at java.base/java.lang.reflect.Field.set(Field.java:836)
at org.openjdk.btrace.compiler.Compiler.main(Compiler.java:102)
Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make static java.lang.Class java.lang.ClassLoader.findBootstrapClassOrNull(java.lang.String) accessible: module java.base does not "opens java.lang" to unnamed module @68de145
at java.base/java.lang.reflect.AccessibleObject.throwInaccessibleObjectException(AccessibleObject.java:391)
at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:367)
at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:315)
at java.base/java.lang.reflect.Method.checkCanSetAccessible(Method.java:203)
at java.base/java.lang.reflect.Method.setAccessible(Method.java:197)
at org.openjdk.btrace.runtime.BTraceRuntimeImpl_9.<init>(BTraceRuntimeImpl_9.java:94)
at org.openjdk.btrace.runtime.BTraceRuntimeImpl_9$Factory.<init>(BTraceRuntimeImpl_9.java:61)
at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:62)
... 15 more
[main] WARN org.openjdk.btrace.runtime.BTraceRuntimes - Failed to load BTrace runtime implementation org.openjdk.btrace.runtime.BTraceRuntimeImpl_8$Factory
java.lang.reflect.InvocationTargetException
at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:74)
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:502)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:486)
at org.openjdk.btrace.runtime.BTraceRuntimes.loadFactory(BTraceRuntimes.java:31)
at org.openjdk.btrace.runtime.BTraceRuntimes.<clinit>(BTraceRuntimes.java:19)
at org.openjdk.btrace.runtime.BTraceRuntimeAccess.registerRuntimeAccessor(BTraceRuntimeAccess.java:245)
at org.openjdk.btrace.runtime.BTraceRuntimeAccess.<clinit>(BTraceRuntimeAccess.java:104)
at java.base/jdk.internal.misc.Unsafe.ensureClassInitialized0(Native Method)
at java.base/jdk.internal.misc.Unsafe.ensureClassInitialized(Unsafe.java:1160)
at java.base/jdk.internal.reflect.MethodHandleAccessorFactory.ensureClassInitialized(MethodHandleAccessorFactory.java:300)
at java.base/jdk.internal.reflect.MethodHandleAccessorFactory.newFieldAccessor(MethodHandleAccessorFactory.java:140)
at java.base/jdk.internal.reflect.ReflectionFactory.newFieldAccessor(ReflectionFactory.java:145)
at java.base/java.lang.reflect.Field.acquireOverrideFieldAccessor(Field.java:1200)
at java.base/java.lang.reflect.Field.getOverrideFieldAccessor(Field.java:1169)
at java.base/java.lang.reflect.Field.set(Field.java:836)
at org.openjdk.btrace.compiler.Compiler.main(Compiler.java:102)
Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make static java.lang.Class java.lang.ClassLoader.findBootstrapClassOrNull(java.lang.String) accessible: module java.base does not "opens java.lang" to unnamed module @68de145
at java.base/java.lang.reflect.AccessibleObject.throwInaccessibleObjectException(AccessibleObject.java:391)
at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:367)
at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:315)
at java.base/java.lang.reflect.Method.checkCanSetAccessible(Method.java:203)
at java.base/java.lang.reflect.Method.setAccessible(Method.java:197)
at org.openjdk.btrace.runtime.BTraceRuntimeImpl_8.<init>(BTraceRuntimeImpl_8.java:105)
at org.openjdk.btrace.runtime.BTraceRuntimeImpl_8$Factory.<init>(BTraceRuntimeImpl_8.java:57)
at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:62)
... 15 more
Usage: btracec <options> <btrace source files>
where possible options include:
-classpath <path> Specify where to find user class files and annotation processors
-cp <path> Specify where to find user class files and annotation processors
-I <path> Specify where to find include files
-d <directory> Specify where to place generated class files
-nopack Do not produce packed probes. Useful when targeting pre 1.3.10 versions.
-packext File extension for script packs (default '.class'). Valid only if '-nopack' is not specified.
-trusted Enable trusted script (eg. no checks)
If I install jdk 8, the errors go away.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels