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

Java JSON exception with an empty parametrized build.

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Major Major
    • core
    • Linux

      I encountered an issue\bug with a new project.
      I am using Jenkins 1.650 and 1.642.2 on different hosts but the result is
      the same on all of them.
      When marking the "This build is parameterized" in a Freestyle project
      but yet to add parameters and starting a build, in the web interface I
      am receiving some JSON java exception.

      I have assumed that it should not crash but it does.

      I would expect the build job to run even if there are no parameters defined for it.

      Snapshots from the webui:
      build page(without parameters) - http://snag.gy/loua2.jpg
      exception - http://snag.gy/eZshW.jpg

      Exception output after :
      A problem occurred while processing the request. Please check our bug tracker to see if a similar problem has already been reported. If it is already reported, please vote and put a comment on it to let us gauge the impact of the problem. If you think this is a new issue, please file a new issue. When you file an issue, make sure to add the entire stack trace, along with the version of Jenkins and relevant plugins. The users list might be also useful in understanding what has happened.
      Stack trace

      javax.servlet.ServletException: java.lang.ClassCastException: net.sf.json.JSONNull cannot be cast to net.sf.json.JSONObject
      at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:796)
      at org.kohsuke.stapler.Stapler.invoke(Stapler.java:876)
      at org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.java:249)
      at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
      at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:746)
      at org.kohsuke.stapler.Stapler.invoke(Stapler.java:876)
      at org.kohsuke.stapler.Stapler.invoke(Stapler.java:649)
      at org.kohsuke.stapler.Stapler.service(Stapler.java:238)
      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:132)
      at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:123)
      at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482)
      at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:49)
      at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482)
      at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84)
      at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:76)
      at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:171)
      at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482)
      at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:49)
      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:1482)
      at org.kohsuke.stapler.DiagnosticThreadNameFilter.doFilter(DiagnosticThreadNameFilter.java:30)
      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.content(AbstractHttpConnection.java:960)
      at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:1021)
      at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:865)
      at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:240)
      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:1145)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
      at java.lang.Thread.run(Thread.java:745)
      Caused by: java.lang.ClassCastException: net.sf.json.JSONNull cannot be cast to net.sf.json.JSONObject
      at hudson.model.ParametersDefinitionProperty._doBuild(ParametersDefinitionProperty.java:148)
      at jenkins.model.ParameterizedJobMixIn.doBuild(ParameterizedJobMixIn.java:191)
      at hudson.model.AbstractProject.doBuild(AbstractProject.java:1752)
      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:606)
      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:121)
      at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
      at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:746)
      ... 48 more
      ##END OF OUPUT

          [JENKINS-33201] Java JSON exception with an empty parametrized build.

          Oleg Nenashev added a comment -

          Looks like a bug in the core. Maybe it's caused by a library version conflict with a plugin.

          Caused by: java.lang.ClassCastException: net.sf.json.JSONNull cannot be cast to net.sf.json.JSONObject
          at hudson.model.ParametersDefinitionProperty._doBuild(ParametersDefinitionProperty.java:148)
          at jenkins.model.ParameterizedJobMixIn.doBuild(ParameterizedJobMixIn.java:191)
          at hudson.model.AbstractProject.doBuild(AbstractProject.java:1752)
          

          Oleg Nenashev added a comment - Looks like a bug in the core. Maybe it's caused by a library version conflict with a plugin. Caused by: java.lang.ClassCastException: net.sf.json.JSONNull cannot be cast to net.sf.json.JSONObject at hudson.model.ParametersDefinitionProperty._doBuild(ParametersDefinitionProperty.java:148) at jenkins.model.ParameterizedJobMixIn.doBuild(ParameterizedJobMixIn.java:191) at hudson.model.AbstractProject.doBuild(AbstractProject.java:1752)

          Rupin R Nath added a comment -

          Working on it.

          Rupin R Nath added a comment - Working on it.

          Rupin R Nath added a comment -

          Rupin R Nath added a comment - https://github.com/jenkinsci/jenkins/pull/2444

          Rupin R Nath added a comment - - edited

          Fixed in master.
          I have handled this issue gracefully. Now user will be redirected to an error page giving information about the error (Similar to how it is handled for empty job/view name)
          https://github.com/jenkinsci/jenkins/pull/2444

          Rupin R Nath added a comment - - edited Fixed in master. I have handled this issue gracefully. Now user will be redirected to an error page giving information about the error (Similar to how it is handled for empty job/view name) https://github.com/jenkinsci/jenkins/pull/2444

          Hi,
          In my plugin , if empty parametrized build is triggered. i should be able to continue build by ignoring those parameters. How can we do that?

          Goutham Nithyananda added a comment - Hi, In my plugin , if empty parametrized build is triggered. i should be able to continue build by ignoring those parameters. How can we do that?

          Oleg Nenashev added a comment -

          goutham_nithyananda I'm not sure what you're asking about, but it's definitely better to continue discussion in jenkinsci-dev ML instead of the closed ticket.

          Oleg Nenashev added a comment - goutham_nithyananda I'm not sure what you're asking about, but it's definitely better to continue discussion in jenkinsci-dev ML instead of the closed ticket.

            rupinr Rupin R Nath
            elico Eliezer Croitoru
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: