Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-60725

"Added a missed class for missing class telemetry" on AdoptOpenJDK 11

    Details

    • Similar Issues:
    • Released As:
      2,217

      Description

      Since the update to Java 11 (using AdoptOpenJDK 11.0.4) there are some warnings according to missing telemetry classes in the log:

       

      WARNING	j.t.i.j.MissingClassTelemetry#reportException: Added a missed class for missing class telemetry. Class: com.sun.faces.application.ActionListenerImpl
      java.lang.ClassNotFoundException: com.sun.faces.application.ActionListenerImpl
      [...]
      WARNING	j.t.i.j.MissingClassTelemetry#reportException: Added a missed class for missing class telemetry. Class: com.sun.jndi.url.java.javaURLContextFactory
      java.lang.ClassNotFoundException: com.sun.jndi.url.java.javaURLContextFactory
      [...]
      WARNING	j.t.i.j.MissingClassTelemetry#reportException: Added a missed class for missing class telemetry. Class: com.sun.jndi.url.java.javaURLContextFactory
      java.lang.ClassNotFoundException: com.sun.jndi.url.java.javaURLContextFactory
      [...]
      

      The one related to javaURLContextFactory appears several times

       

      Use statistics is disabled in the global configuration (that's telemetry?)

        Attachments

          Issue Links

            Activity

            Hide
            hazim Hazim Malik added a comment - - edited

            I am getting the same warnings as well, followed by a stack trace:  

             

            2020-01-14 15:22:26.260+0000 [id=30] WARNING j.t.i.j.MissingClassTelemetry#reportException: Added a missed class for missing class telemetry. Class: 
            
            com.sun.faces.application.ActionListenerImpljava.lang.ClassNotFoundException: com.sun.faces.application.ActionListenerImpl at jenkins.util.AntClassLoader.findClassInComponents(AntClassLoader.java:1388) at jenkins.util.AntClassLoader.findClass(AntClassLoader.java:1343) at jenkins.util.AntClassLoader.loadClass(AntClassLoader.java:1090) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521) at java.base/java.lang.Class.forName0(Native Method) at java.base/java.lang.Class.forName(Class.java:315) at net.bull.javamelody.FilterContext.isMojarraAvailable(FilterContext.java:345) at net.bull.javamelody.FilterContext.<clinit>(FilterContext.java:60) at net.bull.javamelody.MonitoringFilter.init(MonitoringFilter.java:148) at net.bull.javamelody.PluginMonitoringFilter.init(PluginMonitoringFilter.java:45) at org.jvnet.hudson.plugins.monitoring.HudsonMonitoringFilter.init(HudsonMonitoringFilter.java:61) at hudson.util.PluginServletFilter.addFilter(PluginServletFilter.java:111) at org.jvnet.hudson.plugins.monitoring.PluginImpl.start(PluginImpl.java:141) at hudson.ClassicPluginStrategy.startPlugin(ClassicPluginStrategy.java:401) at hudson.ClassicPluginStrategy.load(ClassicPluginStrategy.java:390) at hudson.PluginManager$2$1$1.run(PluginManager.java:547) at org.jvnet.hudson.reactor.TaskGraphBuilder$TaskImpl.run(TaskGraphBuilder.java:169) at org.jvnet.hudson.reactor.Reactor.runTask(Reactor.java:296) at jenkins.model.Jenkins$5.runTask(Jenkins.java:1142) at org.jvnet.hudson.reactor.Reactor$2.run(Reactor.java:214) at org.jvnet.hudson.reactor.Reactor$Node.run(Reactor.java:117) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:834)

             

            2020-01-14 15:24:09.557+0000 [id=188] WARNING j.t.i.j.MissingClassTelemetry#reportException: Added a missed class for missing class telemetry. Class: com.sun.jndi.url.java.javaURLContextFactory 
            
            java.lang.ClassNotFoundException: com.sun.jndi.url.java.javaURLContextFactory at jenkins.util.AntClassLoader.findClassInComponents(AntClassLoader.java:1388) at jenkins.util.AntClassLoader.findClass(AntClassLoader.java:1343) at jenkins.util.AntClassLoader.loadClass(AntClassLoader.java:1090) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521) at hudson.remoting.RemoteClassLoader$ClassLoaderProxy.fetch4(RemoteClassLoader.java:846) at hudson.remoting.RemoteClassLoader$ClassLoaderProxy.fetch3(RemoteClassLoader.java:889) at jdk.internal.reflect.GeneratedMethodAccessor129.invoke(Unknown Source) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at hudson.remoting.RemoteInvocationHandler$RPCRequest.perform(RemoteInvocationHandler.java:929) at hudson.remoting.Request$2.run(Request.java:369) at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72) at org.jenkinsci.remoting.CallableDecorator.call(CallableDecorator.java:18) at hudson.remoting.CallableDecoratorList$1.call(CallableDecoratorList.java:21) at jenkins.util.ContextResettingExecutorService$2.call(ContextResettingExecutorService.java:46) at jenkins.security.ImpersonatingExecutorService$2.call(ImpersonatingExecutorService.java:71) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:834)
            
            Show
            hazim Hazim Malik added a comment - - edited I am getting the same warnings as well, followed by a stack trace:     2020-01-14 15:22:26.260+0000 [id=30] WARNING j.t.i.j.MissingClassTelemetry#reportException: Added a missed class for missing class telemetry. Class : com.sun.faces.application.ActionListenerImpljava.lang.ClassNotFoundException: com.sun.faces.application.ActionListenerImpl at jenkins.util.AntClassLoader.findClassInComponents(AntClassLoader.java:1388) at jenkins.util.AntClassLoader.findClass(AntClassLoader.java:1343) at jenkins.util.AntClassLoader.loadClass(AntClassLoader.java:1090) at java.base/java.lang. ClassLoader .loadClass( ClassLoader .java:521) at java.base/java.lang. Class .forName0(Native Method) at java.base/java.lang. Class .forName( Class .java:315) at net.bull.javamelody.FilterContext.isMojarraAvailable(FilterContext.java:345) at net.bull.javamelody.FilterContext.<clinit>(FilterContext.java:60) at net.bull.javamelody.MonitoringFilter.init(MonitoringFilter.java:148) at net.bull.javamelody.PluginMonitoringFilter.init(PluginMonitoringFilter.java:45) at org.jvnet.hudson.plugins.monitoring.HudsonMonitoringFilter.init(HudsonMonitoringFilter.java:61) at hudson.util.PluginServletFilter.addFilter(PluginServletFilter.java:111) at org.jvnet.hudson.plugins.monitoring.PluginImpl.start(PluginImpl.java:141) at hudson.ClassicPluginStrategy.startPlugin(ClassicPluginStrategy.java:401) at hudson.ClassicPluginStrategy.load(ClassicPluginStrategy.java:390) at hudson.PluginManager$2$1$1.run(PluginManager.java:547) at org.jvnet.hudson.reactor.TaskGraphBuilder$TaskImpl.run(TaskGraphBuilder.java:169) at org.jvnet.hudson.reactor.Reactor.runTask(Reactor.java:296) at jenkins.model.Jenkins$5.runTask(Jenkins.java:1142) at org.jvnet.hudson.reactor.Reactor$2.run(Reactor.java:214) at org.jvnet.hudson.reactor.Reactor$Node.run(Reactor.java:117) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang. Thread .run( Thread .java:834)   2020-01-14 15:24:09.557+0000 [id=188] WARNING j.t.i.j.MissingClassTelemetry#reportException: Added a missed class for missing class telemetry. Class : com.sun.jndi.url.java.javaURLContextFactory java.lang.ClassNotFoundException: com.sun.jndi.url.java.javaURLContextFactory at jenkins.util.AntClassLoader.findClassInComponents(AntClassLoader.java:1388) at jenkins.util.AntClassLoader.findClass(AntClassLoader.java:1343) at jenkins.util.AntClassLoader.loadClass(AntClassLoader.java:1090) at java.base/java.lang. ClassLoader .loadClass( ClassLoader .java:521) at hudson.remoting.RemoteClassLoader$ClassLoaderProxy.fetch4(RemoteClassLoader.java:846) at hudson.remoting.RemoteClassLoader$ClassLoaderProxy.fetch3(RemoteClassLoader.java:889) at jdk.internal.reflect.GeneratedMethodAccessor129.invoke(Unknown Source) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at hudson.remoting.RemoteInvocationHandler$RPCRequest.perform(RemoteInvocationHandler.java:929) at hudson.remoting.Request$2.run(Request.java:369) at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72) at org.jenkinsci.remoting.CallableDecorator.call(CallableDecorator.java:18) at hudson.remoting.CallableDecoratorList$1.call(CallableDecoratorList.java:21) at jenkins.util.ContextResettingExecutorService$2.call(ContextResettingExecutorService.java:46) at jenkins.security.ImpersonatingExecutorService$2.call(ImpersonatingExecutorService.java:71) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang. Thread .run( Thread .java:834)
            Hide
            oleg_nenashev Oleg Nenashev added a comment -
            Show
            oleg_nenashev Oleg Nenashev added a comment - FYI Ramon Leon Baptiste Mathus
            Hide
            mramonleon Ramon Leon added a comment -

            Hi ethorsa, yes, it's telemetry. Although the information is not sent because the statistics are disabled, Jenkins warn you using the log. This symptom is because a plugin is using this class and AdoptOpenJDK doesn't have it, because it's sun's specific implementation. It may be a problem or not, it depends on the root cause. I would need the stack traces to be able to analyze each missed class.

            For the first stack trace from Hazim Malik, it is expected:
            https://github.com/javamelody/javamelody/blob/master/javamelody-core/src/main/java/net/bull/javamelody/FilterContext.java#L349

            	private static boolean isMojarraAvailable() {
            		try {
            			Class.forName("com.sun.faces.application.ActionListenerImpl");
            			return true;
            		} catch (final Throwable e) { // NOPMD
            			return false;
            		}
            	}
            

            So we should upgrade the ignored places adding this one

            I cannot find out any culprit from the second stack trace. Maybe Jenkins master is running on an Oracle JDK and the agent is running with AdoptOpenJDK or another one?

            Show
            mramonleon Ramon Leon added a comment - Hi ethorsa , yes, it's telemetry. Although the information is not sent because the statistics are disabled, Jenkins warn you using the log. This symptom is because a plugin is using this class and AdoptOpenJDK doesn't have it, because it's sun's specific implementation. It may be a problem or not, it depends on the root cause. I would need the stack traces to be able to analyze each missed class. For the first stack trace from Hazim Malik , it is expected: https://github.com/javamelody/javamelody/blob/master/javamelody-core/src/main/java/net/bull/javamelody/FilterContext.java#L349 private static boolean isMojarraAvailable() { try { Class .forName( "com.sun.faces.application.ActionListenerImpl" ); return true ; } catch ( final Throwable e) { // NOPMD return false ; } } So we should upgrade the ignored places adding this one I cannot find out any culprit from the second stack trace. Maybe Jenkins master is running on an Oracle JDK and the agent is running with AdoptOpenJDK or another one?
            Hide
            ethorsa ethorsa added a comment -

            The Master and majority of the agents are running on AdopOpenJDK. However, there are some remaining Windows agents with Oracle JDK left (and of course the Linux agents are using OpenJDK).

            Show
            ethorsa ethorsa added a comment - The Master and majority of the agents are running on AdopOpenJDK. However, there are some remaining Windows agents with Oracle JDK left (and of course the Linux agents are using OpenJDK).
            Hide
            ethorsa ethorsa added a comment -

            Ramon Leon I've added full stacktraces for both classes. From a first look they seem same as Hazim Malik ones.

            Show
            ethorsa ethorsa added a comment - Ramon Leon  I've added full stacktraces for both classes. From a first look they seem same as  Hazim Malik ones.
            Hide
            mramonleon Ramon Leon added a comment -

            I've filed a PR to add this place as an ignored one, to avoid warning about that on logs: https://github.com/jenkinsci/jenkins/pull/4433

            Meanwhile, you don't need to worry about this warning, it's a false positive on Java 11. If you don't want to see this warning you can raise the logging level on this specific logger.

            Thank you for your feedback.

            Show
            mramonleon Ramon Leon added a comment - I've filed a PR to add this place as an ignored one, to avoid warning about that on logs: https://github.com/jenkinsci/jenkins/pull/4433 Meanwhile, you don't need to worry about this warning, it's a false positive on Java 11. If you don't want to see this warning you can raise the logging level on this specific logger. Thank you for your feedback.
            Hide
            ethorsa ethorsa added a comment -

            Thanks for this fast fix Ramon Leon!

            Show
            ethorsa ethorsa added a comment - Thanks for this fast fix Ramon Leon !
            Hide
            hazim Hazim Malik added a comment -

            Thanks for the quick response and fix Ramon Leon

            Show
            hazim Hazim Malik added a comment - Thanks for the quick response and fix Ramon Leon
            Hide
            git Thomas Gimpel added a comment -

            Running on 2.204.5 we still get these warnings:

            Added a missed class for missing class telemetry. Class: com.sun.jndi.url.java.javaURLContextFactory
            java.lang.ClassNotFoundException: com.sun.jndi.url.java.javaURLContextFactory
            	at jenkins.util.AntClassLoader.findClassInComponents(AntClassLoader.java:1383)
            	at jenkins.util.AntClassLoader.findClass(AntClassLoader.java:1336)
            	at jenkins.util.AntClassLoader.loadClass(AntClassLoader.java:1083)
            	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
            	at hudson.remoting.RemoteClassLoader$ClassLoaderProxy.fetch4(RemoteClassLoader.java:846)
            	at hudson.remoting.RemoteClassLoader$ClassLoaderProxy.fetch3(RemoteClassLoader.java:889)
            	at jdk.internal.reflect.GeneratedMethodAccessor68.invoke(Unknown Source)
            	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
            	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
            	at hudson.remoting.RemoteInvocationHandler$RPCRequest.perform(RemoteInvocationHandler.java:929)
            	at hudson.remoting.Request$2.run(Request.java:369)
            	at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72)
            	at org.jenkinsci.remoting.CallableDecorator.call(CallableDecorator.java:18)
            	at hudson.remoting.CallableDecoratorList$1.call(CallableDecoratorList.java:21)
            	at jenkins.util.ContextResettingExecutorService$2.call(ContextResettingExecutorService.java:46)
            	at jenkins.security.ImpersonatingExecutorService$2.call(ImpersonatingExecutorService.java:71)
            	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
            	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
            	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
            	at java.base/java.lang.Thread.run(Thread.java:834)
            

             

            Show
            git Thomas Gimpel added a comment - Running on 2.204.5 we still get these warnings: Added a missed class for missing class telemetry. Class : com.sun.jndi.url.java.javaURLContextFactory java.lang.ClassNotFoundException: com.sun.jndi.url.java.javaURLContextFactory at jenkins.util.AntClassLoader.findClassInComponents(AntClassLoader.java:1383) at jenkins.util.AntClassLoader.findClass(AntClassLoader.java:1336) at jenkins.util.AntClassLoader.loadClass(AntClassLoader.java:1083) at java.base/java.lang. ClassLoader .loadClass( ClassLoader .java:521) at hudson.remoting.RemoteClassLoader$ClassLoaderProxy.fetch4(RemoteClassLoader.java:846) at hudson.remoting.RemoteClassLoader$ClassLoaderProxy.fetch3(RemoteClassLoader.java:889) at jdk.internal.reflect.GeneratedMethodAccessor68.invoke(Unknown Source) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at hudson.remoting.RemoteInvocationHandler$RPCRequest.perform(RemoteInvocationHandler.java:929) at hudson.remoting.Request$2.run(Request.java:369) at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72) at org.jenkinsci.remoting.CallableDecorator.call(CallableDecorator.java:18) at hudson.remoting.CallableDecoratorList$1.call(CallableDecoratorList.java:21) at jenkins.util.ContextResettingExecutorService$2.call(ContextResettingExecutorService.java:46) at jenkins.security.ImpersonatingExecutorService$2.call(ImpersonatingExecutorService.java:71) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang. Thread .run( Thread .java:834)  
            Hide
            ethorsa ethorsa added a comment -

            I get the same warnings on 2.204.5.

            Show
            ethorsa ethorsa added a comment - I get the same warnings on 2.204.5.
            Hide
            mramonleon Ramon Leon added a comment - - edited

            The one fixed by the PR is related to javamelody, if you don't mind, please file a new ticket with a single stack trace to keep track of the issue and file a new PR to fix it if needed. You can assign it to me.

            In any case, it's not something to worry about, just to be sure Jenkins goes well on Java 11, although better to remove from logs.

            Thank you!

            Show
            mramonleon Ramon Leon added a comment - - edited The one fixed by the PR is related to javamelody , if you don't mind, please file a new ticket with a single stack trace to keep track of the issue and file a new PR to fix it if needed. You can assign it to me. In any case, it's not something to worry about, just to be sure Jenkins goes well on Java 11, although better to remove from logs. Thank you!

              People

              • Assignee:
                mramonleon Ramon Leon
                Reporter:
                ethorsa ethorsa
              • Votes:
                1 Vote for this issue
                Watchers:
                5 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: