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

NullPointerException in ProjectDiskUsageAction.getGraph(ProjectDiskUsageAction.java:227)

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Major Major
    • disk-usage-plugin
    • None
    • All, latest Git version (latest commit in history is "Separate not current slave wokrspace")

      Probable scenario is to refresh the job page (the one that displays the trend graph) while a build of that job is in progress. Jenkins output in the terminal console contains the stack traces like the one below. See the attached file for whole available output.

      2014-04-19 16:29:31.535::WARN:  /job/Graphal/diskUsage/graph/map
      java.lang.NullPointerException
              at hudson.plugins.disk_usage.ProjectDiskUsageAction.getGraph(ProjectDiskUsageAction.java:227)
              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:288)
              at org.kohsuke.stapler.MetaClass$4.doDispatch(MetaClass.java:203)
              at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
              at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:574)
              at org.kohsuke.stapler.Stapler.invoke(Stapler.java:659)
              at org.kohsuke.stapler.MetaClass$12.dispatch(MetaClass.java:384)
              at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:574)
              at org.kohsuke.stapler.Stapler.invoke(Stapler.java:659)
              at org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.java:241)
              at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
              at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:574)
              at org.kohsuke.stapler.Stapler.invoke(Stapler.java:659)
              at org.kohsuke.stapler.Stapler.invoke(Stapler.java:488)
              at org.kohsuke.stapler.Stapler.service(Stapler.java:162)
              at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
              at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:491)
              at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1074)
              at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:95)
              at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:87)
              at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1065)
              at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:47)
              at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1065)
              at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84)
              at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:76)
              at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:164)
              at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1065)
              at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:81)
              at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1065)
              at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:365)
              at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:185)
              at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
              at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:689)
              at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:391)
              at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:146)
              at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
              at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
              at org.mortbay.jetty.Server.handle(Server.java:285)
              at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:457)
              at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:751)
              at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:500)
              at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:209)
              at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:357)
              at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:329)
              at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:475)
      Apr 19, 2014 4:29:44 PM hudson.model.Run run
      INFO: Graphal #9 main build action completed: SUCCESS
      

      Variable dua is checked for null and then dua.getAllDiskUsage() is called outside of the condition.

              for (int i=builds.size()-1; i>=0; i--) {
                  AbstractBuild build = builds.get(i);
                  BuildDiskUsageAction dua = build.getAction(BuildDiskUsageAction.class);
                  if (dua != null) {
                      usages.add(new Object[]{build, getJobRootDirDiskUsage(), dua.getAllDiskUsage(), getAllSlaveWorkspaces(), getAllCustomOrNonSlaveWorkspaces()});
                  }
                  maxValue = Math.max(maxValue, dua.getAllDiskUsage());
              }
      

            mixalturek Michal Turek
            mixalturek Michal Turek
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: