History | Log In     View a printable version of the current page.  
Issue Details (XML | Word | Printable)

Key: QB-2697
Type: Bug Bug
Status: Resolved Resolved
Resolution: Fixed
Priority: Minor Minor
Assignee: Unassigned
Reporter: Andrew Beck
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
QuickBuild

Displaying a Clover report for an incomplete clover.xml file generates a GUI error

Created: 15/Apr/16 03:51 PM   Updated: 21/Apr/16 09:26 AM
Component/s: None
Affects Version/s: 6.1.10
Fix Version/s: 6.1.13

Original Estimate: Unknown Remaining Estimate: Unknown Time Spent: Unknown
Environment:
Operating System Linux 3.2.0-4-amd64, amd64
OS User Name quickbuild
JVM Java HotSpot(TM) 64-Bit Server VM 1.8.0_45, Oracle Corporation
QuickBuild Version 6.1.0 - Wed Dec 23 02:42:32 UTC 2015
Total Memory 20.00 GB
Used Memory 9.39 GB
Configurations 29698

...
com.pmease.quickbuild.plugin.report.clover;6.1.0


 Description  « Hide
Using the Publish Cover Report to publish a clover.xml file generated by PHPUnit 4.8.3

generates no errors in log:-


14:10:19,107 INFO - Checking step execute condition...
14:10:19,138 INFO - Step execute condition satisfied, executing...
14:10:19,191 INFO - Executing pre-execute action...
14:10:19,191 INFO - Running step...
14:10:19,193 INFO - Start generating report 'packages'.
14:10:19,488 INFO - Finished generating report 'packages' successfully.
14:10:19,488 INFO - Start generating report 'files'.
14:10:19,827 INFO - Finished generating report 'files' successfully.
14:10:19,827 INFO - Start generating report 'classes'.
14:10:19,948 INFO - Finished generating report 'classes' successfully.
14:10:20,307 INFO - Initialize overview data ...
14:10:20,439 INFO - Executing post-execute action...

But when displaying the Cover report (e.g. https://quickbuild/build/123456/clover_report) it generates an error page, details below:-

There is a problem

Failed to evaluate below expression in configuration 'Skype/3POB/Stratus/Snapshots/skype.product.catalog.ui (commerce_stratus_catalog-ui)':
groovy:methods/classes

or

Error Detail
Message: Failed to evaluate below expression in configuration 'xxxxxxx':
groovy:methods/classes

Root cause:

java.lang.ArithmeticException: Division by zero
at java.math.BigDecimal.divide(BigDecimal.java:1742)
at org.codehaus.groovy.runtime.typehandling.BigDecimalMath.divideImpl(BigDecimalMath.java:66)
at org.codehaus.groovy.runtime.typehandling.IntegerMath.divideImpl(IntegerMath.java:46)
at org.codehaus.groovy.runtime.dgmimpl.NumberNumberDiv$NumberNumber.invoke(NumberNumberDiv.java:320)
at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:53)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)
at script14607281450021850142409.run(script14607281450021850142409.groovy:1)
at com.skype.quickbuild.plugin.scripting.ScriptingPlugin$3.evaluate(ScriptingPlugin.java:258)
at com.pmease.quickbuild.DefaultScriptEngine.evaluate(DefaultScriptEngine.java:314)
at com.pmease.quickbuild.DefaultScriptEngine.evaluateGroovy(DefaultScriptEngine.java:292)
at com.pmease.quickbuild.plugin.report.engine.ReportHelper.evaluate(ReportHelper.java:115)
at com.pmease.quickbuild.plugin.report.engine.renderer.item.RendererItem.getValue(RendererItem.java:72)
at com.pmease.quickbuild.plugin.report.engine.renderer.item.RendererItem.getText(RendererItem.java:77)
at com.pmease.quickbuild.plugin.report.engine.renderer.item.TextItem.getText(TextItem.java:46)
at com.pmease.quickbuild.plugin.report.engine.renderer.item.TextItemPanel.onInitialize(TextItemPanel.java:31)
at org.apache.wicket.Component.fireInitialize(Component.java:924)
at org.apache.wicket.MarkupContainer.internalInitialize(MarkupContainer.java:1002)
at org.apache.wicket.MarkupContainer.addedComponent(MarkupContainer.java:979)
at org.apache.wicket.MarkupContainer.add(MarkupContainer.java:165)
at com.pmease.quickbuild.plugin.report.engine.renderer.item.CompositeItemPanel$1.populateItem(CompositeItemPanel.java:36)
at org.apache.wicket.markup.html.list.ListView.onPopulate(ListView.java:524)
at org.apache.wicket.markup.repeater.AbstractRepeater.onBeforeRender(AbstractRepeater.java:119)
at org.apache.wicket.Component.internalBeforeRender(Component.java:986)
at org.apache.wicket.Component.beforeRender(Component.java:1022)
at org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1785)
at org.apache.wicket.Component.onBeforeRender(Component.java:3798)
at org.apache.wicket.Component.internalBeforeRender(Component.java:986)
at org.apache.wicket.Component.beforeRender(Component.java:1022)
at org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1785)
at org.apache.wicket.Component.onBeforeRender(Component.java:3798)
at org.apache.wicket.Component.internalBeforeRender(Component.java:986)
at org.apache.wicket.Component.beforeRender(Component.java:1022)
at org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1785)
at org.apache.wicket.Component.onBeforeRender(Component.java:3798)
at org.apache.wicket.markup.repeater.AbstractRepeater.onBeforeRender(AbstractRepeater.java:139)
at org.apache.wicket.Component.internalBeforeRender(Component.java:986)
at org.apache.wicket.Component.beforeRender(Component.java:1022)
at org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1785)
at org.apache.wicket.Component.onBeforeRender(Component.java:3798)
at org.apache.wicket.Component.internalBeforeRender(Component.java:986)
at org.apache.wicket.Component.beforeRender(Component.java:1022)
at org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1785)
at org.apache.wicket.Component.onBeforeRender(Component.java:3798)
at org.apache.wicket.Component.internalBeforeRender(Component.java:986)
at org.apache.wicket.Component.beforeRender(Component.java:1022)
at org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1785)
at org.apache.wicket.Component.onBeforeRender(Component.java:3798)
at org.apache.wicket.Component.internalBeforeRender(Component.java:986)
at org.apache.wicket.Component.beforeRender(Component.java:1022)
at org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1785)
at org.apache.wicket.Component.onBeforeRender(Component.java:3798)
at org.apache.wicket.markup.repeater.AbstractRepeater.onBeforeRender(AbstractRepeater.java:139)
at org.apache.wicket.Component.internalBeforeRender(Component.java:986)
at org.apache.wicket.Component.beforeRender(Component.java:1022)
at org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1785)
at org.apache.wicket.Component.onBeforeRender(Component.java:3798)
at org.apache.wicket.Component.internalBeforeRender(Component.java:986)
at org.apache.wicket.Component.beforeRender(Component.java:1022)
at org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1785)
at org.apache.wicket.Component.onBeforeRender(Component.java:3798)
at org.apache.wicket.Component.internalBeforeRender(Component.java:986)
at org.apache.wicket.Component.beforeRender(Component.java:1022)
at org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1785)
at org.apache.wicket.Component.onBeforeRender(Component.java:3798)
at org.apache.wicket.Component.internalBeforeRender(Component.java:986)
at org.apache.wicket.Component.beforeRender(Component.java:1022)
at org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1785)
at org.apache.wicket.Component.onBeforeRender(Component.java:3798)
at org.apache.wicket.Component.internalBeforeRender(Component.java:986)
at org.apache.wicket.Component.beforeRender(Component.java:1022)
at org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1785)
at org.apache.wicket.Component.onBeforeRender(Component.java:3798)
at org.apache.wicket.Component.internalBeforeRender(Component.java:986)
at org.apache.wicket.Component.beforeRender(Component.java:1022)
at org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1785)
at org.apache.wicket.Component.onBeforeRender(Component.java:3798)
at org.apache.wicket.Component.internalBeforeRender(Component.java:986)
at org.apache.wicket.Component.beforeRender(Component.java:1022)
at org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1785)
at org.apache.wicket.Component.onBeforeRender(Component.java:3798)
at org.apache.wicket.Page.onBeforeRender(Page.java:823)
at com.pmease.quickbuild.web.page.BasePage.onBeforeRender(BasePage.java:346)
at org.apache.wicket.Component.internalBeforeRender(Component.java:986)
at org.apache.wicket.Component.beforeRender(Component.java:1022)
at org.apache.wicket.Component.internalPrepareForRender(Component.java:2191)
at org.apache.wicket.Page.internalPrepareForRender(Page.java:280)
at org.apache.wicket.Component.render(Component.java:2280)
at org.apache.wicket.Page.renderPage(Page.java:1035)
at org.apache.wicket.request.handler.render.WebPageRenderer.renderPage(WebPageRenderer.java:105)
at org.apache.wicket.request.handler.render.WebPageRenderer.respond(WebPageRenderer.java:182)
at org.apache.wicket.request.handler.RenderPageRequestHandler.respond(RenderPageRequestHandler.java:147)
at org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:719)
at org.apache.wicket.request.RequestHandlerStack.execute(RequestHandlerStack.java:63)
at org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:210)
at org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:253)
at org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:162)
at org.apache.wicket.protocol.http.WicketServlet.doGet(WicketServlet.java:137)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:734)
at com.pmease.quickbuild.web.MainServlet.service(MainServlet.java:133)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
at org.eclipse.equinox.http.helper.FilterServletAdaptor$FilterChainImpl.doFilter(FilterServletAdaptor.java:56)
at org.eclipse.jetty.servlets.UserAgentFilter.doFilter(UserAgentFilter.java:82)
at org.eclipse.jetty.servlets.GzipFilter.doFilter(GzipFilter.java:243)
at org.eclipse.equinox.http.helper.FilterServletAdaptor.service(FilterServletAdaptor.java:37)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:669)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1336)
at com.pmease.quickbuild.Quickbuild$DisableTraceFilter.doFilter(Quickbuild.java:1060)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1307)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:453)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:229)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1072)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:382)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1006)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:154)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
at org.eclipse.jetty.server.Server.handle(Server.java:365)
at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:485)
at org.eclipse.jetty.server.BlockingHttpConnection.handleRequest(BlockingHttpConnection.java:53)
at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:926)
at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:988)
at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:635)
at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)
at org.eclipse.jetty.server.BlockingHttpConnection.handle(BlockingHttpConnection.java:72)
at org.eclipse.jetty.server.bio.SocketConnector$ConnectorEndPoint.run(SocketConnector.java:264)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
at java.lang.Thread.run(Thread.java:745)


