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

Clover-Plugin crash (InvocationTargetException)

    XMLWordPrintable

Details

    • Bug
    • Status: Closed (View Workflow)
    • Minor
    • Resolution: Fixed
    • clover-plugin
    • Jenkins 2.24, Ubuntu 14.04.5, OpenJDK Runtime Environment (IcedTea 2.6.7) (7u111-2.6.7-0ubuntu0.14.04.3)

    Description

      When trying to create clover-plugin post-build action, I get a stacktrace:

      WARNING: Error while serving <my project>
      java.lang.reflect.InvocationTargetException
      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:324)
      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:167)
      at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:100)
      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$5.doDispatch(MetaClass.java:233)
      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.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 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(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.IllegalArgumentException: Unable to convert to class hudson.plugins.clover.targets.CoverageTarget
      at org.kohsuke.stapler.RequestImpl.bindParameters(RequestImpl.java:465)
      at org.kohsuke.stapler.RequestImpl.bindParameters(RequestImpl.java:441)
      at hudson.plugins.clover.CloverPublisher$DescriptorImpl.newInstance(CloverPublisher.java:405)
      at hudson.plugins.clover.CloverPublisher$DescriptorImpl.newInstance(CloverPublisher.java:380)
      at hudson.model.Descriptor.newInstancesFromHeteroList(Descriptor.java:1049)
      at hudson.model.Descriptor.newInstancesFromHeteroList(Descriptor.java:1011)
      at hudson.util.DescribableList.rebuildHetero(DescribableList.java:208)
      at hudson.model.Project.submit(Project.java:236)
      at hudson.model.Job.doConfigSubmit(Job.java:1246)
      at hudson.model.AbstractProject.doConfigSubmit(AbstractProject.java:796)
      ... 70 more

      Attachments

        Issue Links

          Activity

            lacelle Zachary LaCelle created issue -
            jpyeron Jason Pyeron added a comment -

            same root cause

            Caused by: java.lang.IllegalArgumentException: Unable to convert to class hudson.plugins.clover.targets.CoverageTarget
            at org.kohsuke.stapler.RequestImpl.bindParameters(RequestImpl.java:465)
            at org.kohsuke.stapler.RequestImpl.bindParameters(RequestImpl.java:441)
            at hudson.plugins.clover.CloverPublisher$DescriptorImpl.newInstance(CloverPublisher.java:405)
            at hudson.plugins.clover.CloverPublisher$DescriptorImpl.newInstance(CloverPublisher.java:380)
            at hudson.model.Descriptor.newInstancesFromHeteroList(Descriptor.java:1050)
            at hudson.model.Descriptor.newInstancesFromHeteroList(Descriptor.java:1012)
            at hudson.util.DescribableList.rebuildHetero(DescribableList.java:208)
            at hudson.model.Project.submit(Project.java:236)
            at hudson.model.Job.doConfigSubmit(Job.java:1246)
            at hudson.model.AbstractProject.doConfigSubmit(AbstractProject.java:796)
            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:335)
            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:175)
            at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:108)
            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)
            ... 58 more
            
            jpyeron Jason Pyeron added a comment - same root cause Caused by: java.lang.IllegalArgumentException: Unable to convert to class hudson.plugins.clover.targets.CoverageTarget at org.kohsuke.stapler.RequestImpl.bindParameters(RequestImpl.java:465) at org.kohsuke.stapler.RequestImpl.bindParameters(RequestImpl.java:441) at hudson.plugins.clover.CloverPublisher$DescriptorImpl.newInstance(CloverPublisher.java:405) at hudson.plugins.clover.CloverPublisher$DescriptorImpl.newInstance(CloverPublisher.java:380) at hudson.model.Descriptor.newInstancesFromHeteroList(Descriptor.java:1050) at hudson.model.Descriptor.newInstancesFromHeteroList(Descriptor.java:1012) at hudson.util.DescribableList.rebuildHetero(DescribableList.java:208) at hudson.model.Project.submit(Project.java:236) at hudson.model.Job.doConfigSubmit(Job.java:1246) at hudson.model.AbstractProject.doConfigSubmit(AbstractProject.java:796) 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:335) 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:175) at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:108) 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) ... 58 more
            jpyeron Jason Pyeron made changes -
            Field Original Value New Value
            Link This issue duplicates JENKINS-38956 [ JENKINS-38956 ]

            Code changed in jenkins
            User: Marek Parfianowicz
            Path:
            src/main/java/hudson/plugins/clover/CloverPublisher.java
            http://jenkins-ci.org/commit/clover-plugin/0591eeabb798f2fb656c2c391324216fbae4715f
            Log:
            JENKINS-39410: removed @stapler-constructor annotation from the CloverPublisher constructor, because stapler handles simple types only (primitive, strings but not CoverageTarget); binding request parameters using a set of StaplerRequest.getParameter calls, instead of deprecated StaplerRequest.bindParameters (which was failing on our annotated constructor); added null-check for failingMetrics field

            scm_issue_link SCM/JIRA link daemon added a comment - Code changed in jenkins User: Marek Parfianowicz Path: src/main/java/hudson/plugins/clover/CloverPublisher.java http://jenkins-ci.org/commit/clover-plugin/0591eeabb798f2fb656c2c391324216fbae4715f Log: JENKINS-39410 : removed @stapler-constructor annotation from the CloverPublisher constructor, because stapler handles simple types only (primitive, strings but not CoverageTarget); binding request parameters using a set of StaplerRequest.getParameter calls, instead of deprecated StaplerRequest.bindParameters (which was failing on our annotated constructor); added null-check for failingMetrics field
            mparfianowicz Marek Parfianowicz added a comment - - edited

            I started implementation of the bug fix, see

            https://github.com/jenkinsci/clover-plugin/commit/0591eeabb798f2fb656c2c391324216fbae4715f 

            It's not crashing anymore, however I need to test it further on different versions of Jenkins (1.5xx, 1.6xxx and 2.x) different project setups (freestyle and pipelines). I noticed that in some configurations values entered are not persisted, so it requires an additional fix.

            The fix should solve also JENKINS-38956.

             

            A workaround is to use version 4.6.0 of the Clover plugin. 

            mparfianowicz Marek Parfianowicz added a comment - - edited I started implementation of the bug fix, see https://github.com/jenkinsci/clover-plugin/commit/0591eeabb798f2fb656c2c391324216fbae4715f   It's not crashing anymore, however I need to test it further on different versions of Jenkins (1.5xx, 1.6xxx and 2.x) different project setups (freestyle and pipelines). I noticed that in some configurations values entered are not persisted, so it requires an additional fix. The fix should solve also  JENKINS-38956 .   A workaround is to use version 4.6.0 of the Clover plugin. 

            Code changed in jenkins
            User: Marek Parfianowicz
            Path:
            src/main/java/hudson/plugins/clover/CloverPublisher.java
            http://jenkins-ci.org/commit/clover-plugin/93637282cdb4a4bf9847e208ae2838f650e95424
            Log:
            JENKINS-39410: fixed typo (double dot after string concatenation)

            scm_issue_link SCM/JIRA link daemon added a comment - Code changed in jenkins User: Marek Parfianowicz Path: src/main/java/hudson/plugins/clover/CloverPublisher.java http://jenkins-ci.org/commit/clover-plugin/93637282cdb4a4bf9847e208ae2838f650e95424 Log: JENKINS-39410 : fixed typo (double dot after string concatenation)
            mparfianowicz Marek Parfianowicz added a comment - Fixed in Clover 4.7.1 ( http://repo.jenkins-ci.org/releases/org/jenkins-ci/plugins/clover/4.7.1/ )
            mparfianowicz Marek Parfianowicz made changes -
            Resolution Fixed [ 1 ]
            Status Open [ 1 ] Closed [ 6 ]
            stephenconnolly Stephen Connolly made changes -
            Assignee Stephen Connolly [ stephenconnolly ]

            People

              Unassigned Unassigned
              lacelle Zachary LaCelle
              Votes:
              2 Vote for this issue
              Watchers:
              6 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: