6

I have recently upgraded our system from Spring Boot 1.5 to 2.1.3 and added the spring-boot-starter-actuator. Apparently, something is misconfigured, as there is a NullPointerException in TomcatMetrics::registerMetricsEventually:

java.lang.NullPointerException: null
    at io.micrometer.core.instrument.binder.tomcat.TomcatMetrics.lambda$registerMetricsEventually$aa4da135$1(TomcatMetrics.java:260)
    at java.management/javax.management.NotificationBroadcasterSupport.sendNotification(NotificationBroadcasterSupport.java:238)
    at java.management/javax.management.MBeanServerDelegate.sendNotification(MBeanServerDelegate.java:211)
    at java.management/com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.sendNotification(DefaultMBeanServerInterceptor.java:1473)
    at java.management/com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerWithRepository(DefaultMBeanServerInterceptor.java:1867)
    at java.management/com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerDynamicMBean(DefaultMBeanServerInterceptor.java:955)
    at java.management/com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerObject(DefaultMBeanServerInterceptor.java:890)
    at java.management/com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerMBean(DefaultMBeanServerInterceptor.java:320)
    at java.management/com.sun.jmx.mbeanserver.JmxMBeanServer.registerMBean(JmxMBeanServer.java:522)
    at org.apache.tomcat.util.modeler.Registry.registerComponent(Registry.java:639)
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.register(AbstractProtocol.java:1059)
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:823)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1415)
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.base/java.lang.Thread.run(Thread.java:834)

The null pointer occurs here:

return objectName.getDomain().equals(getJmxDomain()) && objectName.getKeyProperty(key).equals(value);

because objectName.getKeyProperty("j2eeType") returns null.

Is this an indication of something being obviously misconfigured?

fsperrle
  • 1,262
  • 1
  • 14
  • 26

1 Answers1

0

I am running with dependencies shown below for spring boot 2.1.8 and even added runtime scope to the pom for micrometer but it did not help. Actuator is looking for the value of the same key ("j2eeType") and not handling it gracefully.

<dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-actuator-autoconfigure</artifactId>
     <version>2.1.8.RELEASE</version>
     <scope>compile</scope>
 </dependency>
 <dependency>
     <groupId>io.micrometer</groupId>
     <artifactId>micrometer-core</artifactId>
     <version>1.1.6</version>
     <scope>runtime</scope>
 </dependency>
TomaszZ.
  • 9
  • 1