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

Unable to view JaCoCo report and history graph

    XMLWordPrintable

Details

    Description

      Coverage report is empty and graph is generated with both lines on Y=0.

      java.lang.NullPointerException
              at hudson.plugins.jacoco.report.CoverageReport.<init>(CoverageReport.java:65)
              at hudson.plugins.jacoco.JacocoBuildAction.getResult(JacocoBuildAction.java:227)
              at hudson.plugins.jacoco.report.CoverageReport.getPreviousResult(CoverageReport.java:221)
              at hudson.plugins.jacoco.report.CoverageReport.getPreviousResult(CoverageReport.java:38)
              at hudson.plugins.jacoco.model.CoverageObject$1.createDataSet(CoverageObject.java:379)
              at hudson.plugins.jacoco.model.CoverageObject$GraphImpl.createGraph(CoverageObject.java:418)
              at hudson.util.Graph.render(Graph.java:87)
              at hudson.util.Graph.doPng(Graph.java:98)
              at hudson.plugins.jacoco.model.CoverageObject.doGraph(CoverageObject.java:373)
              at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
              at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
              at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
              at java.lang.reflect.Method.invoke(Method.java:601)
              at org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:298)
              at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:161)
              at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:96)
              at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:120)
              at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
              at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:728)
              at org.kohsuke.stapler.Stapler.invoke(Stapler.java:858)
              at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:668)
              at org.kohsuke.stapler.Stapler.invoke(Stapler.java:858)
              at org.kohsuke.stapler.MetaClass$12.dispatch(MetaClass.java:390)
              at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:728)
              at org.kohsuke.stapler.Stapler.invoke(Stapler.java:858)
              at org.kohsuke.stapler.MetaClass$4.doDispatch(MetaClass.java:210)
              at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
              at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:728)
              at org.kohsuke.stapler.Stapler.invoke(Stapler.java:858)
              at org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.java:248)
              at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
              at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:728)
              at org.kohsuke.stapler.Stapler.invoke(Stapler.java:858)
              at org.kohsuke.stapler.Stapler.invoke(Stapler.java:631)
              at org.kohsuke.stapler.Stapler.service(Stapler.java:225)
              at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
              at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:686)
              at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1494)
              at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:96)
              at hudson.plugins.greenballs.GreenBallFilter.doFilter(GreenBallFilter.java:58)
              at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:99)
              at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:88)
              at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482)
              at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:48)
              at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482)
              at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84)
              at hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:51)
              at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
              at jenkins.security.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:117)
              at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
              at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
              at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
              at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142)
              at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
              at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271)
              at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
              at org.acegisecurity.ui.basicauth.BasicProcessingFilter.doFilter(BasicProcessingFilter.java:174)
              at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
              at jenkins.security.ApiTokenFilter.doFilter(ApiTokenFilter.java:74)
              at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
              at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)
              at hudson.security.HttpSessionContextIntegrationFilter2.doFilter(HttpSessionContextIntegrationFilter2.java:67)
              at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
              at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:76)
              at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:164)
              at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482)
              at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:46)
              at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482)
              at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:81)
      at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1474)
              at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:499)
              at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
              at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:533)
              at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)
              at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086)
              at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:428)
              at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)
              at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020)
              at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
              at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
              at org.eclipse.jetty.server.Server.handle(Server.java:370)
              at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:489)
              at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:949)
              at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:1011)
              at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:644)
              at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)
              at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
              at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:668)
              at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)
              at winstone.BoundedExecutorService$1.run(BoundedExecutorService.java:77)
              at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
              at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
              at java.lang.Thread.run(Thread.java:722)
      
      

      Attachments

        1. jacoco.hpi
          4.94 MB
        2. jacoco.hpi
          4.94 MB
        3. JacocoBuildAction.diff
          1 kB

        Activity

          Please don't merge this diff "as is". It merely is a quick fix for the symptom, not the issue itself.

          The proper fix has to re-initialize the transient PrintStream logger. I just highlighted the issue and made the plugin useable for us again.

          stoeckmann Tobias Stoeckmann added a comment - Please don't merge this diff "as is". It merely is a quick fix for the symptom, not the issue itself. The proper fix has to re-initialize the transient PrintStream logger. I just highlighted the issue and made the plugin useable for us again.

          We are also facing this issue. The report got missing after couple of days.

          Do we have official fix available for this ?

          murali_gupta Muralidhar Gupta added a comment - We are also facing this issue. The report got missing after couple of days. Do we have official fix available for this ?
          centic centic added a comment -

          Wouldn't it make more sense to use "logger = System.out" in this case so that the information is at least printed to the console?

          centic centic added a comment - Wouldn't it make more sense to use "logger = System.out" in this case so that the information is at least printed to the console?
          centic centic added a comment - - edited

          Fixed via https://github.com/jenkinsci/jacoco-plugin/commit/7e9117a7ab7aab4a711632e1194680eaa0d74210, I implemented a getLogger() method which returns System.out if no logger is available.

          centic centic added a comment - - edited Fixed via https://github.com/jenkinsci/jacoco-plugin/commit/7e9117a7ab7aab4a711632e1194680eaa0d74210 , I implemented a getLogger() method which returns System.out if no logger is available.

          Code changed in jenkins
          User: Dominik Stadler
          Path:
          src/main/java/hudson/plugins/jacoco/JacocoBuildAction.java
          src/main/java/hudson/plugins/jacoco/report/CoverageReport.java
          http://jenkins-ci.org/commit/jacoco-plugin/7e9117a7ab7aab4a711632e1194680eaa0d74210
          Log:
          JENKINS-23708: Fix NullPointerException when the transient logger is not populated during de-serialization

          scm_issue_link SCM/JIRA link daemon added a comment - Code changed in jenkins User: Dominik Stadler Path: src/main/java/hudson/plugins/jacoco/JacocoBuildAction.java src/main/java/hudson/plugins/jacoco/report/CoverageReport.java http://jenkins-ci.org/commit/jacoco-plugin/7e9117a7ab7aab4a711632e1194680eaa0d74210 Log: JENKINS-23708 : Fix NullPointerException when the transient logger is not populated during de-serialization

          People

            centic centic
            ondrusek_j Ján Ondrušek
            Votes:
            6 Vote for this issue
            Watchers:
            14 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: