-
Bug
-
Resolution: Fixed
-
Major
-
None
-
Powered by SuggestiMate
We need to have a display during the Sonar analysis which is a Post Build Action. Apparently the plugin shuts down the display already after the normal build part. So, the display is not available anymore during the Sonar Build.
[JENKINS-15972] No display available in post build actions
Code changed in jenkins
User: Zoran Regvart
Path:
src/main/java/org/jenkinsci/plugins/xvfb/XvfbBuildWrapper.java
src/main/java/org/jenkinsci/plugins/xvfb/XvfbEnvironment.java
src/main/resources/org/jenkinsci/plugins/xvfb/XvfbBuildWrapper/config.jelly
src/main/resources/org/jenkinsci/plugins/xvfb/XvfbBuildWrapper/help-shutdownWithBuild.html
http://jenkins-ci.org/commit/xvfb-plugin/2029cb27527a4534e55e9256e1bc45f4c58afff5
Log:
JENKINS-15972 No display available in post build actions
In version 1.0.7 there is a new option to keep the Xvfb running for post build actions as well.
Saving an existing job with Xvfb enabled leads to this exception:
Status Code: 500
Exception: java.lang.IllegalArgumentException: Failed to instantiate class org.jenkinsci.plugins.xvfb.XvfbBuildWrapper from
{"additionalOptions":"","debug":false,"displayName":"","displayNameOffset":"","installationName":"Xvfb","screen":"","shutdownWithBuild":false,"timeout":""}Stacktrace:
javax.servlet.ServletException: java.lang.IllegalArgumentException: Failed to instantiate class org.jenkinsci.plugins.xvfb.XvfbBuildWrapper from
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:616)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:659)
at org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.java:241)
at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:574)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:659)
at org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.java:241)
at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:574)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:659)
at org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.java:241)
at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:574)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:659)
at org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.java:241)
at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:574)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:659)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:488)
at org.kohsuke.stapler.Stapler.service(Stapler.java:162)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:95)
at hudson.plugins.greenballs.GreenBallFilter.doFilter(GreenBallFilter.java:58)
at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:98)
at hudson.plugins.audit_trail.AuditTrailFilter.doFilter(AuditTrailFilter.java:66)
at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:98)
at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:87)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:47)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
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 org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:166)
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 org.acegisecurity.ui.basicauth.BasicProcessingFilter.doFilter(BasicProcessingFilter.java:173)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at jenkins.security.ApiTokenFilter.doFilter(ApiTokenFilter.java:63)
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:66)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:76)
at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:164)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:50)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:81)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:470)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:589)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:291)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:409)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
Caused by: java.lang.IllegalArgumentException: Failed to instantiate class org.jenkinsci.plugins.xvfb.XvfbBuildWrapper from
at org.kohsuke.stapler.RequestImpl$TypePair.convertJSON(RequestImpl.java:633)
at org.kohsuke.stapler.RequestImpl.bindJSON(RequestImpl.java:377)
at org.kohsuke.stapler.RequestImpl.bindJSON(RequestImpl.java:373)
at org.jenkinsci.plugins.xvfb.XvfbBuildWrapper$XvfbBuildWrapperDescriptor.newInstance(XvfbBuildWrapper.java:101)
at org.jenkinsci.plugins.xvfb.XvfbBuildWrapper$XvfbBuildWrapperDescriptor.newInstance(XvfbBuildWrapper.java:58)
at hudson.util.DescribableList.rebuild(DescribableList.java:173)
at hudson.maven.MavenModuleSet.submit(MavenModuleSet.java:1058)
at hudson.model.Job.doConfigSubmit(Job.java:991)
at hudson.model.AbstractProject.doConfigSubmit(AbstractProject.java:699)
at sun.reflect.GeneratedMethodAccessor1386.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:288)
at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:151)
at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:90)
at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:111)
at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:574)
... 75 more
Caused by: java.lang.IllegalArgumentException: public org.jenkinsci.plugins.xvfb.XvfbBuildWrapper(java.lang.String,java.lang.Integer,java.lang.String,java.lang.Boolean,int,int,java.lang.String) has @DataBoundConstructor but it doesn't match with your .stapler file. Try clean rebuild
at org.kohsuke.stapler.RequestImpl.findConstructor(RequestImpl.java:451)
at org.kohsuke.stapler.RequestImpl.access$200(RequestImpl.java:76)
at org.kohsuke.stapler.RequestImpl$TypePair.convertJSON(RequestImpl.java:618)
... 92 more
Generated by Stapler at Wed Dec 12 08:00:20 CET 2012
You seem to be running with classes/.stapler file from version 1.0.6, with jelly templates (GUI) from 1.0.7. Please make sure that your jenkins installation does not contain multiple versions of the plugin in the $JENKINS_HOME/plugins directory.
I've downloaded from the jenkins plugin updates site (http://updates.jenkins-ci.org/download/plugins/xvfb/1.0.7/xvfb.hpi) and both the classes and the .stapler file seem to be in order, so what you're experiencing must be related with your jenkins setup.
Just talked to our sysadmin. He told me that he didn't restart Jenkins yet after the installation. That explains the behavior Sorry for the noise and thanks for the quick fix.
Hi thanks for reporting this. Xvfb plugin is a build wrapper and as such, AFAIK, cannot be called after post build actions, but rather with the build's job start and end. I'll try and see if there is a way to be called when the whole of the job is done - including the post build actions, until then I would advise you to create a freestyle build that includes calling Sonar as one of the job steps not as a post build action.