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

Java JSON exception with an empty parametrized build.

    XMLWordPrintable

    Details

    • Similar Issues:

      Description

      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

        Attachments

          Issue Links

            Activity

            Hide
            oleg_nenashev 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)
            
            Show
            oleg_nenashev 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)
            Hide
            rupinr Rupin R Nath added a comment -

            Working on it.

            Show
            rupinr Rupin R Nath added a comment - Working on it.
            Show
            rupinr Rupin R Nath added a comment - https://github.com/jenkinsci/jenkins/pull/2444
            Hide
            rupinr 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

            Show
            rupinr 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
            Hide
            goutham_nithyananda 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?

            Show
            goutham_nithyananda 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?
            Hide
            oleg_nenashev 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.

            Show
            oleg_nenashev 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.

              People

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

                Dates

                Created:
                Updated:
                Resolved: