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

Extended Choice Parameter Plugin Incompatibility

    Details

    • Similar Issues:

      Description

      I am unable to use versioning for a custom tool. It seems that the Custom Tools plugin is not compatible with the latest version of the Extended Choice Parameter plugin.

      ```
      javax.servlet.ServletException: java.lang.IllegalArgumentException: Failed to instantiate class com.cloudbees.jenkins.plugins.customtools.CustomTool from {"name":"phpenv","exportedPaths":"phpenv/bin,phpenv/shims","home":"","additionalVariables":"","toolVersion":{"versionsListSource":{"name":"PHP_VERSION","description":"The PHP version to use.","parameterGroup":{"value":"0","type":"PT_SINGLE_SELECT","visibleItemCount":"5","multiSelectDelimiter":",","quoteValue":false,"propertySource":

      {"value":"0","propertyValue":"5.3.29"}

      ,"defaultPropertySource":{"value":"0","defaultPropertyValue":"5.3.29"}}}},"properties":{"stapler-class-bag":"true","hudson-tools-InstallSourceProperty":{"installers":{"label":"","command":"export PHPENV_ROOT=$(pwd)/phpenv\nexport PATH=\"$PATH:$(pwd)/phpenv/bin\"\n\nif test -d $PHPENV_ROOT; then\n $PHPENV_ROOT/bin/phpenv update\nelse\n (curl -L http://git.io/phpenv-installer | bash)\nfi\n\nif ! test -d $PHPENV_ROOT/shims; then\n mkdir $PHPENV_ROOT/shims\nfi","toolHome":".","stapler-class":"hudson.tools.CommandInstaller","$class":"hudson.tools.CommandInstaller"}}}}
      at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:796)
      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.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: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:1142)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
      at java.lang.Thread.run(Thread.java:745)
      Caused by: java.lang.IllegalArgumentException: Failed to instantiate class com.cloudbees.jenkins.plugins.customtools.CustomTool from {"name":"phpenv","exportedPaths":"phpenv/bin,phpenv/shims","home":"","additionalVariables":"","toolVersion":{"versionsListSource":{"name":"PHP_VERSION","description":"The PHP version to use.","parameterGroup":{"value":"0","type":"PT_SINGLE_SELECT","visibleItemCount":"5","multiSelectDelimiter":",","quoteValue":false,"propertySource":

      {"value":"0","propertyValue":"5.3.29"}

      ,"defaultPropertySource":{"value":"0","defaultPropertyValue":"5.3.29"}}}},"properties":{"stapler-class-bag":"true","hudson-tools-InstallSourceProperty":{"installers":{"label":"","command":"export PHPENV_ROOT=$(pwd)/phpenv\nexport PATH=\"$PATH:$(pwd)/phpenv/bin\"\n\nif test -d $PHPENV_ROOT; then\n $PHPENV_ROOT/bin/phpenv update\nelse\n (curl -L http://git.io/phpenv-installer | bash)\nfi\n\nif ! test -d $PHPENV_ROOT/shims; then\n mkdir $PHPENV_ROOT/shims\nfi","toolHome":".","stapler-class":"hudson.tools.CommandInstaller","$class":"hudson.tools.CommandInstaller"}}}}
      at org.kohsuke.stapler.RequestImpl$TypePair.convertJSON(RequestImpl.java:602)
      at org.kohsuke.stapler.RequestImpl.bindJSON(RequestImpl.java:404)
      at org.kohsuke.stapler.RequestImpl.bindJSON(RequestImpl.java:400)
      at org.kohsuke.stapler.RequestImpl.bindJSONToList(RequestImpl.java:441)
      at hudson.tools.ToolDescriptor.configure(ToolDescriptor.java:120)
      at jenkins.model.Jenkins.configureDescriptor(Jenkins.java:2965)
      at jenkins.model.Jenkins.doConfigSubmit(Jenkins.java:2928)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.lang.reflect.Method.invoke(Method.java:498)
      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)
      ... 59 more
      Caused by: java.lang.IllegalArgumentException: Failed to convert the toolVersion parameter of the constructor public com.cloudbees.jenkins.plugins.customtools.CustomTool(java.lang.String,java.lang.String,java.util.List,java.lang.String,com.synopsys.arc.jenkinsci.plugins.customtools.LabelSpecifics[],com.synopsys.arc.jenkinsci.plugins.customtools.versions.ToolVersionConfig,java.lang.String)
      at org.kohsuke.stapler.RequestImpl.instantiate(RequestImpl.java:699)
      at org.kohsuke.stapler.RequestImpl.access$200(RequestImpl.java:81)
      at org.kohsuke.stapler.RequestImpl$TypePair.convertJSON(RequestImpl.java:600)
      ... 75 more
      Caused by: java.lang.IllegalArgumentException: Failed to instantiate class com.synopsys.arc.jenkinsci.plugins.customtools.versions.ToolVersionConfig from {"versionsListSource":{"name":"PHP_VERSION","description":"The PHP version to use.","parameterGroup":{"value":"0","type":"PT_SINGLE_SELECT","visibleItemCount":"5","multiSelectDelimiter":",","quoteValue":false,"propertySource":

      {"value":"0","propertyValue":"5.3.29"}

      ,"defaultPropertySource":{"value":"0","defaultPropertyValue":"5.3.29"}}}}
      at org.kohsuke.stapler.RequestImpl$TypePair.convertJSON(RequestImpl.java:602)
      at org.kohsuke.stapler.RequestImpl.bindJSON(RequestImpl.java:404)
      at org.kohsuke.stapler.RequestImpl.instantiate(RequestImpl.java:697)
      ... 77 more
      Caused by: java.lang.IllegalArgumentException: Failed to convert the versionsListSource parameter of the constructor public com.synopsys.arc.jenkinsci.plugins.customtools.versions.ToolVersionConfig(com.cwctravel.hudson.plugins.extended_choice_parameter.ExtendedChoiceParameterDefinition)
      at org.kohsuke.stapler.RequestImpl.instantiate(RequestImpl.java:699)
      at org.kohsuke.stapler.RequestImpl.access$200(RequestImpl.java:81)
      at org.kohsuke.stapler.RequestImpl$TypePair.convertJSON(RequestImpl.java:600)
      ... 79 more
      Caused by: java.lang.IllegalArgumentException: Failed to instantiate class com.cwctravel.hudson.plugins.extended_choice_parameter.ExtendedChoiceParameterDefinition from {"name":"PHP_VERSION","description":"The PHP version to use.","parameterGroup":{"value":"0","type":"PT_SINGLE_SELECT","visibleItemCount":"5","multiSelectDelimiter":",","quoteValue":false,"propertySource":

      {"value":"0","propertyValue":"5.3.29"}

      ,"defaultPropertySource":

      {"value":"0","defaultPropertyValue":"5.3.29"}

      }}
      at org.kohsuke.stapler.RequestImpl$TypePair.convertJSON(RequestImpl.java:602)
      at org.kohsuke.stapler.RequestImpl.bindJSON(RequestImpl.java:404)
      at org.kohsuke.stapler.RequestImpl.instantiate(RequestImpl.java:697)
      ... 81 more
      Caused by: org.kohsuke.stapler.NoStaplerConstructorException: There's no @DataBoundConstructor on any constructor of class com.cwctravel.hudson.plugins.extended_choice_parameter.ExtendedChoiceParameterDefinition
      at org.kohsuke.stapler.ClassDescriptor.loadConstructorParamNames(ClassDescriptor.java:177)
      at org.kohsuke.stapler.RequestImpl.instantiate(RequestImpl.java:684)
      at org.kohsuke.stapler.RequestImpl.access$200(RequestImpl.java:81)
      at org.kohsuke.stapler.RequestImpl$TypePair.convertJSON(RequestImpl.java:600)
      ... 83 more
      ```

        Attachments

          Issue Links

            Activity

            Hide
            oleg_nenashev Oleg Nenashev added a comment -

            From what I see it's a compatibility issue caused by changes in the Extended Choice plugin.
            Please specify it's version.

            Show
            oleg_nenashev Oleg Nenashev added a comment - From what I see it's a compatibility issue caused by changes in the Extended Choice plugin. Please specify it's version.
            Hide
            joshuaspence Joshua Spence added a comment -

            We tried downgrading the Extended Choice plugin to v0.33 but it still doesn't seem to work. JENKINS-31458 might be related?

            Show
            joshuaspence Joshua Spence added a comment - We tried downgrading the Extended Choice plugin to v0.33 but it still doesn't seem to work. JENKINS-31458 might be related?
            Hide
            joshuaspence Joshua Spence added a comment -

            OK, v0.28 seems to work.

            Show
            joshuaspence Joshua Spence added a comment - OK, v0.28 seems to work.
            Hide
            topr Tomasz Przybysz added a comment - - edited

            I'm facing the same issue. Are there any drawbacks of downgrading Extended Choice plugin? I'm on version 0.74.

            Show
            topr Tomasz Przybysz added a comment - - edited I'm facing the same issue. Are there any drawbacks of downgrading Extended Choice plugin? I'm on version 0.74.
            Hide
            oleg_nenashev Oleg Nenashev added a comment -

            Tomasz Przybysz No downsides excepting missing features.
            BTW I should migrate the code from that plugin ASAP. Too many issues

            Show
            oleg_nenashev Oleg Nenashev added a comment - Tomasz Przybysz No downsides excepting missing features. BTW I should migrate the code from that plugin ASAP. Too many issues
            Hide
            oleg_nenashev Oleg Nenashev added a comment -

            I have started working on it and created https://github.com/jenkinsci/customtools-extended-choice-version-plugin for the old functionality to be detached.

            Show
            oleg_nenashev Oleg Nenashev added a comment - I have started working on it and created https://github.com/jenkinsci/customtools-extended-choice-version-plugin for the old functionality to be detached.

              People

              • Assignee:
                oleg_nenashev Oleg Nenashev
                Reporter:
                joshuaspence Joshua Spence
              • Votes:
                3 Vote for this issue
                Watchers:
                6 Start watching this issue

                Dates

                • Created:
                  Updated: