-
Notifications
You must be signed in to change notification settings - Fork 329
Open
Labels
type: bugBug report and fixBug report and fix
Description
Tracer Version(s)
1.60.2~428d682133
Java Version(s)
26.0.0.35.1
JVM Vendor
Amazon Corretto
Bug Report
I get the following error when using the latest dd-trace-java with Java 26 when compiling code. The dd-trace-java agent uses dd-javac-plugin:0.2.4 which transitively depends on jvm-driver:9.9.10, where a fix needs to be applied.
The root cause is, that the Class.forName0 signature has changed in Java 26 compared to Class.forName0 in Java 25.
With the Pull Request toolfactory/jvm-driver#75, I proposed a solution.
Error
io.github.toolfactory.jvm.Driver$InitializeException: Could not initialize DynamicDriver
Dependency verification has been disabled.
at io.github.toolfactory.jvm.DriverAbst.refresh(DriverAbst.java:257)
Dependency verification has been disabled.
at io.github.toolfactory.jvm.DriverAbst.getDeclaredFields(DriverAbst.java:1057)
at org.burningwave.core.jvm.BufferHandler.init(BufferHandler.java:98)
at org.burningwave.core.jvm.BufferHandler.<init>(BufferHandler.java:88)
at org.burningwave.core.jvm.BufferHandler.create(BufferHandler.java:164)
at org.burningwave.core.assembler.StaticComponentContainer.<clinit>(StaticComponentContainer.java:374)
at datadog.compiler.CompilerModuleOpener.setup(CompilerModuleOpener.java:24)
at datadog.compiler.DatadogCompilerPlugin.<clinit>(DatadogCompilerPlugin.java:16)
at java.base/jdk.internal.misc.Unsafe.ensureClassInitialized0(Native Method)
at java.base/jdk.internal.misc.Unsafe.ensureClassInitialized(Unsafe.java:1195)
at java.base/jdk.internal.reflect.MethodHandleAccessorFactory.ensureClassInitialized(MethodHandleAccessorFactory.java:341)
at java.base/jdk.internal.reflect.MethodHandleAccessorFactory.newConstructorAccessor(MethodHandleAccessorFactory.java:104)
at java.base/jdk.internal.reflect.ReflectionFactory.newConstructorAccessor(ReflectionFactory.java:138)
at java.base/java.lang.reflect.Constructor.acquireConstructorAccessor(Constructor.java:546)
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:496)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:483)
at java.base/java.util.ServiceLoader$ProviderImpl.newInstance(ServiceLoader.java:707)
at java.base/java.util.ServiceLoader$ProviderImpl.get(ServiceLoader.java:672)
at java.base/java.util.ServiceLoader$2.next(ServiceLoader.java:1256)
at jdk.compiler/com.sun.tools.javac.api.BasicJavacTask.initPlugins(BasicJavacTask.java:221)
at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.prepareCompiler(JavacTaskImpl.java:204)
at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.lambda$doCall$0(JavacTaskImpl.java:101)
at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.invocationHelper(JavacTaskImpl.java:152)
at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.doCall(JavacTaskImpl.java:100)
at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.call(JavacTaskImpl.java:94)
at org.gradle.internal.compiler.java.IncrementalCompileTask.call(IncrementalCompileTask.java:92)
at org.gradle.api.internal.tasks.compile.AnnotationProcessingCompileTask.call(AnnotationProcessingCompileTask.java:94)
at org.gradle.api.internal.tasks.compile.ResourceCleaningCompilationTask.call(ResourceCleaningCompilationTask.java:57)
at org.gradle.api.internal.tasks.compile.JdkJavaCompiler.execute(JdkJavaCompiler.java:83)
at org.gradle.api.internal.tasks.compile.JdkJavaCompiler.execute(JdkJavaCompiler.java:50)
at org.gradle.api.internal.tasks.compile.daemon.AbstractIsolatedCompilerWorkerExecutor$CompilerWorkAction.execute(AbstractIsolatedCompilerWorkerExecutor.java:80)
at org.gradle.workers.internal.DefaultWorkerServer.execute(DefaultWorkerServer.java:68)
at org.gradle.workers.internal.AbstractClassLoaderWorker$1.create(AbstractClassLoaderWorker.java:54)
at org.gradle.workers.internal.AbstractClassLoaderWorker$1.create(AbstractClassLoaderWorker.java:48)
at org.gradle.internal.classloader.ClassLoaderUtils.executeInClassloader(ClassLoaderUtils.java:102)
at org.gradle.workers.internal.AbstractClassLoaderWorker.executeInClassLoader(AbstractClassLoaderWorker.java:48)
at org.gradle.workers.internal.FlatClassLoaderWorker.run(FlatClassLoaderWorker.java:32)
at org.gradle.workers.internal.FlatClassLoaderWorker.run(FlatClassLoaderWorker.java:22)
at org.gradle.workers.internal.WorkerDaemonServer.run(WorkerDaemonServer.java:108)
at org.gradle.workers.internal.WorkerDaemonServer.run(WorkerDaemonServer.java:77)
at org.gradle.process.internal.worker.request.WorkerAction.lambda$run$1(WorkerAction.java:150)
at org.gradle.process.internal.worker.child.WorkerLogEventListener.withWorkerLoggingProtocol(WorkerLogEventListener.java:41)
at org.gradle.process.internal.worker.request.WorkerAction.lambda$run$2(WorkerAction.java:150)
at org.gradle.internal.operations.CurrentBuildOperationRef.with(CurrentBuildOperationRef.java:84)
at org.gradle.process.internal.worker.request.WorkerAction.run(WorkerAction.java:142)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
at java.base/java.lang.reflect.Method.invoke(Method.java:565)
at org.gradle.internal.dispatch.MethodInvocation.invokeOn(MethodInvocation.java:77)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:28)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:19)
at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:182)
at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:164)
at org.gradle.internal.remote.internal.hub.MessageHub$Handler.run(MessageHub.java:414)
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
at org.gradle.internal.concurrent.AbstractManagedExecutor$1.run(AbstractManagedExecutor.java:47)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1090)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:614)
at java.base/java.lang.Thread.run(Thread.java:1516)
Caused by: io.github.toolfactory.jvm.util.ObjectProvider$BuildingException: Exception occurred while retrieving the implementation of class io.github.toolfactory.jvm.function.catalog.GetClassByNameFunction (jvm architecture: x64, jvm version: 26, jvm vendor: Amazon.com Inc.)
at io.github.toolfactory.jvm.util.ObjectProvider.getOrBuildObject(ObjectProvider.java:95)
at io.github.toolfactory.jvm.DriverAbst.getOrBuildClassByNameRetriever(DriverAbst.java:430)
at io.github.toolfactory.jvm.DriverAbst.refresh(DriverAbst.java:226)
... 57 more
Caused by: 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:499)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:483)
at io.github.toolfactory.jvm.util.ObjectProvider.getOrBuildObjectInternal(ObjectProvider.java:144)
at io.github.toolfactory.jvm.util.ObjectProvider.getOrBuildObject(ObjectProvider.java:92)
... 59 more
Caused by: java.lang.NoSuchMethodException: no such method: java.lang.Class.forName0(String,boolean,ClassLoader,Class)Class/invokeStatic
at java.base/java.lang.invoke.MemberName.makeAccessException(MemberName.java:910)
at java.base/java.lang.invoke.MemberName$Factory.resolveOrFail(MemberName.java:989)
at java.base/java.lang.invoke.MethodHandles$Lookup.resolveOrFail(MethodHandles.java:3599)
at java.base/java.lang.invoke.MethodHandles$Lookup.findStatic(MethodHandles.java:2522)
at io.github.toolfactory.jvm.function.catalog.GetClassByNameFunction$ForJava7.retrieveClassFinder(GetClassByNameFunction.java:62)
at io.github.toolfactory.jvm.function.catalog.GetClassByNameFunction$Abst.<init>(GetClassByNameFunction.java:45)
at io.github.toolfactory.jvm.function.catalog.GetClassByNameFunction$ForJava7.<init>(GetClassByNameFunction.java:55)
at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:62)
... 63 more
Caused by: java.lang.NoSuchMethodError: method resolution failed
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)
... 69 more
Expected Behavior
No exception is thrown and the dd-trace-java agent performs as it does with Java 25.
Reproduction Code
No response
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
type: bugBug report and fixBug report and fix