Complete stack:

com.pmease.quickbuild.QuickbuildException: Failed to evaluate below expression in configuration 'Skype/3POB/Stratus/Snapshots/skype.product.catalog.ui (commerce_stratus_catalog-ui)':
groovy:methods/classes
at com.pmease.quickbuild.util.ExceptionUtils.wrapException(ExceptionUtils.java:89)
at com.pmease.quickbuild.DefaultScriptEngine.evaluate(DefaultScriptEngine.java:321)
at com.pmease.quickbuild.DefaultScriptEngine.evaluateGroovy(DefaultScriptEngine.java:292)
at com.pmease.quickbuild.plugin.report.engine.ReportHelper.evaluate(ReportHelper.java:115)
at com.pmease.quickbuild.plugin.report.engine.renderer.item.RendererItem.getValue(RendererItem.java:72)
at com.pmease.quickbuild.plugin.report.engine.renderer.item.RendererItem.getText(RendererItem.java:77)
at com.pmease.quickbuild.plugin.report.engine.renderer.item.TextItem.getText(TextItem.java:46)
at com.pmease.quickbuild.plugin.report.engine.renderer.item.TextItemPanel.onInitialize(TextItemPanel.java:31)
at org.apache.wicket.Component.fireInitialize(Component.java:924)
at org.apache.wicket.MarkupContainer.internalInitialize(MarkupContainer.java:1002)
at org.apache.wicket.MarkupContainer.addedComponent(MarkupContainer.java:979)
at org.apache.wicket.MarkupContainer.add(MarkupContainer.java:165)
at com.pmease.quickbuild.plugin.report.engine.renderer.item.CompositeItemPanel$1.populateItem(CompositeItemPanel.java:36)
at org.apache.wicket.markup.html.list.ListView.onPopulate(ListView.java:524)
at org.apache.wicket.markup.repeater.AbstractRepeater.onBeforeRender(AbstractRepeater.java:119)
at org.apache.wicket.Component.internalBeforeRender(Component.java:986)
at org.apache.wicket.Component.beforeRender(Component.java:1022)
at org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1785)
at org.apache.wicket.Component.onBeforeRender(Component.java:3798)
at org.apache.wicket.Component.internalBeforeRender(Component.java:986)
at org.apache.wicket.Component.beforeRender(Component.java:1022)
at org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1785)
at org.apache.wicket.Component.onBeforeRender(Component.java:3798)
at org.apache.wicket.Component.internalBeforeRender(Component.java:986)
at org.apache.wicket.Component.beforeRender(Component.java:1022)
at org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1785)
at org.apache.wicket.Component.onBeforeRender(Component.java:3798)
at org.apache.wicket.markup.repeater.AbstractRepeater.onBeforeRender(AbstractRepeater.java:139)
at org.apache.wicket.Component.internalBeforeRender(Component.java:986)
at org.apache.wicket.Component.beforeRender(Component.java:1022)
at org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1785)
at org.apache.wicket.Component.onBeforeRender(Component.java:3798)
at org.apache.wicket.Component.internalBeforeRender(Component.java:986)
at org.apache.wicket.Component.beforeRender(Component.java:1022)
at org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1785)
at org.apache.wicket.Component.onBeforeRender(Component.java:3798)
at org.apache.wicket.Component.internalBeforeRender(Component.java:986)
at org.apache.wicket.Component.beforeRender(Component.java:1022)
at org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1785)
at org.apache.wicket.Component.onBeforeRender(Component.java:3798)
at org.apache.wicket.Component.internalBeforeRender(Component.java:986)
at org.apache.wicket.Component.beforeRender(Component.java:1022)
at org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1785)
at org.apache.wicket.Component.onBeforeRender(Component.java:3798)
at org.apache.wicket.markup.repeater.AbstractRepeater.onBeforeRender(AbstractRepeater.java:139)
at org.apache.wicket.Component.internalBeforeRender(Component.java:986)
at org.apache.wicket.Component.beforeRender(Component.java:1022)
at org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1785)
at org.apache.wicket.Component.onBeforeRender(Component.java:3798)
at org.apache.wicket.Component.internalBeforeRender(Component.java:986)
at org.apache.wicket.Component.beforeRender(Component.java:1022)
at org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1785)
at org.apache.wicket.Component.onBeforeRender(Component.java:3798)
at org.apache.wicket.Component.internalBeforeRender(Component.java:986)
at org.apache.wicket.Component.beforeRender(Component.java:1022)
at org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1785)
at org.apache.wicket.Component.onBeforeRender(Component.java:3798)
at org.apache.wicket.Component.internalBeforeRender(Component.java:986)
at org.apache.wicket.Component.beforeRender(Component.java:1022)
at org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1785)
at org.apache.wicket.Component.onBeforeRender(Component.java:3798)
at org.apache.wicket.Component.internalBeforeRender(Component.java:986)
at org.apache.wicket.Component.beforeRender(Component.java:1022)
at org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1785)
at org.apache.wicket.Component.onBeforeRender(Component.java:3798)
at org.apache.wicket.Component.internalBeforeRender(Component.java:986)
at org.apache.wicket.Component.beforeRender(Component.java:1022)
at org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1785)
at org.apache.wicket.Component.onBeforeRender(Component.java:3798)
at org.apache.wicket.Component.internalBeforeRender(Component.java:986)
at org.apache.wicket.Component.beforeRender(Component.java:1022)
at org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1785)
at org.apache.wicket.Component.onBeforeRender(Component.java:3798)
at org.apache.wicket.Page.onBeforeRender(Page.java:823)
at com.pmease.quickbuild.web.page.BasePage.onBeforeRender(BasePage.java:346)
at org.apache.wicket.Component.internalBeforeRender(Component.java:986)
at org.apache.wicket.Component.beforeRender(Component.java:1022)
at org.apache.wicket.Component.internalPrepareForRender(Component.java:2191)
at org.apache.wicket.Page.internalPrepareForRender(Page.java:280)
at org.apache.wicket.Component.render(Component.java:2280)
at org.apache.wicket.Page.renderPage(Page.java:1035)
at org.apache.wicket.request.handler.render.WebPageRenderer.renderPage(WebPageRenderer.java:105)
at org.apache.wicket.request.handler.render.WebPageRenderer.respond(WebPageRenderer.java:182)
at org.apache.wicket.request.handler.RenderPageRequestHandler.respond(RenderPageRequestHandler.java:147)
at org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:719)
at org.apache.wicket.request.RequestHandlerStack.execute(RequestHandlerStack.java:63)
at org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:210)
at org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:253)
at org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:162)


I think this is because the clover.xml does not match the clover schema
It contains the element
<metrics methods="5" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="42" coveredstatements="0" elements="47" coveredelements="0"/>

Where the schema says
   <xs:attribute name="complexity" use="required" type="xs:integer"/>
and
<xs:attribute name="statements" use="required" type="xs:integer"/>

So the report is trying to divide ""/""

But Quickbuild should really fail on publishing a clover.xml that does not match the schema instead of generating and error when trying to view the report
Or be more flexible on missing elements

 All   Comments   Work Log   Change History      Sort Order:
There are no comments yet on this issue.