Details
-
Bug
-
Status: Resolved (View Workflow)
-
Blocker
-
Resolution: Fixed
-
JDK 1.8.0_25 x64 , Jenkins 1.611 & 1.610 - Performance Plugin Version 1.12
Description
When adding the performance plugin to the post build steps and selecting a jmeter report saving will fail with a NoStaplerConstrucorException.
Attachments
Issue Links
- is blocking
-
JENKINS-26781 regression resolving Descriptor using "$class" vs "kind"
-
- Resolved
-
- is duplicated by
-
JENKINS-28114 Update to 1.610 causing main Jenkins config page to throw
-
- Resolved
-
- links to
Activity
Sorry but i have the same problem in Jenkins v. 1.611
Stacktrace:
javax.servlet.ServletException: java.lang.RuntimeException: Failed to instantiate class hudson.plugins.performance.PerformancePublisher from {"parsers":{"glob":"result.xml","kind":"hudson.plugins.performance.JMeterParser$DescriptorImpl"},"modeOfThreshold":"false","errorUnstableThreshold":"0","errorFailedThreshold":"0","errorUnstableResponseTimeThreshold":"","relativeUnstableThresholdNegative":"0.0","relativeUnstableThresholdPositive":"0.0","relativeFailedThresholdNegative":"0.0","relativeFailedThresholdPositive":"0.0","compareBuildPrevious":"true","nthBuildNumber":"0","comparisonType":"ART","modePerformancePerTestCase":true,"modeThroughput":true,"stapler-class<span class="code-quote">":"hudson.plugins.performance.PerformancePublisher","$class<span class="code-quote">":"hudson.plugins.performance.PerformancePublisher"} at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:796) at org.kohsuke.stapler.Stapler.invoke(Stapler.java:876) at org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.java:249) at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53) at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:746) at org.kohsuke.stapler.Stapler.invoke(Stapler.java:876) at org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.java:249) at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53) 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: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:123) at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:114) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482) at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:48) 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:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:745) Caused by: java.lang.RuntimeException: Failed to instantiate class hudson.plugins.performance.PerformancePublisher from {"parsers":{"glob":"result.xml","kind":"hudson.plugins.performance.JMeterParser$DescriptorImpl"},"modeOfThreshold":"false","errorUnstableThreshold":"0","errorFailedThreshold":"0","errorUnstableResponseTimeThreshold":"","relativeUnstableThresholdNegative":"0.0","relativeUnstableThresholdPositive":"0.0","relativeFailedThresholdNegative":"0.0","relativeFailedThresholdPositive":"0.0","compareBuildPrevious":"true","nthBuildNumber":"0","comparisonType":"ART","modePerformancePerTestCase":true,"modeThroughput":true,"stapler-class<span class="code-quote">":"hudson.plugins.performance.PerformancePublisher","$class<span class="code-quote">":"hudson.plugins.performance.PerformancePublisher"} at hudson.model.Descriptor.newInstance(Descriptor.java:579) at hudson.model.Descriptor.newInstancesFromHeteroList(Descriptor.java:929) at hudson.model.Descriptor.newInstancesFromHeteroList(Descriptor.java:903) at hudson.util.DescribableList.rebuildHetero(DescribableList.java:208) at hudson.model.Project.submit(Project.java:236) at hudson.model.Job.doConfigSubmit(Job.java:1206) at hudson.model.AbstractProject.doConfigSubmit(AbstractProject.java:788) at sun.reflect.GeneratedMethodAccessor1157.invoke(Unknown Source) 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: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) ... 67 more Caused by: java.lang.IllegalArgumentException: Failed to instantiate class hudson.plugins.performance.PerformancePublisher from {"parsers":{"glob":"result.xml","kind":"hudson.plugins.performance.JMeterParser$DescriptorImpl"},"modeOfThreshold":"false","errorUnstableThreshold":"0","errorFailedThreshold":"0","errorUnstableResponseTimeThreshold":"","relativeUnstableThresholdNegative":"0.0","relativeUnstableThresholdPositive":"0.0","relativeFailedThresholdNegative":"0.0","relativeFailedThresholdPositive":"0.0","compareBuildPrevious":"true","nthBuildNumber":"0","comparisonType":"ART","modePerformancePerTestCase":true,"modeThroughput":true,"stapler-class<span class="code-quote">":"hudson.plugins.performance.PerformancePublisher","$class<span class="code-quote">":"hudson.plugins.performance.PerformancePublisher"} 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 hudson.model.Descriptor.newInstance(Descriptor.java:570) ... 82 more Caused by: java.lang.IllegalArgumentException: Failed to convert the parsers parameter of the constructor public hudson.plugins.performance.PerformancePublisher(int,int,java.lang.String,double,double,double,double,int,boolean,java.lang.String,boolean,boolean,java.util.List,boolean) 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) ... 85 more Caused by: java.lang.IllegalArgumentException: Failed to instantiate class hudson.plugins.performance.PerformanceReportParser from {"glob":"result.xml","kind":"hudson.plugins.performance.JMeterParser$DescriptorImpl"} at org.kohsuke.stapler.RequestImpl$TypePair.convertJSON(RequestImpl.java:602) at org.kohsuke.stapler.RequestImpl$TypePair.convertJSON(RequestImpl.java:638) at org.kohsuke.stapler.RequestImpl.bindJSON(RequestImpl.java:404) at org.kohsuke.stapler.RequestImpl.instantiate(RequestImpl.java:697) ... 87 more Caused by: org.kohsuke.stapler.NoStaplerConstructorException: There's no @DataBoundConstructor on any constructor of class hudson.plugins.performance.PerformanceReportParser 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) ... 90 more
@kefirkin
Yes, 1.611 was also affected. Please update to a newer version. Afaik the earliest version that contains the fix is 1.612
https://github.com/jenkinsci/jenkins/commit/1f41bec8ef656da014b7145fdff82563c030ca29
Integrated in jenkins_main_trunk #4292
[FIXED JENKINS-28110] Always generate stapler-class, even when generating kind. (Revision 2e51740fbeef363a888446846b497550d4d2981b)
JENKINS-28110 Reproduced problem in test. (Revision 11d46ad639943feb9f17da5d4d1529cdfbd87495)
Result = UNSTABLE
jesse glick : 2e51740fbeef363a888446846b497550d4d2981b
Files :
- core/src/main/resources/lib/form/class-entry.jelly
jesse glick : 11d46ad639943feb9f17da5d4d1529cdfbd87495
Files :
- test/src/test/resources/hudson/model/DescriptorTest/B2/config.jelly
- test/src/test/resources/hudson/model/DescriptorTest/D1/config.jelly
- test/src/test/java/hudson/model/DescriptorTest.java
- test/src/test/resources/hudson/model/DescriptorTest/D3/config.jelly
- test/src/test/resources/hudson/model/DescriptorTest/B1/config.jelly
- test/src/test/resources/hudson/model/DescriptorTest/D2/config.jelly
Code changed in jenkins
{stapler-class: D3, kind: d3a}User: Jesse Glick
Path:
test/src/test/java/hudson/model/DescriptorTest.java
test/src/test/resources/hudson/model/DescriptorTest/B1/config.jelly
test/src/test/resources/hudson/model/DescriptorTest/B2/config.jelly
test/src/test/resources/hudson/model/DescriptorTest/D1/config.jelly
test/src/test/resources/hudson/model/DescriptorTest/D2/config.jelly
test/src/test/resources/hudson/model/DescriptorTest/D3/config.jelly
http://jenkins-ci.org/commit/jenkins/11d46ad639943feb9f17da5d4d1529cdfbd87495
Log:
JENKINS-28110Reproduced problem in test.Starting in 4f24a02 (1.587-SNAPSHOT, before #1443 or stapler #39), nestedDescribableOverridingId passes.
nestedDescribableSharingClass fails given
.
(Stapler has no way of interpreting kind since it knows nothing of Descriptor, only implementation class names.)
In master (3080573), both fail in the way reported (only kind is passed in).
After adding stapler-class back, nestedDescribableOverridingId passes again.
(cherry picked from commit 1f41bec8ef656da014b7145fdff82563c030ca29)