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

org.kohsuke.stapler.NoStaplerConstructorException using custom tools versions

    Details

    • Similar Issues:

      Description

      When changing a custom tool installation for using versions, the following stack trace is shown after saving, and the config is not updated.

       

      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:247)
          at org.kohsuke.stapler.RequestImpl.instantiate(RequestImpl.java:764)
          at org.kohsuke.stapler.RequestImpl.access$200(RequestImpl.java:83)
          at org.kohsuke.stapler.RequestImpl$TypePair.convertJSON(RequestImpl.java:678)
      Caused: java.lang.IllegalArgumentException: Failed to instantiate class com.cwctravel.hudson.plugins.extended_choice_parameter.ExtendedChoiceParameterDefinition from {"name":"7ZIP_VERSION","description":"Version of 7-Zip","parameterGroup":{"value":"0","type":"PT_SINGLE_SELECT","visibleItemCount":"5","multiSelectDelimiter":"","quoteValue":false,"propertySource":{"value":"0","propertyValue":"16.04,16.05,16.06"},"defaultPropertySource":{"value":"0","defaultPropertyValue":"16.04"},"descriptionPropertySource":{"value":"0","descriptionPropertyValue":"16.04 Version"}}}
          at org.kohsuke.stapler.RequestImpl$TypePair.convertJSON(RequestImpl.java:680)
          at org.kohsuke.stapler.RequestImpl.bindJSON(RequestImpl.java:478)
          at org.kohsuke.stapler.RequestImpl.instantiate(RequestImpl.java:777)
      Caused: 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:779)
          at org.kohsuke.stapler.RequestImpl.access$200(RequestImpl.java:83)
          at org.kohsuke.stapler.RequestImpl$TypePair.convertJSON(RequestImpl.java:678)
      Caused: java.lang.IllegalArgumentException: Failed to instantiate class com.synopsys.arc.jenkinsci.plugins.customtools.versions.ToolVersionConfig from {"versionsListSource":{"name":"7ZIP_VERSION","description":"Version of 7-Zip","parameterGroup":{"value":"0","type":"PT_SINGLE_SELECT","visibleItemCount":"5","multiSelectDelimiter":"","quoteValue":false,"propertySource":{"value":"0","propertyValue":"16.04,16.05,16.06"},"defaultPropertySource":{"value":"0","defaultPropertyValue":"16.04"},"descriptionPropertySource":{"value":"0","descriptionPropertyValue":"16.04 Version"}}}}
          at org.kohsuke.stapler.RequestImpl$TypePair.convertJSON(RequestImpl.java:680)
          at org.kohsuke.stapler.RequestImpl.bindJSON(RequestImpl.java:478)
          at org.kohsuke.stapler.RequestImpl.instantiate(RequestImpl.java:777)
      Caused: 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:779)
          at org.kohsuke.stapler.RequestImpl.access$200(RequestImpl.java:83)
          at org.kohsuke.stapler.RequestImpl$TypePair.convertJSON(RequestImpl.java:678)
      Caused: java.lang.IllegalArgumentException: Failed to instantiate class com.cloudbees.jenkins.plugins.customtools.CustomTool from {"name":"7-Zip","exportedPaths":"","home":"","additionalVariables":"","labelSpecifics":{"label":"os:windows","exportedPaths":".","additionalVars":""},"toolVersion":{"versionsListSource":{"name":"7ZIP_VERSION","description":"Version of 7-Zip","parameterGroup":{"value":"0","type":"PT_SINGLE_SELECT","visibleItemCount":"5","multiSelectDelimiter":"","quoteValue":false,"propertySource":{"value":"0","propertyValue":"16.04,16.05,16.06"},"defaultPropertySource":{"value":"0","defaultPropertyValue":"16.04"},"descriptionPropertySource":{"value":"0","descriptionPropertyValue":"16.04 Version"}}}},"properties":{"stapler-class-bag":"true","hudson-tools-InstallSourceProperty":{"installers":{"label":"os:windows","url":"http://nexus.ae.hz.lbbw.sko.de:8081/repository/jenkins-tools/de/7zip/7zip/16.04/7zip-16.04-win64.zip","subdir":"","stapler-class<span class="code-quote">":"hudson.tools.ZipExtractionInstaller","$class<span class="code-quote">":"hudson.tools.ZipExtractionInstaller"}}}}
          at org.kohsuke.stapler.RequestImpl$TypePair.convertJSON(RequestImpl.java:680)
          at org.kohsuke.stapler.RequestImpl.bindJSON(RequestImpl.java:478)
          at org.kohsuke.stapler.RequestImpl.bindJSON(RequestImpl.java:474)
          at org.kohsuke.stapler.RequestImpl.bindJSONToList(RequestImpl.java:519)
          at hudson.tools.ToolDescriptor.configure(ToolDescriptor.java:140)
          at jenkins.tools.GlobalToolConfiguration.configureDescriptor(GlobalToolConfiguration.java:101)
          at jenkins.tools.GlobalToolConfiguration.configure(GlobalToolConfiguration.java:90)
          at jenkins.tools.GlobalToolConfiguration.doConfigure(GlobalToolConfiguration.java:79)
          at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)
          at org.kohsuke.stapler.Function$MethodFunction.invoke(Function.java:343)
          at org.kohsuke.stapler.interceptor.RequirePOST$Processor.invoke(RequirePOST.java:52)
          at org.kohsuke.stapler.PreInvokeInterceptedFunction.invoke(PreInvokeInterceptedFunction.java:26)
          at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:184)
          at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:117)
          at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:129)
          at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)
          at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:715)
      Caused: javax.servlet.ServletException
          at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:765)
          at org.kohsuke.stapler.Stapler.invoke(Stapler.java:845)
          at org.kohsuke.stapler.MetaClass$10.dispatch(MetaClass.java:374)
          at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:715)
          at org.kohsuke.stapler.Stapler.invoke(Stapler.java:845)
          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:729)
          at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)
          at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)
          at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
          at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192)
          at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)
          at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:135)
          at hudson.plugins.greenballs.GreenBallFilter.doFilter(GreenBallFilter.java:59)
          at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:132)
          at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:237)
          at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:209)
          at net.bull.javamelody.PluginMonitoringFilter.doFilter(PluginMonitoringFilter.java:88)
          at org.jvnet.hudson.plugins.monitoring.HudsonMonitoringFilter.doFilter(HudsonMonitoringFilter.java:113)
          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.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192)
          at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)
          at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:80)
          at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192)
          at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)
          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.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192)
          at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)
          at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:49)
          at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192)
          at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)
          at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:82)
          at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192)
          at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)
          at org.kohsuke.stapler.DiagnosticThreadNameFilter.doFilter(DiagnosticThreadNameFilter.java:30)
          at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192)
          at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)
          at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)
          at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:108)
          at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:632)
          at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
          at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
          at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:620)
          at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
          at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:349)
          at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:1110)
          at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
          at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:785)
          at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1425)
          at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
          at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
          at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
          at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
          at java.lang.Thread.run(Thread.java:745)
      

        Attachments

          Issue Links

            Activity

            Hide
            oleg_nenashev Oleg Nenashev added a comment -

            Please downgrade Extended Choice plugin to the version defined in Custom Tools plugin. There is a compatibility issue

            I still need to implement JENKINS-26683

            Show
            oleg_nenashev Oleg Nenashev added a comment - Please downgrade Extended Choice plugin to the version defined in Custom Tools plugin. There is a compatibility issue I still need to implement JENKINS-26683
            Hide
            kriusd K R added a comment -

            Thanks for the hint.

            Due to code execution vulnerability of the plugin, downgrading is not really an option.

            Do you have an idea, when you will be able to fix that issue?

            I'll use separate tool configurations per version for now.

            Show
            kriusd K R added a comment - Thanks for the hint. Due to code execution vulnerability of the plugin, downgrading is not really an option. Do you have an idea, when you will be able to fix that issue? I'll use separate tool configurations per version for now.
            Hide
            oleg_nenashev Oleg Nenashev added a comment -

            K R Yes, vulnerability is a good point. I'll check if I can dedicate some time to get it landed before Jenkins World.

            Show
            oleg_nenashev Oleg Nenashev added a comment - K R Yes, vulnerability is a good point. I'll check if I can dedicate some time to get it landed before Jenkins World.
            Hide
            oleg_nenashev Oleg Nenashev added a comment -

            Nope, I didn't find time for that. Maybe I will reiterate in September

            Show
            oleg_nenashev Oleg Nenashev added a comment - Nope, I didn't find time for that. Maybe I will reiterate in September
            Hide
            oleg_nenashev Oleg Nenashev added a comment -

            I will close it as a duplicate of JENKINS-32662

            Show
            oleg_nenashev Oleg Nenashev added a comment - I will close it as a duplicate of JENKINS-32662

              People

              • Assignee:
                oleg_nenashev Oleg Nenashev
                Reporter:
                kriusd K R
              • Votes:
                2 Vote for this issue
                Watchers:
                5 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: