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

Clover-Plugin crash (InvocationTargetException)

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

      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

          [JENKINS-39410] Clover-Plugin crash (InvocationTargetException)

          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
          

          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

          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/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

          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. 

          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/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)

          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/ )

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

              Created:
              Updated:
              Resolved: