jenkinsci/build-monitor-plugin

java.lang.ClassCastException: org.jenkinsci.plugins.workflow.job.WorkflowRun cannot be cast to hudson.model.AbstractBuild

mbasunov opened this issue · 3 comments

Hello,
we're constantly getting
java.lang.ClassCastException: org.jenkinsci.plugins.workflow.job.WorkflowRun cannot be cast to hudson.model.AbstractBuild
on one of our Build Monitor views while other works properly.

Jenkins ver. 2.138.2
Build Monitor 1.12+build.201809061734
Pipeline 2.5

We're mitigated the error by disabling option "Display committers" at the moment.

Thanks.

Java stack trace

ERROR dispatch failed
Also:   java.lang.ClassCastException: org.jenkinsci.plugins.workflow.job.WorkflowRun cannot be cast to hudson.model.AbstractBuild
		at com.smartcodeltd.jenkinsci.plugins.buildmonitor.culprits.BuildCulpritsAbstractBuild.getCommittersForRun(BuildCulpritsAbstractBuild.java:36)
		at com.smartcodeltd.jenkinsci.plugins.buildmonitor.culprits.BuildCulpritsRetriever.getCommitters(BuildCulpritsRetriever.java:40)
		at com.smartcodeltd.jenkinsci.plugins.buildmonitor.culprits.BuildCulpritsRetriever.getCommitters(BuildCulpritsRetriever.java:47)
		at com.smartcodeltd.jenkinsci.plugins.buildmonitor.viewmodel.BuildView.committers(BuildView.java:142)
		at com.smartcodeltd.jenkinsci.plugins.buildmonitor.viewmodel.features.headline.HeadlineOfFixed.committersOf(HeadlineOfFixed.java:55)
		at com.smartcodeltd.jenkinsci.plugins.buildmonitor.viewmodel.features.headline.HeadlineOfFixed.textFor(HeadlineOfFixed.java:40)
		at com.smartcodeltd.jenkinsci.plugins.buildmonitor.viewmodel.features.headline.HeadlineOfFixed.asJson(HeadlineOfFixed.java:32)
		at com.smartcodeltd.jenkinsci.plugins.buildmonitor.viewmodel.features.headline.HeadlineOfFixed.asJson(HeadlineOfFixed.java:15)
		at com.smartcodeltd.jenkinsci.plugins.buildmonitor.viewmodel.features.HasHeadline.asJson(HasHeadline.java:34)
		at com.smartcodeltd.jenkinsci.plugins.buildmonitor.viewmodel.features.HasHeadline.asJson(HasHeadline.java:16)
		at com.smartcodeltd.jenkinsci.plugins.buildmonitor.viewmodel.JobViewSerialiser.serialize(JobViewSerialiser.java:25)
		at com.smartcodeltd.jenkinsci.plugins.buildmonitor.viewmodel.JobViewSerialiser.serialize(JobViewSerialiser.java:13)
		at org.codehaus.jackson.map.ser.std.StdContainerSerializers$IndexedListSerializer.serializeContents(StdContainerSerializers.java:122)
	Caused: org.codehaus.jackson.map.JsonMappingException: org.jenkinsci.plugins.workflow.job.WorkflowRun cannot be cast to hudson.model.AbstractBuild (through reference chain: com.smartcodeltd.jenkinsci.plugins.buildmonitor.api.Success["data"]->java.util.ArrayList[0])
		at org.codehaus.jackson.map.JsonMappingException.wrapWithPath(JsonMappingException.java:218)
		at org.codehaus.jackson.map.JsonMappingException.wrapWithPath(JsonMappingException.java:197)
		at org.codehaus.jackson.map.ser.std.SerializerBase.wrapAndThrow(SerializerBase.java:166)
		at org.codehaus.jackson.map.ser.std.StdContainerSerializers$IndexedListSerializer.serializeContents(StdContainerSerializers.java:127)
		at org.codehaus.jackson.map.ser.std.StdContainerSerializers$IndexedListSerializer.serializeContents(StdContainerSerializers.java:71)
		at org.codehaus.jackson.map.ser.std.AsArraySerializerBase.serialize(AsArraySerializerBase.java:86)
		at org.codehaus.jackson.map.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:446)
		at org.codehaus.jackson.map.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:150)
		at org.codehaus.jackson.map.ser.BeanSerializer.serialize(BeanSerializer.java:112)
		at org.codehaus.jackson.map.ser.StdSerializerProvider._serializeValue(StdSerializerProvider.java:610)
		at org.codehaus.jackson.map.ser.StdSerializerProvider.serializeValue(StdSerializerProvider.java:256)
		at org.codehaus.jackson.map.ObjectMapper._configAndWriteValue(ObjectMapper.java:2575)
		at org.codehaus.jackson.map.ObjectMapper.writeValueAsString(ObjectMapper.java:2097)
		at com.smartcodeltd.jenkinsci.plugins.buildmonitor.api.Respond.withSuccess(Respond.java:15)
		at com.smartcodeltd.jenkinsci.plugins.buildmonitor.BuildMonitorView.fetchJobViews(BuildMonitorView.java:142)
		at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)
		at org.kohsuke.stapler.Function$MethodFunction.invoke(Function.java:343)
		at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:184)
		at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:117)
		at org.kohsuke.stapler.MetaClass$JavaScriptProxyMethodDispatcher.doDispatch(MetaClass.java:473)
		at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)
		at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:734)
		at org.kohsuke.stapler.Stapler.invoke(Stapler.java:864)
		at org.kohsuke.stapler.MetaClass$10.dispatch(MetaClass.java:374)
		at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:734)
		at org.kohsuke.stapler.Stapler.invoke(Stapler.java:864)
		at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:801)
		at org.kohsuke.stapler.Stapler.invoke(Stapler.java:864)
		at org.kohsuke.stapler.Stapler.invoke(Stapler.java:668)
		at org.kohsuke.stapler.Stapler.service(Stapler.java:199)
		at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
		at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:865)
		at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1655)
		at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:154)
		at com.smartcodeltd.jenkinsci.plugin.assetbundler.filters.LessCSS.doFilter(LessCSS.java:47)
		at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151)
		at com.marvelution.jenkins.plugins.jira.filter.StreamsServletFilter.doFilter(StreamsServletFilter.java:86)
		at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151)
		at com.marvelution.jenkins.plugins.jira.filter.ApplinksServletFilter.doFilter(ApplinksServletFilter.java:85)
		at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151)
		at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:157)
		at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
		at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:99)
		at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
		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:90)
		at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:171)
		at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
		at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:49)
		at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
		at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:82)
		at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
		at org.kohsuke.stapler.DiagnosticThreadNameFilter.doFilter(DiagnosticThreadNameFilter.java:30)
		at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
		at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533)
		at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
		at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:524)
		at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
		at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)
		at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
		at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
		at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1317)
		at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
		at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
		at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
		at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
		at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1219)
		at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
		at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
		at org.eclipse.jetty.server.Server.handle(Server.java:531)
		at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:352)
	Caused: java.lang.IllegalStateException: Error already set
		at org.eclipse.jetty.server.HttpChannelState.onError(HttpChannelState.java:755)
		at org.eclipse.jetty.server.HttpChannel.handleException(HttpChannel.java:578)
		at org.eclipse.jetty.server.HttpChannelOverHttp.handleException(HttpChannelOverHttp.java:489)
		at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:514)
java.lang.IllegalStateException: WRITER
	at org.eclipse.jetty.server.Response.getOutputStream(Response.java:917)
	at javax.servlet.ServletResponseWrapper.getOutputStream(ServletResponseWrapper.java:142)
	at org.kohsuke.stapler.compression.CompressionServletResponse.activate(CompressionServletResponse.java:61)
	at org.kohsuke.stapler.compression.CompressionFilter.activate(CompressionFilter.java:108)
	at org.kohsuke.stapler.ResponseImpl.getCompressedOutputStream(ResponseImpl.java:302)
	at org.kohsuke.stapler.jelly.DefaultScriptInvoker.createOutputStream(DefaultScriptInvoker.java:88)
	at org.kohsuke.stapler.jelly.DefaultScriptInvoker.createXMLOutput(DefaultScriptInvoker.java:68)
	at org.kohsuke.stapler.jelly.DefaultScriptInvoker.invokeScript(DefaultScriptInvoker.java:51)
	at org.kohsuke.stapler.jelly.JellyFacet$1.dispatch(JellyFacet.java:102)
	at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:734)
	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:864)
	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:668)
	at hudson.init.impl.InstallUncaughtExceptionHandler.lambda$init$0(InstallUncaughtExceptionHandler.java:36)
	at org.kohsuke.stapler.compression.CompressionFilter.reportException(CompressionFilter.java:77)
	at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:52)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
	at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:82)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
	at org.kohsuke.stapler.DiagnosticThreadNameFilter.doFilter(DiagnosticThreadNameFilter.java:30)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:524)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)
	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1317)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1219)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
	at org.eclipse.jetty.server.Server.handle(Server.java:531)
	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:352)
	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260)
	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:281)
	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:102)
	at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126)
	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:762)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:680)
	at java.lang.Thread.run(Thread.java:748)```

</p>
</details>

Upgrade from 1.12+build.201805070054 to 1.12+build.201809061734 got our build monitors that use "Display committers" broken also.
Jenkins version: 2.147.1

TobiX commented

This is probably the same as #393

We are having the same problem but the classcastexception is slightly different:

Caught unhandled exception with ID f545cec7-858a-48c7-aef4-91282373d7f3
java.lang.ClassCastException: com.tikal.jenkins.plugins.multijob.MultiJobBuild cannot be cast to org.jenkinsci.plugins.workflow.job.WorkflowRun
at com.smartcodeltd.jenkinsci.plugins.buildmonitor.culprits.BuildCulpritsWorkflowRun.getCommittersForRun(BuildCulpritsWorkflowRun.java:46)

Disabling the "Display committers" at the moment