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

Cannot save job configuration pages on Jenkins 1.463 or newer when Build Failure Analyzer installed

    Details

      Description

      In a job configuration screen pushing Apply brings up an empty error window; pushing Save brings the below error 500 stack trace.

      I mentioned build 1.463 because this it is mentioned in the plugin wiki page, not because I validated that the problem doesn't exist on pre 1.463 versions.

      A possible workaround may be found in this comment: https://wiki.jenkins-ci.org/display/JENKINS/Build+Failure+Analyzer?focusedCommentId=65668033#comment-65668033

      Status Code: 500
      Exception: java.lang.NullPointerException
      Stacktrace:
      
      javax.servlet.ServletException: java.lang.NullPointerException
      	at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:615)
      	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:658)
      	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:573)
      	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:658)
      	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:487)
      	at org.kohsuke.stapler.Stapler.service(Stapler.java:164)
      	at javax.servlet.http.HttpServlet.service(HttpServlet.java:45)
      	at winstone.ServletConfiguration.execute(ServletConfiguration.java:248)
      	at winstone.RequestDispatcher.forward(RequestDispatcher.java:333)
      	at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:376)
      	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:95)
      	at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:206)
      	at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:179)
      	at net.bull.javamelody.PluginMonitoringFilter.doFilter(PluginMonitoringFilter.java:86)
      	at org.jvnet.hudson.plugins.monitoring.HudsonMonitoringFilter.doFilter(HudsonMonitoringFilter.java:84)
      	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:98)
      	at hudson.plugins.greenballs.GreenBallFilter.doFilter(GreenBallFilter.java:58)
      	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:98)
      	at hudson.plugins.audit_trail.AuditTrailFilter.doFilter(AuditTrailFilter.java:66)
      	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:98)
      	at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:87)
      	at winstone.FilterConfiguration.execute(FilterConfiguration.java:194)
      	at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366)
      	at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:47)
      	at winstone.FilterConfiguration.execute(FilterConfiguration.java:194)
      	at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366)
      	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 org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:166)
      	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:173)
      	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
      	at jenkins.security.ApiTokenFilter.doFilter(ApiTokenFilter.java:63)
      	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:66)
      	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 winstone.FilterConfiguration.execute(FilterConfiguration.java:194)
      	at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366)
      	at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:50)
      	at winstone.FilterConfiguration.execute(FilterConfiguration.java:194)
      	at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366)
      	at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:81)
      	at winstone.FilterConfiguration.execute(FilterConfiguration.java:194)
      	at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366)
      	at winstone.RequestDispatcher.forward(RequestDispatcher.java:331)
      	at winstone.RequestHandlerThread.processRequest(RequestHandlerThread.java:215)
      	at winstone.RequestHandlerThread.run(RequestHandlerThread.java:138)
      	at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
      	at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
      	at java.util.concurrent.FutureTask.run(Unknown Source)
      	at winstone.BoundedExecutorService$1.run(BoundedExecutorService.java:77)
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
      	at java.lang.Thread.run(Unknown Source)
      Caused by: java.lang.NullPointerException
      	at hudson.model.Descriptor.newInstancesFromHeteroList(Descriptor.java:922)
      	at hudson.model.Descriptor.newInstancesFromHeteroList(Descriptor.java:909)
      	at hudson.util.DescribableList.rebuildHetero(DescribableList.java:203)
      	at hudson.model.Project.submit(Project.java:203)
      	at hudson.model.Job.doConfigSubmit(Job.java:1045)
      	at hudson.model.AbstractProject.doConfigSubmit(AbstractProject.java:723)
      	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
      	at java.lang.reflect.Method.invoke(Unknown Source)
      	at org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:288)
      	at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:151)
      	at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:90)
      	at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:111)
      	at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
      	at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:573)
      	... 65 more
      
      
      

        Activity

        Hide
        t_westling Tomas Westling added a comment -

        This looks different from the problem we have seen, which is described on the wiki page for the plugin.
        We have seen an error in loading configuration pages, not saving them.

        Show
        t_westling Tomas Westling added a comment - This looks different from the problem we have seen, which is described on the wiki page for the plugin. We have seen an error in loading configuration pages, not saving them.
        Hide
        orrc Christopher Orr added a comment -

        I've seen this too on our 1.490 installation, and I've seen it reported on the users' mailing list.

        I didn't notice any problems when loading config pages; only when saving.

        Show
        orrc Christopher Orr added a comment - I've seen this too on our 1.490 installation, and I've seen it reported on the users' mailing list. I didn't notice any problems when loading config pages; only when saving.
        Hide
        paul_muller Paul Muller added a comment -

        We are facing the exact same issue.
        After installing the plugin (which is great and really helpful by the way) we are no longer able to safe configurations.

        Status Code: 500
        Exception: java.lang.NullPointerException
        Stacktrace:

        javax.servlet.ServletException: java.lang.NullPointerException

        We would really love to keep the plugin as it fits our use case perfectly.

        Show
        paul_muller Paul Muller added a comment - We are facing the exact same issue. After installing the plugin (which is great and really helpful by the way) we are no longer able to safe configurations. Status Code: 500 Exception: java.lang.NullPointerException Stacktrace: javax.servlet.ServletException: java.lang.NullPointerException We would really love to keep the plugin as it fits our use case perfectly.
        Hide
        t_westling Tomas Westling added a comment -

        We are looking into this problem right now, we hope to have a fix ready soon.

        Show
        t_westling Tomas Westling added a comment - We are looking into this problem right now, we hope to have a fix ready soon.
        Hide
        paul_muller Paul Muller added a comment -

        That's great news!
        If it helps: Looks like some settings (the "clean build" flag for mercurial repositories for example) are stored even though we get the 500 error.
        Mail recipients however seems to be unchangeable at the moment.

        Show
        paul_muller Paul Muller added a comment - That's great news! If it helps: Looks like some settings (the "clean build" flag for mercurial repositories for example) are stored even though we get the 500 error. Mail recipients however seems to be unchangeable at the moment.
        Hide
        t_westling Tomas Westling added a comment -

        Fixed in Build Failure Analyzer 1.3.0

        Show
        t_westling Tomas Westling added a comment - Fixed in Build Failure Analyzer 1.3.0
        Hide
        orrc Christopher Orr added a comment -

        Works for me. Thanks!

        Show
        orrc Christopher Orr added a comment - Works for me. Thanks!

          People

          • Assignee:
            t_westling Tomas Westling
            Reporter:
            david_resnick David Resnick
          • Votes:
            4 Vote for this issue
            Watchers:
            7 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: