The agent causes crashes on Java 10
What version of OpenCensus are you using?
0.15.1
What JVM are you using (java -version)?
java version "10.0.2" 2018-07-17 Java(TM) SE Runtime Environment 18.3 (build 10.0.2+13) Java HotSpot(TM) 64-Bit Server VM 18.3 (build 10.0.2+13, mixed mode)
What did you do?
Start a DropWizard service with the OpenCensus java agent running.
What did you expect to see?
The service starts.
What did you see instead?
The service fails to start because it can't initialize SLF4J.
java.lang.NullPointerException
at java.base/java.util.Objects.requireNonNull(Objects.java:221)
at java.base/java.lang.ClassLoader.getResources(ClassLoader.java:1451)
at org.slf4j.LoggerFactory.findPossibleStaticLoggerBinderPathSet(LoggerFactory.java:303)
at org.slf4j.LoggerFactory.bind(LoggerFactory.java:146)
at org.slf4j.LoggerFactory.performInitialization(LoggerFactory.java:124)
at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:412)
at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:357)
at org.slf4j.bridge.SLF4JBridgeHandler.getSLF4JLogger(SLF4JBridgeHandler.java:202)
at org.slf4j.bridge.SLF4JBridgeHandler.publish(SLF4JBridgeHandler.java:293)
at java.logging/java.util.logging.Logger.log(Logger.java:979)
at java.logging/java.util.logging.Logger.doLog(Logger.java:1006)
at java.logging/java.util.logging.Logger.log(Logger.java:1117)
at io.opencensus.contrib.agent.AgentBuilderListener.onError(AgentBuilderListener.java:58)
at io.opencensus.contrib.agent.deps.bytebuddy.agent.builder.AgentBuilder$Listener$Compound.onError(AgentBuilder.java:1612)
at io.opencensus.contrib.agent.deps.bytebuddy.agent.builder.AgentBuilder$Default$ExecutingTransformer.transform(AgentBuilder.java:9324)
at io.opencensus.contrib.agent.deps.bytebuddy.agent.builder.AgentBuilder$Default$ExecutingTransformer.access$1300(AgentBuilder.java:9093)
at io.opencensus.contrib.agent.deps.bytebuddy.agent.builder.AgentBuilder$Default$ExecutingTransformer$Java9CapableVmDispatcher.run(AgentBuilder.java:9775)
at io.opencensus.contrib.agent.deps.bytebuddy.agent.builder.AgentBuilder$Default$ExecutingTransformer$Java9CapableVmDispatcher.run(AgentBuilder.java:9716)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at io.opencensus.contrib.agent.deps.bytebuddy.agent.builder.AgentBuilder$Default$ExecutingTransformer.transform(AgentBuilder.java:9273)
at io.opencensus.contrib.agent.deps.bytebuddy.agent.builder.AgentBuilder$Default$ExecutingTransformer$ByteBuddy$ModuleSupport.transform(Unknown Source)
at java.instrument/sun.instrument.TransformerManager.transform(TransformerManager.java:188)
at java.instrument/sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java:560)
at java.base/java.lang.ClassLoader.findBootstrapClass(Native Method)
at java.base/java.lang.ClassLoader.findBootstrapClassOrNull(ClassLoader.java:1250)
at java.base/java.lang.System$2.findBootstrapClassOrNull(System.java:2134)
at java.base/jdk.internal.loader.ClassLoaders$BootClassLoader.loadClassOrNull(ClassLoaders.java:130)
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:610)
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:580)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:190)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:499)
at org.slf4j.helpers.SubstituteLoggerFactory.<init>(SubstituteLoggerFactory.java:49)
at org.slf4j.LoggerFactory.<clinit>(LoggerFactory.java:86)
at io.dropwizard.logging.LoggingUtil.getLoggerContext(LoggingUtil.java:41)
at io.dropwizard.logging.BootstrapLogging.bootstrap(BootstrapLogging.java:52)
at io.dropwizard.logging.BootstrapLogging.bootstrap(BootstrapLogging.java:41)
at io.dropwizard.Application.bootstrapLogging(Application.java:38)
at io.dropwizard.Application.<init>(Application.java:26)
Thanks for reporting this issue and apologies for the delay. I'm going to take a closer look.
@ubschmidt2 my initial thought when I reported this was that the version of bytebuddy needed to be upgraded, but I wasn't able to successfully build the agent at the time. Let me know if I can do anything to help.
I tried this with Java 11 using version 0.20.1 and it no longer crashed the service.