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

Failed to write defaultParameterValue: IAE from ExtensibleChoiceParameterDefinition.createValueCommon

    • arctic, tasman, tethys

      Context
      If a plugin’s Action fails to serialize it fails the serialization of the rest response. Just like the remote APIs, Blue Ocean returns serialized Actions for many of its responses.

      For Blue Ocean this is incredibly important as a failed REST call can cause the entire UI to fail and the blame is assigned to Blue Ocean rather than the plugin that threw the exception. There are thousands of plugins and 1000s of ways to make the UI fall over.

      In Scope

      • If an Actions property fails to serialize then the serialized action should not be visible in the response
        • Could we return the error somehow without failing the whole request? We might want to let the user know if we cant render that action (e.g. Test screen shouldn't look like there are no tests if the action breaks)
      • When serialization failure occurs, the stack trace is logged along with the identity of the plugin providing the action and a link to its wiki page explaining how to file a bug.

      Original request
      Getting a 500 error when attempting to hit the blue/rest service with Multibranch Pipeline. Looks like it might be an issue with Extensible Choice Paramater plugin.

      java.io.IOException: Failed to write defaultParameterValue
      	at org.kohsuke.stapler.export.Property.safeGetValue(Property.java:151)
      	at org.kohsuke.stapler.export.Property.writeTo(Property.java:126)
      	at org.kohsuke.stapler.export.Model.writeNestedObjectTo(Model.java:227)
      	at org.kohsuke.stapler.export.Model.writeNestedObjectTo(Model.java:223)
      	at org.kohsuke.stapler.export.Model.writeNestedObjectTo(Model.java:223)
      	at org.kohsuke.stapler.export.Property.writeValue(Property.java:279)
      	at org.kohsuke.stapler.export.Property.writeValue(Property.java:222)
      	at org.kohsuke.stapler.export.Property.writeValue(Property.java:168)
      	at org.kohsuke.stapler.export.Property.writeTo(Property.java:139)
      	at org.kohsuke.stapler.export.Model.writeNestedObjectTo(Model.java:227)
      	at org.kohsuke.stapler.export.Property.writeTo(Property.java:135)
      	at org.kohsuke.stapler.export.Model.writeNestedObjectTo(Model.java:227)
      	at org.kohsuke.stapler.export.Model.writeNestedObjectTo(Model.java:223)
      	at org.kohsuke.stapler.export.Property.writeValue(Property.java:279)
      	at org.kohsuke.stapler.export.Property.writeValue(Property.java:222)
      	at org.kohsuke.stapler.export.Property.writeValue(Property.java:168)
      	at org.kohsuke.stapler.export.Property.writeTo(Property.java:139)
      	at org.kohsuke.stapler.export.Model.writeNestedObjectTo(Model.java:227)
      	at org.kohsuke.stapler.export.Model.writeNestedObjectTo(Model.java:223)
      	at org.kohsuke.stapler.export.Model.writeTo(Model.java:198)
      	at org.kohsuke.stapler.ResponseImpl.writeOne(ResponseImpl.java:285)
      	at org.kohsuke.stapler.ResponseImpl.serveExposedBean(ResponseImpl.java:273)
      	at hudson.model.Api.doJson(Api.java:211)
      	at io.jenkins.blueocean.rest.pageable.PagedResponse$Processor$1.generateResponse(PagedResponse.java:63)
      	at org.kohsuke.stapler.HttpResponseRenderer$Default.handleHttpResponse(HttpResponseRenderer.java:124)
      	at org.kohsuke.stapler.HttpResponseRenderer$Default.generateResponse(HttpResponseRenderer.java:69)
      	at org.kohsuke.stapler.Function.renderResponse(Function.java:119)
      	at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:102)
      	at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:124)
      	at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)
      	at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:746)
      	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:876)
      	at org.kohsuke.stapler.MetaClass$11.dispatch(MetaClass.java:380)
      	at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:746)
      	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:876)
      	at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:686)
      	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:876)
      	at org.kohsuke.stapler.MetaClass$11.dispatch(MetaClass.java:380)
      	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:790)
      	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:812)
      	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1669)
      	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:135)
      	at org.jenkinsci.plugins.ssegateway.Endpoint$SSEListenChannelFilter.doFilter(Endpoint.java:206)
      	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:132)
      	at io.jenkins.blueocean.ResourceCacheControl.doFilter(ResourceCacheControl.java:134)
      	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:132)
      	at hudson.plugins.greenballs.GreenBallFilter.doFilter(GreenBallFilter.java:59)
      	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:132)
      	at jenkins.metrics.impl.MetricsFilter.doFilter(MetricsFilter.java:125)
      	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:132)
      	at hudson.plugins.audit_trail.AuditTrailFilter.doFilter(AuditTrailFilter.java:95)
      	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:132)
      	at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:126)
      	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
      	at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:49)
      	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
      	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 jenkins.security.BasicHeaderProcessor.doFilter(BasicHeaderProcessor.java:93)
      	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:171)
      	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
      	at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:49)
      	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
      	at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:82)
      	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
      	at org.kohsuke.stapler.DiagnosticThreadNameFilter.doFilter(DiagnosticThreadNameFilter.java:30)
      	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
      	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585)
      	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
      	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:553)
      	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223)
      	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)
      	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)
      	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
      	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)
      	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
      	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
      	at org.eclipse.jetty.server.Server.handle(Server.java:499)
      	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:311)
      	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257)
      	at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:544)
      	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.reflect.InvocationTargetException
      	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.export.MethodProperty.getValue(MethodProperty.java:66)
      	at org.kohsuke.stapler.export.Property.safeGetValue(Property.java:145)
      	... 102 more
      Caused by: java.lang.IllegalArgumentException: Illegal choice: 
      	at jp.ikedam.jenkins.plugins.extensible_choice_parameter.ExtensibleChoiceParameterDefinition.createValueCommon(ExtensibleChoiceParameterDefinition.java:397)
      	at jp.ikedam.jenkins.plugins.extensible_choice_parameter.ExtensibleChoiceParameterDefinition.createValue(ExtensibleChoiceParameterDefinition.java:430)
      	at jp.ikedam.jenkins.plugins.extensible_choice_parameter.ExtensibleChoiceParameterDefinition.getDefaultParameterValue(ExtensibleChoiceParameterDefinition.java:450)
      	... 108 more
      

          [JENKINS-39647] Failed to write defaultParameterValue: IAE from ExtensibleChoiceParameterDefinition.createValueCommon

          Sterling Heibeck created issue -

          James Dumay added a comment -

          sheibeck thanks for this bug report. What version of the Extensible Choice Paramater plugin do you have installed?

          James Dumay added a comment - sheibeck thanks for this bug report. What version of the Extensible Choice Paramater plugin do you have installed?
          James Dumay made changes -
          Epic Link New: JENKINS-35759 [ 171771 ]
          James Dumay made changes -
          Sprint New: tasman [ 136 ]
          Priority Original: Minor [ 4 ] New: Critical [ 2 ]
          James Dumay made changes -
          Rank New: Ranked higher

          Version 1.3.3

          Sterling Heibeck added a comment - Version 1.3.3

          James Dumay added a comment -

          Thanks ill get someone to take a look.

          James Dumay added a comment - Thanks ill get someone to take a look.
          James Dumay made changes -
          Labels New: adoption
          James Dumay made changes -
          Assignee New: Ivan Meredith [ imeredith ]
          James Dumay made changes -
          Sprint Original: tasman [ 136 ] New: arctic [ 131 ]

            sheibeck Sterling Heibeck
            sheibeck Sterling Heibeck
            Votes:
            0 Vote for this issue
            Watchers:
            7 Start watching this issue

              Created:
              Updated:
              Resolved: