jenkinsci / pipeline-graph-view-plugin

https://plugins.jenkins.io/pipeline-graph-view/
Other
109 stars 56 forks source link

Support parameterized builds in rebuild button #491

Closed mtughan closed 2 months ago

mtughan commented 2 months ago

Allow parameterized builds to be started in the rebuild button by redirecting the user to the build with parameters page so they can start a new build.

Fixes #330.

Testing done

Submitter checklist

basil commented 2 months ago

Breaks PCT:

https://ci.jenkins.io/job/Tools/job/bom/job/PR-3521/1/testReport/junit/io.jenkins.plugins.pipelinegraphview/PipelineGraphViewRebuildTest/pct_pipeline_graph_view_plugin_weekly___rebuildButtonStartsNewBuild/

https://ci.jenkins.io/job/Tools/job/bom/job/PR-3521/1/testReport/junit/io.jenkins.plugins.pipelinegraphview/PipelineGraphViewRebuildTest/pct_pipeline_graph_view_plugin_weekly___rebuildButtonRedirectsForParameterizedJob/

timja commented 2 months ago

Builds have been garbage collected, do you have a GitHub checks reference which might have the output?

basil commented 2 months ago

https://github.com/jenkinsci/bom/pull/3524/checks?check_run_id=29632074541

timja commented 2 months ago

pct-pipeline-graph-view-plugin-weekly / rebuildButtonRedirectsForParameterizedJob – io.jenkins.plugins.pipelinegraphview.PipelineGraphViewRebuildTest

Error
invalid property id (http://localhost:40689/jenkins/plugin/pipeline-graph-view/js/build.js#13)
Stacktrace
======= EXCEPTION START ========
Exception class=[org.htmlunit.corejs.javascript.EvaluatorException]
org.htmlunit.ScriptException: invalid property id (http://localhost:40689/jenkins/plugin/pipeline-graph-view/js/build.js#13)
    at org.htmlunit.javascript.JavaScriptEngine$HtmlUnitContextAction.run(JavaScriptEngine.java:959)
    at org.htmlunit.corejs.javascript.Context.call(Context.java:585)
    at org.htmlunit.corejs.javascript.ContextFactory.call(ContextFactory.java:481)
    at org.htmlunit.javascript.HtmlUnitContextFactory.callSecured(HtmlUnitContextFactory.java:314)
    at org.htmlunit.javascript.JavaScriptEngine.compile(JavaScriptEngine.java:731)
    at org.htmlunit.javascript.JavaScriptEngine.compile(JavaScriptEngine.java:109)
    at org.htmlunit.html.HtmlPage.loadJavaScriptFromUrl(HtmlPage.java:1124)
    at org.htmlunit.html.HtmlPage.loadExternalJavaScriptFile(HtmlPage.java:1015)
    at org.htmlunit.html.ScriptElementSupport.executeScriptIfNeeded(ScriptElementSupport.java:187)
    at org.htmlunit.html.ScriptElementSupport$1.execute(ScriptElementSupport.java:111)
    at org.htmlunit.html.ScriptElementSupport.onAllChildrenAddedToPage(ScriptElementSupport.java:134)
    at org.htmlunit.html.HtmlScript.onAllChildrenAddedToPage(HtmlScript.java:192)
    at org.htmlunit.html.parser.neko.HtmlUnitNekoDOMBuilder.endElement(HtmlUnitNekoDOMBuilder.java:508)
    at org.htmlunit.cyberneko.xerces.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:291)
    at org.htmlunit.html.parser.neko.HtmlUnitNekoDOMBuilder.endElement(HtmlUnitNekoDOMBuilder.java:454)
    at org.htmlunit.cyberneko.HTMLTagBalancer.callEndElement(HTMLTagBalancer.java:1220)
    at org.htmlunit.cyberneko.HTMLTagBalancer.endElement(HTMLTagBalancer.java:1164)
    at org.htmlunit.cyberneko.filters.DefaultFilter.endElement(DefaultFilter.java:168)
    at org.htmlunit.cyberneko.filters.NamespaceBinder.endElement(NamespaceBinder.java:266)
    at org.htmlunit.cyberneko.HTMLScanner$ContentScanner.scanEndElement(HTMLScanner.java:3208)
    at org.htmlunit.cyberneko.HTMLScanner$ContentScanner.scan(HTMLScanner.java:2098)
    at org.htmlunit.cyberneko.HTMLScanner.scanDocument(HTMLScanner.java:909)
    at org.htmlunit.cyberneko.HTMLConfiguration.parse(HTMLConfiguration.java:336)
    at org.htmlunit.cyberneko.HTMLConfiguration.parse(HTMLConfiguration.java:294)
    at org.htmlunit.cyberneko.xerces.parsers.AbstractXMLDocumentParser.parse(AbstractXMLDocumentParser.java:80)
    at org.htmlunit.html.parser.neko.HtmlUnitNekoDOMBuilder.parse(HtmlUnitNekoDOMBuilder.java:752)
    at org.htmlunit.html.parser.neko.HtmlUnitNekoHtmlParser.parse(HtmlUnitNekoHtmlParser.java:202)
    at org.htmlunit.DefaultPageCreator.createHtmlPage(DefaultPageCreator.java:307)
    at org.htmlunit.DefaultPageCreator.createPage(DefaultPageCreator.java:226)
    at org.jvnet.hudson.test.HudsonPageCreator.createPage(HudsonPageCreator.java:53)
    at org.htmlunit.WebClient.loadWebResponseInto(WebClient.java:651)
    at org.htmlunit.WebClient.loadWebResponseInto(WebClient.java:545)
    at org.htmlunit.WebClient.getPage(WebClient.java:463)
    at org.htmlunit.WebClient.getPage(WebClient.java:370)
    at org.htmlunit.WebClient.getPage(WebClient.java:508)
    at org.htmlunit.WebClient.getPage(WebClient.java:490)
    at org.jvnet.hudson.test.JenkinsRule$WebClient.goTo(JenkinsRule.java:2970)
    at org.jvnet.hudson.test.JenkinsRule$WebClient.goTo(JenkinsRule.java:2950)
    at org.jvnet.hudson.test.JenkinsRule$WebClient.getPage(JenkinsRule.java:2897)
    at io.jenkins.plugins.pipelinegraphview.PipelineGraphViewRebuildTest.rebuildButtonRedirectsForParameterizedJob(PipelineGraphViewRebuildTest.java:42)
    at java.base/java.lang.reflect.Method.invoke(Method.java:580)
    at org.jvnet.hudson.test.JenkinsRule$1.evaluate(JenkinsRule.java:706)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
    at java.base/java.lang.Thread.run(Thread.java:1583)
Caused by: org.htmlunit.corejs.javascript.EvaluatorException: invalid property id (http://localhost:40689/jenkins/plugin/pipeline-graph-view/js/build.js#13)
    at org.htmlunit.javascript.HtmlUnitContextFactory$HtmlUnitErrorReporter.error(HtmlUnitContextFactory.java:398)
    at org.htmlunit.corejs.javascript.Parser.addError(Parser.java:257)
    at org.htmlunit.corejs.javascript.Parser.reportError(Parser.java:336)
    at org.htmlunit.corejs.javascript.Parser.reportError(Parser.java:327)
    at org.htmlunit.corejs.javascript.Parser.reportError(Parser.java:320)
    at org.htmlunit.corejs.javascript.Parser.objectLiteral(Parser.java:3553)
    at org.htmlunit.corejs.javascript.Parser.primaryExpr(Parser.java:3136)
    at org.htmlunit.corejs.javascript.Parser.memberExpr(Parser.java:2758)
    at org.htmlunit.corejs.javascript.Parser.unaryExpr(Parser.java:2661)
    at org.htmlunit.corejs.javascript.Parser.expExpr(Parser.java:2581)
    at org.htmlunit.corejs.javascript.Parser.mulExpr(Parser.java:2564)
    at org.htmlunit.corejs.javascript.Parser.addExpr(Parser.java:2550)
    at org.htmlunit.corejs.javascript.Parser.shiftExpr(Parser.java:2533)
    at org.htmlunit.corejs.javascript.Parser.relExpr(Parser.java:2511)
    at org.htmlunit.corejs.javascript.Parser.eqExpr(Parser.java:2487)
    at org.htmlunit.corejs.javascript.Parser.bitAndExpr(Parser.java:2478)
    at org.htmlunit.corejs.javascript.Parser.bitXorExpr(Parser.java:2469)
    at org.htmlunit.corejs.javascript.Parser.bitOrExpr(Parser.java:2460)
    at org.htmlunit.corejs.javascript.Parser.andExpr(Parser.java:2451)
    at org.htmlunit.corejs.javascript.Parser.orExpr(Parser.java:2442)
    at org.htmlunit.corejs.javascript.Parser.condExpr(Parser.java:2409)
    at org.htmlunit.corejs.javascript.Parser.assignExpr(Parser.java:2367)
    at org.htmlunit.corejs.javascript.Parser.plainProperty(Parser.java:3698)
    at org.htmlunit.corejs.javascript.Parser.objectLiteral(Parser.java:3595)
    at org.htmlunit.corejs.javascript.Parser.primaryExpr(Parser.java:3136)
    at org.htmlunit.corejs.javascript.Parser.memberExpr(Parser.java:2758)
    at org.htmlunit.corejs.javascript.Parser.unaryExpr(Parser.java:2661)
    at org.htmlunit.corejs.javascript.Parser.expExpr(Parser.java:2581)
    at org.htmlunit.corejs.javascript.Parser.mulExpr(Parser.java:2564)
    at org.htmlunit.corejs.javascript.Parser.addExpr(Parser.java:2550)
    at org.htmlunit.corejs.javascript.Parser.shiftExpr(Parser.java:2533)
    at org.htmlunit.corejs.javascript.Parser.relExpr(Parser.java:2511)
    at org.htmlunit.corejs.javascript.Parser.eqExpr(Parser.java:2487)
    at org.htmlunit.corejs.javascript.Parser.bitAndExpr(Parser.java:2478)
    at org.htmlunit.corejs.javascript.Parser.bitXorExpr(Parser.java:2469)
    at org.htmlunit.corejs.javascript.Parser.bitOrExpr(Parser.java:2460)
    at org.htmlunit.corejs.javascript.Parser.andExpr(Parser.java:2451)
    at org.htmlunit.corejs.javascript.Parser.orExpr(Parser.java:2442)
    at org.htmlunit.corejs.javascript.Parser.condExpr(Parser.java:2409)
    at org.htmlunit.corejs.javascript.Parser.assignExpr(Parser.java:2367)
    at org.htmlunit.corejs.javascript.Parser.argumentList(Parser.java:2729)
    at org.htmlunit.corejs.javascript.Parser.memberExprTail(Parser.java:2873)
    at org.htmlunit.corejs.javascript.Parser.memberExpr(Parser.java:2793)
    at org.htmlunit.corejs.javascript.Parser.unaryExpr(Parser.java:2661)
    at org.htmlunit.corejs.javascript.Parser.expExpr(Parser.java:2581)
    at org.htmlunit.corejs.javascript.Parser.mulExpr(Parser.java:2564)
    at org.htmlunit.corejs.javascript.Parser.addExpr(Parser.java:2550)
    at org.htmlunit.corejs.javascript.Parser.shiftExpr(Parser.java:2533)
    at org.htmlunit.corejs.javascript.Parser.relExpr(Parser.java:2511)
    at org.htmlunit.corejs.javascript.Parser.eqExpr(Parser.java:2487)
    at org.htmlunit.corejs.javascript.Parser.bitAndExpr(Parser.java:2478)
    at org.htmlunit.corejs.javascript.Parser.bitXorExpr(Parser.java:2469)
    at org.htmlunit.corejs.javascript.Parser.bitOrExpr(Parser.java:2460)
    at org.htmlunit.corejs.javascript.Parser.andExpr(Parser.java:2451)
    at org.htmlunit.corejs.javascript.Parser.orExpr(Parser.java:2442)
    at org.htmlunit.corejs.javascript.Parser.condExpr(Parser.java:2409)
    at org.htmlunit.corejs.javascript.Parser.assignExpr(Parser.java:2367)
    at org.htmlunit.corejs.javascript.Parser.expr(Parser.java:2346)
    at org.htmlunit.corejs.javascript.Parser.nameOrLabel(Parser.java:2104)
    at org.htmlunit.corejs.javascript.Parser.statementHelper(Parser.java:1283)
    at org.htmlunit.corejs.javascript.Parser.statement(Parser.java:1137)
    at org.htmlunit.corejs.javascript.Parser.statements(Parser.java:1096)
    at org.htmlunit.corejs.javascript.Parser.block(Parser.java:2036)
    at org.htmlunit.corejs.javascript.Parser.statementHelper(Parser.java:1261)
    at org.htmlunit.corejs.javascript.Parser.statement(Parser.java:1137)
    at org.htmlunit.corejs.javascript.Parser.ifStatement(Parser.java:1344)
    at org.htmlunit.corejs.javascript.Parser.statementHelper(Parser.java:1191)
    at org.htmlunit.corejs.javascript.Parser.statement(Parser.java:1137)
    at org.htmlunit.corejs.javascript.Parser.parseFunctionBody(Parser.java:735)
    at org.htmlunit.corejs.javascript.Parser.arrowFunction(Parser.java:1026)
    at org.htmlunit.corejs.javascript.Parser.assignExpr(Parser.java:2403)
    at org.htmlunit.corejs.javascript.Parser.argumentList(Parser.java:2729)
    at org.htmlunit.corejs.javascript.Parser.memberExprTail(Parser.java:2873)
    at org.htmlunit.corejs.javascript.Parser.memberExpr(Parser.java:2793)
    at org.htmlunit.corejs.javascript.Parser.unaryExpr(Parser.java:2661)
    at org.htmlunit.corejs.javascript.Parser.expExpr(Parser.java:2581)
    at org.htmlunit.corejs.javascript.Parser.mulExpr(Parser.java:2564)
    at org.htmlunit.corejs.javascript.Parser.addExpr(Parser.java:2550)
    at org.htmlunit.corejs.javascript.Parser.shiftExpr(Parser.java:2533)
    at org.htmlunit.corejs.javascript.Parser.relExpr(Parser.java:2511)
    at org.htmlunit.corejs.javascript.Parser.eqExpr(Parser.java:2487)
    at org.htmlunit.corejs.javascript.Parser.bitAndExpr(Parser.java:2478)
    at org.htmlunit.corejs.javascript.Parser.bitXorExpr(Parser.java:2469)
    at org.htmlunit.corejs.javascript.Parser.bitOrExpr(Parser.java:2460)
    at org.htmlunit.corejs.javascript.Parser.andExpr(Parser.java:2451)
    at org.htmlunit.corejs.javascript.Parser.orExpr(Parser.java:2442)
    at org.htmlunit.corejs.javascript.Parser.condExpr(Parser.java:2409)
    at org.htmlunit.corejs.javascript.Parser.assignExpr(Parser.java:2367)
    at org.htmlunit.corejs.javascript.Parser.expr(Parser.java:2346)
    at org.htmlunit.corejs.javascript.Parser.nameOrLabel(Parser.java:2104)
    at org.htmlunit.corejs.javascript.Parser.statementHelper(Parser.java:1283)
    at org.htmlunit.corejs.javascript.Parser.statement(Parser.java:1137)
    at org.htmlunit.corejs.javascript.Parser.statements(Parser.java:1096)
    at org.htmlunit.corejs.javascript.Parser.block(Parser.java:2036)
    at org.htmlunit.corejs.javascript.Parser.statementHelper(Parser.java:1261)
    at org.htmlunit.corejs.javascript.Parser.statement(Parser.java:1137)
    at org.htmlunit.corejs.javascript.Parser.getNextStatementAfterInlineComments(Parser.java:1501)
    at org.htmlunit.corejs.javascript.Parser.ifStatement(Parser.java:1336)
    at org.htmlunit.corejs.javascript.Parser.statementHelper(Parser.java:1191)
    at org.htmlunit.corejs.javascript.Parser.statement(Parser.java:1137)
    at org.htmlunit.corejs.javascript.Parser.parse(Parser.java:631)
    at org.htmlunit.corejs.javascript.Parser.parse(Parser.java:561)
    at org.htmlunit.corejs.javascript.Context.parse(Context.java:2547)
    at org.htmlunit.corejs.javascript.Context.compileImpl(Context.java:2478)
    at org.htmlunit.corejs.javascript.Context.compileString(Context.java:1441)
    at org.htmlunit.javascript.HtmlUnitContextFactory$TimeoutContext.compileString(HtmlUnitContextFactory.java:192)
    at org.htmlunit.corejs.javascript.Context.compileString(Context.java:1429)
    at org.htmlunit.javascript.JavaScriptEngine$1.doRun(JavaScriptEngine.java:722)
    at org.htmlunit.javascript.JavaScriptEngine$HtmlUnitContextAction.run(JavaScriptEngine.java:942)
    ... 43 more
Enclosed exception: 
org.htmlunit.corejs.javascript.EvaluatorException: invalid property id (http://localhost:40689/jenkins/plugin/pipeline-graph-view/js/build.js#13)
    at org.htmlunit.javascript.HtmlUnitContextFactory$HtmlUnitErrorReporter.error(HtmlUnitContextFactory.java:398)
    at org.htmlunit.corejs.javascript.Parser.addError(Parser.java:257)
    at org.htmlunit.corejs.javascript.Parser.reportError(Parser.java:336)
    at org.htmlunit.corejs.javascript.Parser.reportError(Parser.java:327)
    at org.htmlunit.corejs.javascript.Parser.reportError(Parser.java:320)
    at org.htmlunit.corejs.javascript.Parser.objectLiteral(Parser.java:3553)
    at org.htmlunit.corejs.javascript.Parser.primaryExpr(Parser.java:3136)
    at org.htmlunit.corejs.javascript.Parser.memberExpr(Parser.java:2758)
    at org.htmlunit.corejs.javascript.Parser.unaryExpr(Parser.java:2661)
    at org.htmlunit.corejs.javascript.Parser.expExpr(Parser.java:2581)
    at org.htmlunit.corejs.javascript.Parser.mulExpr(Parser.java:2564)
    at org.htmlunit.corejs.javascript.Parser.addExpr(Parser.java:2550)
    at org.htmlunit.corejs.javascript.Parser.shiftExpr(Parser.java:2533)
    at org.htmlunit.corejs.javascript.Parser.relExpr(Parser.java:2511)
    at org.htmlunit.corejs.javascript.Parser.eqExpr(Parser.java:2487)
    at org.htmlunit.corejs.javascript.Parser.bitAndExpr(Parser.java:2478)
    at org.htmlunit.corejs.javascript.Parser.bitXorExpr(Parser.java:2469)
    at org.htmlunit.corejs.javascript.Parser.bitOrExpr(Parser.java:2460)
    at org.htmlunit.corejs.javascript.Parser.andExpr(Parser.java:2451)
    at org.htmlunit.corejs.javascript.Parser.orExpr(Parser.java:2442)
    at org.htmlunit.corejs.javascript.Parser.condExpr(Parser.java:2409)
    at org.htmlunit.corejs.javascript.Parser.assignExpr(Parser.java:2367)
    at org.htmlunit.corejs.javascript.Parser.plainProperty(Parser.java:3698)
    at org.htmlunit.corejs.javascript.Parser.objectLiteral(Parser.java:3595)
    at org.htmlunit.corejs.javascript.Parser.primaryExpr(Parser.java:3136)
    at org.htmlunit.corejs.javascript.Parser.memberExpr(Parser.java:2758)
    at org.htmlunit.corejs.javascript.Parser.unaryExpr(Parser.java:2661)
    at org.htmlunit.corejs.javascript.Parser.expExpr(Parser.java:2581)
    at org.htmlunit.corejs.javascript.Parser.mulExpr(Parser.java:2564)
    at org.htmlunit.corejs.javascript.Parser.addExpr(Parser.java:2550)
    at org.htmlunit.corejs.javascript.Parser.shiftExpr(Parser.java:2533)
    at org.htmlunit.corejs.javascript.Parser.relExpr(Parser.java:2511)
    at org.htmlunit.corejs.javascript.Parser.eqExpr(Parser.java:2487)
    at org.htmlunit.corejs.javascript.Parser.bitAndExpr(Parser.java:2478)
    at org.htmlunit.corejs.javascript.Parser.bitXorExpr(Parser.java:2469)
    at org.htmlunit.corejs.javascript.Parser.bitOrExpr(Parser.java:2460)
    at org.htmlunit.corejs.javascript.Parser.andExpr(Parser.java:2451)
    at org.htmlunit.corejs.javascript.Parser.orExpr(Parser.java:2442)
    at org.htmlunit.corejs.javascript.Parser.condExpr(Parser.java:2409)
    at org.htmlunit.corejs.javascript.Parser.assignExpr(Parser.java:2367)
    at org.htmlunit.corejs.javascript.Parser.argumentList(Parser.java:2729)
    at org.htmlunit.corejs.javascript.Parser.memberExprTail(Parser.java:2873)
    at org.htmlunit.corejs.javascript.Parser.memberExpr(Parser.java:2793)
    at org.htmlunit.corejs.javascript.Parser.unaryExpr(Parser.java:2661)
    at org.htmlunit.corejs.javascript.Parser.expExpr(Parser.java:2581)
    at org.htmlunit.corejs.javascript.Parser.mulExpr(Parser.java:2564)
    at org.htmlunit.corejs.javascript.Parser.addExpr(Parser.java:2550)
    at org.htmlunit.corejs.javascript.Parser.shiftExpr(Parser.java:2533)
    at org.htmlunit.corejs.javascript.Parser.relExpr(Parser.java:2511)
    at org.htmlunit.corejs.javascript.Parser.eqExpr(Parser.java:2487)
    at org.htmlunit.corejs.javascript.Parser.bitAndExpr(Parser.java:2478)
    at org.htmlunit.corejs.javascript.Parser.bitXorExpr(Parser.java:2469)
    at org.htmlunit.corejs.javascript.Parser.bitOrExpr(Parser.java:2460)
    at org.htmlunit.corejs.javascript.Parser.andExpr(Parser.java:2451)
    at org.htmlunit.corejs.javascript.Parser.orExpr(Parser.java:2442)
    at org.htmlunit.corejs.javascript.Parser.condExpr(Parser.java:2409)
    at org.htmlunit.corejs.javascript.Parser.assignExpr(Parser.java:2367)
    at org.htmlunit.corejs.javascript.Parser.expr(Parser.java:2346)
    at org.htmlunit.corejs.javascript.Parser.nameOrLabel(Parser.java:2104)
    at org.htmlunit.corejs.javascript.Parser.statementHelper(Parser.java:1283)
    at org.htmlunit.corejs.javascript.Parser.statement(Parser.java:1137)
    at org.htmlunit.corejs.javascript.Parser.statements(Parser.java:1096)
    at org.htmlunit.corejs.javascript.Parser.block(Parser.java:2036)
    at org.htmlunit.corejs.javascript.Parser.statementHelper(Parser.java:1261)
    at org.htmlunit.corejs.javascript.Parser.statement(Parser.java:1137)
    at org.htmlunit.corejs.javascript.Parser.ifStatement(Parser.java:1344)
    at org.htmlunit.corejs.javascript.Parser.statementHelper(Parser.java:1191)
    at org.htmlunit.corejs.javascript.Parser.statement(Parser.java:1137)
    at org.htmlunit.corejs.javascript.Parser.parseFunctionBody(Parser.java:735)
    at org.htmlunit.corejs.javascript.Parser.arrowFunction(Parser.java:1026)
    at org.htmlunit.corejs.javascript.Parser.assignExpr(Parser.java:2403)
    at org.htmlunit.corejs.javascript.Parser.argumentList(Parser.java:2729)
    at org.htmlunit.corejs.javascript.Parser.memberExprTail(Parser.java:2873)
    at org.htmlunit.corejs.javascript.Parser.memberExpr(Parser.java:2793)
    at org.htmlunit.corejs.javascript.Parser.unaryExpr(Parser.java:2661)
    at org.htmlunit.corejs.javascript.Parser.expExpr(Parser.java:2581)
    at org.htmlunit.corejs.javascript.Parser.mulExpr(Parser.java:2564)
    at org.htmlunit.corejs.javascript.Parser.addExpr(Parser.java:2550)
    at org.htmlunit.corejs.javascript.Parser.shiftExpr(Parser.java:2533)
    at org.htmlunit.corejs.javascript.Parser.relExpr(Parser.java:2511)
    at org.htmlunit.corejs.javascript.Parser.eqExpr(Parser.java:2487)
    at org.htmlunit.corejs.javascript.Parser.bitAndExpr(Parser.java:2478)
    at org.htmlunit.corejs.javascript.Parser.bitXorExpr(Parser.java:2469)
    at org.htmlunit.corejs.javascript.Parser.bitOrExpr(Parser.java:2460)
    at org.htmlunit.corejs.javascript.Parser.andExpr(Parser.java:2451)
    at org.htmlunit.corejs.javascript.Parser.orExpr(Parser.java:2442)
    at org.htmlunit.corejs.javascript.Parser.condExpr(Parser.java:2409)
    at org.htmlunit.corejs.javascript.Parser.assignExpr(Parser.java:2367)
    at org.htmlunit.corejs.javascript.Parser.expr(Parser.java:2346)
    at org.htmlunit.corejs.javascript.Parser.nameOrLabel(Parser.java:2104)
    at org.htmlunit.corejs.javascript.Parser.statementHelper(Parser.java:1283)
    at org.htmlunit.corejs.javascript.Parser.statement(Parser.java:1137)
    at org.htmlunit.corejs.javascript.Parser.statements(Parser.java:1096)
    at org.htmlunit.corejs.javascript.Parser.block(Parser.java:2036)
    at org.htmlunit.corejs.javascript.Parser.statementHelper(Parser.java:1261)
    at org.htmlunit.corejs.javascript.Parser.statement(Parser.java:1137)
    at org.htmlunit.corejs.javascript.Parser.getNextStatementAfterInlineComments(Parser.java:1501)
    at org.htmlunit.corejs.javascript.Parser.ifStatement(Parser.java:1336)
    at org.htmlunit.corejs.javascript.Parser.statementHelper(Parser.java:1191)
    at org.htmlunit.corejs.javascript.Parser.statement(Parser.java:1137)
    at org.htmlunit.corejs.javascript.Parser.parse(Parser.java:631)
    at org.htmlunit.corejs.javascript.Parser.parse(Parser.java:561)
    at org.htmlunit.corejs.javascript.Context.parse(Context.java:2547)
    at org.htmlunit.corejs.javascript.Context.compileImpl(Context.java:2478)
    at org.htmlunit.corejs.javascript.Context.compileString(Context.java:1441)
    at org.htmlunit.javascript.HtmlUnitContextFactory$TimeoutContext.compileString(HtmlUnitContextFactory.java:192)
    at org.htmlunit.corejs.javascript.Context.compileString(Context.java:1429)
    at org.htmlunit.javascript.JavaScriptEngine$1.doRun(JavaScriptEngine.java:722)
    at org.htmlunit.javascript.JavaScriptEngine$HtmlUnitContextAction.run(JavaScriptEngine.java:942)
    at org.htmlunit.corejs.javascript.Context.call(Context.java:585)
    at org.htmlunit.corejs.javascript.ContextFactory.call(ContextFactory.java:481)
    at org.htmlunit.javascript.HtmlUnitContextFactory.callSecured(HtmlUnitContextFactory.java:314)
    at org.htmlunit.javascript.JavaScriptEngine.compile(JavaScriptEngine.java:731)
    at org.htmlunit.javascript.JavaScriptEngine.compile(JavaScriptEngine.java:109)
    at org.htmlunit.html.HtmlPage.loadJavaScriptFromUrl(HtmlPage.java:1124)
    at org.htmlunit.html.HtmlPage.loadExternalJavaScriptFile(HtmlPage.java:1015)
    at org.htmlunit.html.ScriptElementSupport.executeScriptIfNeeded(ScriptElementSupport.java:187)
    at org.htmlunit.html.ScriptElementSupport$1.execute(ScriptElementSupport.java:111)
    at org.htmlunit.html.ScriptElementSupport.onAllChildrenAddedToPage(ScriptElementSupport.java:134)
    at org.htmlunit.html.HtmlScript.onAllChildrenAddedToPage(HtmlScript.java:192)
    at org.htmlunit.html.parser.neko.HtmlUnitNekoDOMBuilder.endElement(HtmlUnitNekoDOMBuilder.java:508)
    at org.htmlunit.cyberneko.xerces.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:291)
    at org.htmlunit.html.parser.neko.HtmlUnitNekoDOMBuilder.endElement(HtmlUnitNekoDOMBuilder.java:454)
    at org.htmlunit.cyberneko.HTMLTagBalancer.callEndElement(HTMLTagBalancer.java:1220)
    at org.htmlunit.cyberneko.HTMLTagBalancer.endElement(HTMLTagBalancer.java:1164)
    at org.htmlunit.cyberneko.filters.DefaultFilter.endElement(DefaultFilter.java:168)
    at org.htmlunit.cyberneko.filters.NamespaceBinder.endElement(NamespaceBinder.java:266)
    at org.htmlunit.cyberneko.HTMLScanner$ContentScanner.scanEndElement(HTMLScanner.java:3208)
    at org.htmlunit.cyberneko.HTMLScanner$ContentScanner.scan(HTMLScanner.java:2098)
    at org.htmlunit.cyberneko.HTMLScanner.scanDocument(HTMLScanner.java:909)
    at org.htmlunit.cyberneko.HTMLConfiguration.parse(HTMLConfiguration.java:336)
    at org.htmlunit.cyberneko.HTMLConfiguration.parse(HTMLConfiguration.java:294)
    at org.htmlunit.cyberneko.xerces.parsers.AbstractXMLDocumentParser.parse(AbstractXMLDocumentParser.java:80)
    at org.htmlunit.html.parser.neko.HtmlUnitNekoDOMBuilder.parse(HtmlUnitNekoDOMBuilder.java:752)
    at org.htmlunit.html.parser.neko.HtmlUnitNekoHtmlParser.parse(HtmlUnitNekoHtmlParser.java:202)
    at org.htmlunit.DefaultPageCreator.createHtmlPage(DefaultPageCreator.java:307)
    at org.htmlunit.DefaultPageCreator.createPage(DefaultPageCreator.java:226)
    at org.jvnet.hudson.test.HudsonPageCreator.createPage(HudsonPageCreator.java:53)
    at org.htmlunit.WebClient.loadWebResponseInto(WebClient.java:651)
    at org.htmlunit.WebClient.loadWebResponseInto(WebClient.java:545)
    at org.htmlunit.WebClient.getPage(WebClient.java:463)
    at org.htmlunit.WebClient.getPage(WebClient.java:370)
    at org.htmlunit.WebClient.getPage(WebClient.java:508)
    at org.htmlunit.WebClient.getPage(WebClient.java:490)
    at org.jvnet.hudson.test.JenkinsRule$WebClient.goTo(JenkinsRule.java:2970)
    at org.jvnet.hudson.test.JenkinsRule$WebClient.goTo(JenkinsRule.java:2950)
    at org.jvnet.hudson.test.JenkinsRule$WebClient.getPage(JenkinsRule.java:2897)
    at io.jenkins.plugins.pipelinegraphview.PipelineGraphViewRebuildTest.rebuildButtonRedirectsForParameterizedJob(PipelineGraphViewRebuildTest.java:42)
    at java.base/java.lang.reflect.Method.invoke(Method.java:580)
    at org.jvnet.hudson.test.JenkinsRule$1.evaluate(JenkinsRule.java:706)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
    at java.base/java.lang.Thread.run(Thread.java:1583)
== CALLING JAVASCRIPT ==
const rebuildButton = document.getElementById('pgv-rebuild');
if (rebuildButton) {
  rebuildButton.addEventListener('click', event => {
    event.preventDefault();
    const buildUrl = `${rebuildButton.dataset.buildPath}?delay=0sec`
    if (rebuildButton.dataset.parameterized === 'true') {
      window.location.href = buildUrl
    } else {
      fetch(buildUrl, {
        method: 'post',
        headers: {
          [document.head.dataset.crumbHeader]: document.head.dataset.crumbValue
        }
      })
        .then(res => {
          if (!res.ok) {
            console.error('Build failed', res);
          } else {
            window.hoverNotification(rebuildButton.dataset.successMessage, rebuildButton);
          }
        })
    }
  })
}
======= EXCEPTION END ========
Standard Output
=== Starting rebuildButtonRedirectsForParameterizedJob(io.jenkins.plugins.pipelinegraphview.PipelineGraphViewRebuildTest)
Standard Error
0.011 [id=90]   INFO    o.jvnet.hudson.test.JenkinsRule#createWebServer: Running on http://localhost:40689/jenkins/
   0.176 [id=103]   INFO    jenkins.InitReactorRunner$1#onAttained: Started initialization
   0.177 [id=103]   INFO    jenkins.InitReactorRunner$1#onAttained: Listed all plugins
   0.181 [id=102]   INFO    j.b.api.BouncyCastlePlugin#start: /home/jenkins/agent/workspace/Tools_bom_PR-3524/target/pct-work/pipeline-graph-view-plugin/target/tmp/j h17019247692587547620/plugins/bouncycastle-api/WEB-INF/optional-lib not found; for non RealJenkinsRule this is fine and can be ignored.
   0.330 [id=103]   INFO    jenkins.InitReactorRunner$1#onAttained: Prepared all plugins
   0.332 [id=109]   INFO    jenkins.InitReactorRunner$1#onAttained: Started all plugins
   0.332 [id=109]   INFO    jenkins.InitReactorRunner$1#onAttained: Augmented all extensions
   2.168 [id=105]   INFO    jenkins.InitReactorRunner$1#onAttained: System config loaded
   2.169 [id=109]   INFO    jenkins.InitReactorRunner$1#onAttained: System config adapted
   2.170 [id=106]   INFO    jenkins.InitReactorRunner$1#onAttained: Loaded all jobs
   2.171 [id=103]   INFO    jenkins.InitReactorRunner$1#onAttained: Configuration for all jobs updated
   2.194 [id=107]   INFO    jenkins.InitReactorRunner$1#onAttained: Completed initialization
   4.397 [id=92]    WARNING h.ExpressionFactory2$JexlExpression#evaluate: Caught exception evaluating: it.runDetailsCard.title in /jenkins/job/echo_parameterized/1/pipeline-graph/. Reason: java.lang.reflect.InvocationTargetException
java.lang.NullPointerException: Cannot invoke "hudson.model.CauseAction.getCauses()" because "causeAction" is null
    at io.jenkins.plugins.pipelinegraphview.cards.items.UpstreamCauseRunDetailsItem.get(UpstreamCauseRunDetailsItem.java:16)
    at io.jenkins.plugins.pipelinegraphview.PipelineGraphViewAction.getRunDetailsCard(PipelineGraphViewAction.java:40)
    at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
Caused: java.lang.reflect.InvocationTargetException
    at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:115)
    at java.base/java.lang.reflect.Method.invoke(Method.java:580)
    at org.apache.commons.jexl.util.PropertyExecutor.execute(PropertyExecutor.java:125)
    at org.apache.commons.jexl.util.introspection.UberspectImpl$VelGetterImpl.invoke(UberspectImpl.java:314)
    at org.apache.commons.jexl.parser.ASTArrayAccess.evaluateExpr(ASTArrayAccess.java:185)
    at org.apache.commons.jexl.parser.ASTIdentifier.execute(ASTIdentifier.java:75)
    at org.apache.commons.jexl.parser.ASTReference.execute(ASTReference.java:83)
    at org.apache.commons.jexl.parser.ASTReference.value(ASTReference.java:57)
    at org.apache.commons.jexl.parser.ASTReferenceExpression.value(ASTReferenceExpression.java:51)
    at org.apache.commons.jexl.ExpressionImpl.evaluate(ExpressionImpl.java:80)
    at hudson.ExpressionFactory2$JexlExpression.evaluate(ExpressionFactory2.java:76)
    at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:57)
    at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
    at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:102)
    at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
    at org.kohsuke.stapler.jelly.CallTagLibScript$1.run(CallTagLibScript.java:100)
    at org.apache.commons.jelly.tags.define.InvokeBodyTag.doTag(InvokeBodyTag.java:91)
    at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:271)
    at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
    at org.apache.commons.jelly.tags.core.CoreTagLibrary$1.run(CoreTagLibrary.java:98)
    at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
    at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
    at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:121)
    at org.kohsuke.stapler.jelly.CallTagLibScript$1.run(CallTagLibScript.java:100)
    at org.apache.commons.jelly.tags.define.InvokeBodyTag.doTag(InvokeBodyTag.java:91)
    at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:271)
    at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
    at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:102)
    at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
    at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:102)
    at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
    at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:102)
    at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
    at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:102)
    at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
    at org.kohsuke.stapler.jelly.CallTagLibScript$1.run(CallTagLibScript.java:100)
    at org.apache.commons.jelly.tags.define.InvokeBodyTag.doTag(InvokeBodyTag.java:91)
    at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:271)
    at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
    at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
    at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:121)
    at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
    at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
    at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:121)
    at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
    at org.kohsuke.stapler.jelly.JellyViewScript.run(JellyViewScript.java:98)
    at org.kohsuke.stapler.jelly.DefaultScriptInvoker.invokeScript(DefaultScriptInvoker.java:65)
    at org.kohsuke.stapler.jelly.DefaultScriptInvoker.invokeScript(DefaultScriptInvoker.java:53)
    at org.kohsuke.stapler.jelly.ScriptInvoker.execute(ScriptInvoker.java:59)
    at org.kohsuke.stapler.jelly.ScriptInvoker.execute(ScriptInvoker.java:42)
    at org.kohsuke.stapler.Facet.handleIndexRequest(Facet.java:299)
    at org.kohsuke.stapler.jelly.JellyFacet.handleIndexRequest(JellyFacet.java:105)
    at org.kohsuke.stapler.IndexViewDispatcher.dispatch(IndexViewDispatcher.java:34)
    at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:800)
    at org.kohsuke.stapler.Stapler.invoke(Stapler.java:938)
    at org.kohsuke.stapler.MetaClass$9.dispatch(MetaClass.java:548)
    at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:800)
    at org.kohsuke.stapler.Stapler.invoke(Stapler.java:938)
    at org.kohsuke.stapler.MetaClass$9.dispatch(MetaClass.java:548)
    at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:800)
    at org.kohsuke.stapler.Stapler.invoke(Stapler.java:938)
    at org.kohsuke.stapler.MetaClass$4.doDispatch(MetaClass.java:327)
    at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:61)
    at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:800)
    at org.kohsuke.stapler.Stapler.invoke(Stapler.java:938)
    at org.kohsuke.stapler.Stapler.invoke(Stapler.java:721)
    at org.kohsuke.stapler.Stapler.service(Stapler.java:253)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:584)
    at org.eclipse.jetty.ee8.servlet.ServletHolder.handle(ServletHolder.java:640)
    at org.eclipse.jetty.ee8.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1374)
    at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:163)
    at jenkins.metrics.impl.MetricsFilter.doFilter(MetricsFilter.java:125)
    at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:160)
    at jenkins.util.HttpServletFilter$1.doFilter(HttpServletFilter.java:76)
    at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:160)
    at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:166)
    at org.eclipse.jetty.ee8.servlet.FilterHolder.doFilter(FilterHolder.java:171)
    at org.eclipse.jetty.ee8.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1348)
    at jenkins.ErrorAttributeFilter.doFilter(ErrorAttributeFilter.java:29)
    at org.eclipse.jetty.ee8.servlet.FilterHolder.doFilter(FilterHolder.java:171)
    at org.eclipse.jetty.ee8.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1348)
    at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:160)
    at org.eclipse.jetty.ee8.servlet.FilterHolder.doFilter(FilterHolder.java:171)
    at org.eclipse.jetty.ee8.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1348)
    at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:94)
    at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:111)
    at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:172)
    at org.eclipse.jetty.ee8.servlet.FilterHolder.doFilter(FilterHolder.java:171)
    at org.eclipse.jetty.ee8.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1348)
    at org.kohsuke.stapler.UncaughtExceptionFilter.doFilter(UncaughtExceptionFilter.java:27)
    at org.eclipse.jetty.ee8.servlet.FilterHolder.doFilter(FilterHolder.java:171)
    at org.eclipse.jetty.ee8.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1348)
    at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:86)
    at org.eclipse.jetty.ee8.servlet.FilterHolder.doFilter(FilterHolder.java:171)
    at org.eclipse.jetty.ee8.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1348)
    at org.kohsuke.stapler.DiagnosticThreadNameFilter.doFilter(DiagnosticThreadNameFilter.java:31)
    at org.eclipse.jetty.ee8.servlet.FilterHolder.doFilter(FilterHolder.java:171)
    at org.eclipse.jetty.ee8.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1348)
    at jenkins.security.SuspiciousRequestFilter.doFilter(SuspiciousRequestFilter.java:38)
    at org.eclipse.jetty.ee8.servlet.FilterHolder.doFilter(FilterHolder.java:171)
    at org.eclipse.jetty.ee8.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1348)
    at org.eclipse.jetty.ee8.servlet.ServletHandler.doHandle(ServletHandler.java:454)
    at org.eclipse.jetty.ee8.nested.ScopedHandler.handle(ScopedHandler.java:119)
    at org.eclipse.jetty.ee8.security.SecurityHandler.handle(SecurityHandler.java:478)
    at org.eclipse.jetty.ee8.nested.HandlerWrapper.handle(HandlerWrapper.java:108)
    at org.eclipse.jetty.ee8.nested.ScopedHandler.nextHandle(ScopedHandler.java:183)
    at org.eclipse.jetty.ee8.nested.SessionHandler.doHandle(SessionHandler.java:514)
    at org.eclipse.jetty.ee8.nested.ScopedHandler.nextHandle(ScopedHandler.java:181)
    at org.eclipse.jetty.ee8.nested.ContextHandler.doHandle(ContextHandler.java:878)
    at org.eclipse.jetty.ee8.nested.ScopedHandler.nextScope(ScopedHandler.java:152)
    at org.eclipse.jetty.ee8.servlet.ServletHandler.doScope(ServletHandler.java:423)
    at org.eclipse.jetty.ee8.nested.ScopedHandler.nextScope(ScopedHandler.java:150)
    at org.eclipse.jetty.ee8.nested.SessionHandler.doScope(SessionHandler.java:498)
    at org.eclipse.jetty.ee8.nested.ScopedHandler.nextScope(ScopedHandler.java:150)
    at org.eclipse.jetty.ee8.nested.ContextHandler.doScope(ContextHandler.java:823)
    at org.eclipse.jetty.ee8.nested.ScopedHandler.handle(ScopedHandler.java:117)
    at org.eclipse.jetty.ee8.nested.ContextHandler.handle(ContextHandler.java:1421)
    at org.eclipse.jetty.ee8.nested.HttpChannel$RequestDispatchable.dispatch(HttpChannel.java:1294)
    at org.eclipse.jetty.ee8.nested.HttpChannel.dispatch(HttpChannel.java:624)
    at org.eclipse.jetty.ee8.nested.HttpChannel.handle(HttpChannel.java:456)
    at org.eclipse.jetty.ee8.nested.ContextHandler$CoreContextHandler$CoreToNestedHandler.handle(ContextHandler.java:2350)
    at org.eclipse.jetty.server.handler.ContextHandler.handle(ContextHandler.java:858)
    at org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:597)
    at org.eclipse.jetty.server.Server.handle(Server.java:181)
    at org.eclipse.jetty.server.internal.HttpChannelState$HandlerInvoker.run(HttpChannelState.java:648)
    at org.eclipse.jetty.server.internal.HttpConnection.onFillable(HttpConnection.java:403)
    at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:322)
    at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:99)
    at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53)
    at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:478)
    at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:441)
    at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:293)
    at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.produce(AdaptiveExecutionStrategy.java:195)
    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:979)
    at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.doRunJob(QueuedThreadPool.java:1209)
    at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1164)
    at java.base/java.lang.Thread.run(Thread.java:1583)
   4.398 [id=92]    WARNING h.ExpressionFactory2$JexlExpression#evaluate: Caught exception evaluating: it.runDetailsCard.items in /jenkins/job/echo_parameterized/1/pipeline-graph/. Reason: java.lang.reflect.InvocationTargetException
java.lang.NullPointerException: Cannot invoke "hudson.model.CauseAction.getCauses()" because "causeAction" is null
    at io.jenkins.plugins.pipelinegraphview.cards.items.UpstreamCauseRunDetailsItem.get(UpstreamCauseRunDetailsItem.java:16)
    at io.jenkins.plugins.pipelinegraphview.PipelineGraphViewAction.getRunDetailsCard(PipelineGraphViewAction.java:40)
    at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
Caused: java.lang.reflect.InvocationTargetException
    at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:115)
    at java.base/java.lang.reflect.Method.invoke(Method.java:580)
    at org.apache.commons.jexl.util.PropertyExecutor.execute(PropertyExecutor.java:125)
    at org.apache.commons.jexl.util.introspection.UberspectImpl$VelGetterImpl.invoke(UberspectImpl.java:314)
    at org.apache.commons.jexl.parser.ASTArrayAccess.evaluateExpr(ASTArrayAccess.java:185)
    at org.apache.commons.jexl.parser.ASTIdentifier.execute(ASTIdentifier.java:75)
    at org.apache.commons.jexl.parser.ASTReference.execute(ASTReference.java:83)
    at org.apache.commons.jexl.parser.ASTReference.value(ASTReference.java:57)
    at org.apache.commons.jexl.parser.ASTReferenceExpression.value(ASTReferenceExpression.java:51)
    at org.apache.commons.jexl.ExpressionImpl.evaluate(ExpressionImpl.java:80)
    at hudson.ExpressionFactory2$JexlExpression.evaluate(ExpressionFactory2.java:76)
    at org.apache.commons.jelly.expression.ExpressionSupport.evaluateRecurse(ExpressionSupport.java:61)
    at org.apache.commons.jelly.expression.ExpressionSupport.evaluateAsIterator(ExpressionSupport.java:94)
    at org.apache.commons.jelly.tags.core.ForEachTag.doTag(ForEachTag.java:89)
    at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:271)
    at org.kohsuke.stapler.jelly.CallTagLibScript$1.run(CallTagLibScript.java:100)
    at org.apache.commons.jelly.tags.define.InvokeBodyTag.doTag(InvokeBodyTag.java:91)
    at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:271)
    at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
    at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:161)
    at org.apache.commons.jelly.tags.core.OtherwiseTag.doTag(OtherwiseTag.java:41)
    at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:271)
    at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
    at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:161)
    at org.apache.commons.jelly.tags.core.ChooseTag.doTag(ChooseTag.java:38)
    at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:271)
    at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:102)
    at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
    at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
    at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:121)
    at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
    at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:102)
    at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
    at org.kohsuke.stapler.jelly.CallTagLibScript$1.run(CallTagLibScript.java:100)
    at org.apache.commons.jelly.tags.define.InvokeBodyTag.doTag(InvokeBodyTag.java:91)
    at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:271)
    at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
    at org.apache.commons.jelly.tags.core.CoreTagLibrary$1.run(CoreTagLibrary.java:98)
    at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
    at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
    at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:121)
    at org.kohsuke.stapler.jelly.CallTagLibScript$1.run(CallTagLibScript.java:100)
    at org.apache.commons.jelly.tags.define.InvokeBodyTag.doTag(InvokeBodyTag.java:91)
    at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:271)
    at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
    at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:102)
    at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
    at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:102)
    at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
    at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:102)
    at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
    at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:102)
    at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
    at org.kohsuke.stapler.jelly.CallTagLibScript$1.run(CallTagLibScript.java:100)
    at org.apache.commons.jelly.tags.define.InvokeBodyTag.doTag(InvokeBodyTag.java:91)
    at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:271)
    at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
    at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
    at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:121)
    at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
    at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
    at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:121)
    at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
    at org.kohsuke.stapler.jelly.JellyViewScript.run(JellyViewScript.java:98)
    at org.kohsuke.stapler.jelly.DefaultScriptInvoker.invokeScript(DefaultScriptInvoker.java:65)
    at org.kohsuke.stapler.jelly.DefaultScriptInvoker.invokeScript(DefaultScriptInvoker.java:53)
    at org.kohsuke.stapler.jelly.ScriptInvoker.execute(ScriptInvoker.java:59)
    at org.kohsuke.stapler.jelly.ScriptInvoker.execute(ScriptInvoker.java:42)
    at org.kohsuke.stapler.Facet.handleIndexRequest(Facet.java:299)
    at org.kohsuke.stapler.jelly.JellyFacet.handleIndexRequest(JellyFacet.java:105)
    at org.kohsuke.stapler.IndexViewDispatcher.dispatch(IndexViewDispatcher.java:34)
    at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:800)
    at org.kohsuke.stapler.Stapler.invoke(Stapler.java:938)
    at org.kohsuke.stapler.MetaClass$9.dispatch(MetaClass.java:548)
    at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:800)
    at org.kohsuke.stapler.Stapler.invoke(Stapler.java:938)
    at org.kohsuke.stapler.MetaClass$9.dispatch(MetaClass.java:548)
    at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:800)
    at org.kohsuke.stapler.Stapler.invoke(Stapler.java:938)
    at org.kohsuke.stapler.MetaClass$4.doDispatch(MetaClass.java:327)
    at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:61)
    at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:800)
    at org.kohsuke.stapler.Stapler.invoke(Stapler.java:938)
    at org.kohsuke.stapler.Stapler.invoke(Stapler.java:721)
    at org.kohsuke.stapler.Stapler.service(Stapler.java:253)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:584)
    at org.eclipse.jetty.ee8.servlet.ServletHolder.handle(ServletHolder.java:640)
    at org.eclipse.jetty.ee8.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1374)
    at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:163)
    at jenkins.metrics.impl.MetricsFilter.doFilter(MetricsFilter.java:125)
    at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:160)
    at jenkins.util.HttpServletFilter$1.doFilter(HttpServletFilter.java:76)
    at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:160)
    at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:166)
    at org.eclipse.jetty.ee8.servlet.FilterHolder.doFilter(FilterHolder.java:171)
    at org.eclipse.jetty.ee8.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1348)
    at jenkins.ErrorAttributeFilter.doFilter(ErrorAttributeFilter.java:29)
    at org.eclipse.jetty.ee8.servlet.FilterHolder.doFilter(FilterHolder.java:171)
    at org.eclipse.jetty.ee8.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1348)
    at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:160)
    at org.eclipse.jetty.ee8.servlet.FilterHolder.doFilter(FilterHolder.java:171)
    at org.eclipse.jetty.ee8.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1348)
    at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:94)
    at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:111)
    at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:172)
    at org.eclipse.jetty.ee8.servlet.FilterHolder.doFilter(FilterHolder.java:171)
    at org.eclipse.jetty.ee8.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1348)
    at org.kohsuke.stapler.UncaughtExceptionFilter.doFilter(UncaughtExceptionFilter.java:27)
    at org.eclipse.jetty.ee8.servlet.FilterHolder.doFilter(FilterHolder.java:171)
    at org.eclipse.jetty.ee8.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1348)
    at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:86)
    at org.eclipse.jetty.ee8.servlet.FilterHolder.doFilter(FilterHolder.java:171)
    at org.eclipse.jetty.ee8.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1348)
    at org.kohsuke.stapler.DiagnosticThreadNameFilter.doFilter(DiagnosticThreadNameFilter.java:31)
    at org.eclipse.jetty.ee8.servlet.FilterHolder.doFilter(FilterHolder.java:171)
    at org.eclipse.jetty.ee8.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1348)
    at jenkins.security.SuspiciousRequestFilter.doFilter(SuspiciousRequestFilter.java:38)
    at org.eclipse.jetty.ee8.servlet.FilterHolder.doFilter(FilterHolder.java:171)
    at org.eclipse.jetty.ee8.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1348)
    at org.eclipse.jetty.ee8.servlet.ServletHandler.doHandle(ServletHandler.java:454)
    at org.eclipse.jetty.ee8.nested.ScopedHandler.handle(ScopedHandler.java:119)
    at org.eclipse.jetty.ee8.security.SecurityHandler.handle(SecurityHandler.java:478)
    at org.eclipse.jetty.ee8.nested.HandlerWrapper.handle(HandlerWrapper.java:108)
    at org.eclipse.jetty.ee8.nested.ScopedHandler.nextHandle(ScopedHandler.java:183)
    at org.eclipse.jetty.ee8.nested.SessionHandler.doHandle(SessionHandler.java:514)
    at org.eclipse.jetty.ee8.nested.ScopedHandler.nextHandle(ScopedHandler.java:181)
    at org.eclipse.jetty.ee8.nested.ContextHandler.doHandle(ContextHandler.java:878)
    at org.eclipse.jetty.ee8.nested.ScopedHandler.nextScope(ScopedHandler.java:152)
    at org.eclipse.jetty.ee8.servlet.ServletHandler.doScope(ServletHandler.java:423)
    at org.eclipse.jetty.ee8.nested.ScopedHandler.nextScope(ScopedHandler.java:150)
    at org.eclipse.jetty.ee8.nested.SessionHandler.doScope(SessionHandler.java:498)
    at org.eclipse.jetty.ee8.nested.ScopedHandler.nextScope(ScopedHandler.java:150)
    at org.eclipse.jetty.ee8.nested.ContextHandler.doScope(ContextHandler.java:823)
    at org.eclipse.jetty.ee8.nested.ScopedHandler.handle(ScopedHandler.java:117)
    at org.eclipse.jetty.ee8.nested.ContextHandler.handle(ContextHandler.java:1421)
    at org.eclipse.jetty.ee8.nested.HttpChannel$RequestDispatchable.dispatch(HttpChannel.java:1294)
    at org.eclipse.jetty.ee8.nested.HttpChannel.dispatch(HttpChannel.java:624)
    at org.eclipse.jetty.ee8.nested.HttpChannel.handle(HttpChannel.java:456)
    at org.eclipse.jetty.ee8.nested.ContextHandler$CoreContextHandler$CoreToNestedHandler.handle(ContextHandler.java:2350)
    at org.eclipse.jetty.server.handler.ContextHandler.handle(ContextHandler.java:858)
    at org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:597)
    at org.eclipse.jetty.server.Server.handle(Server.java:181)
    at org.eclipse.jetty.server.internal.HttpChannelState$HandlerInvoker.run(HttpChannelState.java:648)
    at org.eclipse.jetty.server.internal.HttpConnection.onFillable(HttpConnection.java:403)
    at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:322)
    at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:99)
    at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53)
    at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:478)
    at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:441)
    at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:293)
    at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.produce(AdaptiveExecutionStrategy.java:195)
    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:979)
    at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.doRunJob(QueuedThreadPool.java:1209)
    at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1164)
    at java.base/java.lang.Thread.run(Thread.java:1583)
   5.017 [id=90]    SEVERE  o.h.j.DefaultJavaScriptErrorListener#scriptException: Error during JavaScript execution
======= EXCEPTION START ========
Exception class=[org.htmlunit.corejs.javascript.EvaluatorException]
org.htmlunit.ScriptException: invalid property id (http://localhost:40689/jenkins/plugin/pipeline-graph-view/js/build.js#13)
    at org.htmlunit.javascript.JavaScriptEngine$HtmlUnitContextAction.run(JavaScriptEngine.java:959)
    at org.htmlunit.corejs.javascript.Context.call(Context.java:585)
    at org.htmlunit.corejs.javascript.ContextFactory.call(ContextFactory.java:481)
    at org.htmlunit.javascript.HtmlUnitContextFactory.callSecured(HtmlUnitContextFactory.java:314)
    at org.htmlunit.javascript.JavaScriptEngine.compile(JavaScriptEngine.java:731)
    at org.htmlunit.javascript.JavaScriptEngine.compile(JavaScriptEngine.java:109)
    at org.htmlunit.html.HtmlPage.loadJavaScriptFromUrl(HtmlPage.java:1124)
    at org.htmlunit.html.HtmlPage.loadExternalJavaScriptFile(HtmlPage.java:1015)
    at org.htmlunit.html.ScriptElementSupport.executeScriptIfNeeded(ScriptElementSupport.java:187)
    at org.htmlunit.html.ScriptElementSupport$1.execute(ScriptElementSupport.java:111)
    at org.htmlunit.html.ScriptElementSupport.onAllChildrenAddedToPage(ScriptElementSupport.java:134)
    at org.htmlunit.html.HtmlScript.onAllChildrenAddedToPage(HtmlScript.java:192)
    at org.htmlunit.html.parser.neko.HtmlUnitNekoDOMBuilder.endElement(HtmlUnitNekoDOMBuilder.java:508)
    at org.htmlunit.cyberneko.xerces.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:291)
    at org.htmlunit.html.parser.neko.HtmlUnitNekoDOMBuilder.endElement(HtmlUnitNekoDOMBuilder.java:454)
    at org.htmlunit.cyberneko.HTMLTagBalancer.callEndElement(HTMLTagBalancer.java:1220)
    at org.htmlunit.cyberneko.HTMLTagBalancer.endElement(HTMLTagBalancer.java:1164)
    at org.htmlunit.cyberneko.filters.DefaultFilter.endElement(DefaultFilter.java:168)
    at org.htmlunit.cyberneko.filters.NamespaceBinder.endElement(NamespaceBinder.java:266)
    at org.htmlunit.cyberneko.HTMLScanner$ContentScanner.scanEndElement(HTMLScanner.java:3208)
    at org.htmlunit.cyberneko.HTMLScanner$ContentScanner.scan(HTMLScanner.java:2098)
    at org.htmlunit.cyberneko.HTMLScanner.scanDocument(HTMLScanner.java:909)
    at org.htmlunit.cyberneko.HTMLConfiguration.parse(HTMLConfiguration.java:336)
    at org.htmlunit.cyberneko.HTMLConfiguration.parse(HTMLConfiguration.java:294)
    at org.htmlunit.cyberneko.xerces.parsers.AbstractXMLDocumentParser.parse(AbstractXMLDocumentParser.java:80)
    at org.htmlunit.html.parser.neko.HtmlUnitNekoDOMBuilder.parse(HtmlUnitNekoDOMBuilder.java:752)
    at org.htmlunit.html.parser.neko.HtmlUnitNekoHtmlParser.parse(HtmlUnitNekoHtmlParser.java:202)
    at org.htmlunit.DefaultPageCreator.createHtmlPage(DefaultPageCreator.java:307)
    at org.htmlunit.DefaultPageCreator.createPage(DefaultPageCreator.java:226)
    at org.jvnet.hudson.test.HudsonPageCreator.createPage(HudsonPageCreator.java:53)
    at org.htmlunit.WebClient.loadWebResponseInto(WebClient.java:651)
    at org.htmlunit.WebClient.loadWebResponseInto(WebClient.java:545)
    at org.htmlunit.WebClient.getPage(WebClient.java:463)
    at org.htmlunit.WebClient.getPage(WebClient.java:370)
    at org.htmlunit.WebClient.getPage(WebClient.java:508)
    at org.htmlunit.WebClient.getPage(WebClient.java:490)
    at org.jvnet.hudson.test.JenkinsRule$WebClient.goTo(JenkinsRule.java:2970)
    at org.jvnet.hudson.test.JenkinsRule$WebClient.goTo(JenkinsRule.java:2950)
    at org.jvnet.hudson.test.JenkinsRule$WebClient.getPage(JenkinsRule.java:2897)
    at io.jenkins.plugins.pipelinegraphview.PipelineGraphViewRebuildTest.rebuildButtonRedirectsForParameterizedJob(PipelineGraphViewRebuildTest.java:42)
    at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
    at java.base/java.lang.reflect.Method.invoke(Method.java:580)
    at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
    at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
    at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
    at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
    at org.jvnet.hudson.test.JenkinsRule$1.evaluate(JenkinsRule.java:706)
    at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:299)
    at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:293)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
    at java.base/java.lang.Thread.run(Thread.java:1583)
Caused by: org.htmlunit.corejs.javascript.EvaluatorException: invalid property id (http://localhost:40689/jenkins/plugin/pipeline-graph-view/js/build.js#13)
    at org.htmlunit.javascript.HtmlUnitContextFactory$HtmlUnitErrorReporter.error(HtmlUnitContextFactory.java:398)
    at org.htmlunit.corejs.javascript.Parser.addError(Parser.java:257)
    at org.htmlunit.corejs.javascript.Parser.reportError(Parser.java:336)
    at org.htmlunit.corejs.javascript.Parser.reportError(Parser.java:327)
    at org.htmlunit.corejs.javascript.Parser.reportError(Parser.java:320)
    at org.htmlunit.corejs.javascript.Parser.objectLiteral(Parser.java:3553)
    at org.htmlunit.corejs.javascript.Parser.primaryExpr(Parser.java:3136)
    at org.htmlunit.corejs.javascript.Parser.memberExpr(Parser.java:2758)
    at org.htmlunit.corejs.javascript.Parser.unaryExpr(Parser.java:2661)
    at org.htmlunit.corejs.javascript.Parser.expExpr(Parser.java:2581)
    at org.htmlunit.corejs.javascript.Parser.mulExpr(Parser.java:2564)
    at org.htmlunit.corejs.javascript.Parser.addExpr(Parser.java:2550)
    at org.htmlunit.corejs.javascript.Parser.shiftExpr(Parser.java:2533)
    at org.htmlunit.corejs.javascript.Parser.relExpr(Parser.java:2511)
    at org.htmlunit.corejs.javascript.Parser.eqExpr(Parser.java:2487)
    at org.htmlunit.corejs.javascript.Parser.bitAndExpr(Parser.java:2478)
    at org.htmlunit.corejs.javascript.Parser.bitXorExpr(Parser.java:2469)
    at org.htmlunit.corejs.javascript.Parser.bitOrExpr(Parser.java:2460)
    at org.htmlunit.corejs.javascript.Parser.andExpr(Parser.java:2451)
    at org.htmlunit.corejs.javascript.Parser.orExpr(Parser.java:2442)
    at org.htmlunit.corejs.javascript.Parser.condExpr(Parser.java:2409)
    at org.htmlunit.corejs.javascript.Parser.assignExpr(Parser.java:2367)
    at org.htmlunit.corejs.javascript.Parser.plainProperty(Parser.java:3698)
    at org.htmlunit.corejs.javascript.Parser.objectLiteral(Parser.java:3595)
    at org.htmlunit.corejs.javascript.Parser.primaryExpr(Parser.java:3136)
    at org.htmlunit.corejs.javascript.Parser.memberExpr(Parser.java:2758)
    at org.htmlunit.corejs.javascript.Parser.unaryExpr(Parser.java:2661)
    at org.htmlunit.corejs.javascript.Parser.expExpr(Parser.java:2581)
    at org.htmlunit.corejs.javascript.Parser.mulExpr(Parser.java:2564)
    at org.htmlunit.corejs.javascript.Parser.addExpr(Parser.java:2550)
    at org.htmlunit.corejs.javascript.Parser.shiftExpr(Parser.java:2533)
    at org.htmlunit.corejs.javascript.Parser.relExpr(Parser.java:2511)
    at org.htmlunit.corejs.javascript.Parser.eqExpr(Parser.java:2487)
    at org.htmlunit.corejs.javascript.Parser.bitAndExpr(Parser.java:2478)
    at org.htmlunit.corejs.javascript.Parser.bitXorExpr(Parser.java:2469)
    at org.htmlunit.corejs.javascript.Parser.bitOrExpr(Parser.java:2460)
    at org.htmlunit.corejs.javascript.Parser.andExpr(Parser.java:2451)
    at org.htmlunit.corejs.javascript.Parser.orExpr(Parser.java:2442)
    at org.htmlunit.corejs.javascript.Parser.condExpr(Parser.java:2409)
    at org.htmlunit.corejs.javascript.Parser.assignExpr(Parser.java:2367)
    at org.htmlunit.corejs.javascript.Parser.argumentList(Parser.java:2729)
    at org.htmlunit.corejs.javascript.Parser.memberExprTail(Parser.java:2873)
    at org.htmlunit.corejs.javascript.Parser.memberExpr(Parser.java:2793)
    at org.htmlunit.corejs.javascript.Parser.unaryExpr(Parser.java:2661)
    at org.htmlunit.corejs.javascript.Parser.expExpr(Parser.java:2581)
    at org.htmlunit.corejs.javascript.Parser.mulExpr(Parser.java:2564)
    at org.htmlunit.corejs.javascript.Parser.addExpr(Parser.java:2550)
    at org.htmlunit.corejs.javascript.Parser.shiftExpr(Parser.java:2533)
    at org.htmlunit.corejs.javascript.Parser.relExpr(Parser.java:2511)
    at org.htmlunit.corejs.javascript.Parser.eqExpr(Parser.java:2487)
    at org.htmlunit.corejs.javascript.Parser.bitAndExpr(Parser.java:2478)
    at org.htmlunit.corejs.javascript.Parser.bitXorExpr(Parser.java:2469)
    at org.htmlunit.corejs.javascript.Parser.bitOrExpr(Parser.java:2460)
    at org.htmlunit.corejs.javascript.Parser.andExpr(Parser.java:2451)
    at org.htmlunit.corejs.javascript.Parser.orExpr(Parser.java:2442)
    at org.htmlunit.corejs.javascript.Parser.condExpr(Parser.java:2409)
    at org.htmlunit.corejs.javascript.Parser.assignExpr(Parser.java:2367)
    at org.htmlunit.corejs.javascript.Parser.expr(Parser.java:2346)
    at org.htmlunit.corejs.javascript.Parser.nameOrLabel(Parser.java:2104)
    at org.htmlunit.corejs.javascript.Parser.statementHelper(Parser.java:1283)
    at org.htmlunit.corejs.javascript.Parser.statement(Parser.java:1137)
    at org.htmlunit.corejs.javascript.Parser.statements(Parser.java:1096)
    at org.htmlunit.corejs.javascript.Parser.block(Parser.java:2036)
    at org.htmlunit.corejs.javascript.Parser.statementHelper(Parser.java:1261)
    at org.htmlunit.corejs.javascript.Parser.statement(Parser.java:1137)
    at org.htmlunit.corejs.javascript.Parser.ifStatement(Parser.java:1344)
    at org.htmlunit.corejs.javascript.Parser.statementHelper(Parser.java:1191)
    at org.htmlunit.corejs.javascript.Parser.statement(Parser.java:1137)
    at org.htmlunit.corejs.javascript.Parser.parseFunctionBody(Parser.java:735)
    at org.htmlunit.corejs.javascript.Parser.arrowFunction(Parser.java:1026)
    at org.htmlunit.corejs.javascript.Parser.assignExpr(Parser.java:2403)
    at org.htmlunit.corejs.javascript.Parser.argumentList(Parser.java:2729)
    at org.htmlunit.corejs.javascript.Parser.memberExprTail(Parser.java:2873)
    at org.htmlunit.corejs.javascript.Parser.memberExpr(Parser.java:2793)
    at org.htmlunit.corejs.javascript.Parser.unaryExpr(Parser.java:2661)
    at org.htmlunit.corejs.javascript.Parser.expExpr(Parser.java:2581)
    at org.htmlunit.corejs.javascript.Parser.mulExpr(Parser.java:2564)
    at org.htmlunit.corejs.javascript.Parser.addExpr(Parser.java:2550)
    at org.htmlunit.corejs.javascript.Parser.shiftExpr(Parser.java:2533)
    at org.htmlunit.corejs.javascript.Parser.relExpr(Parser.java:2511)
    at org.htmlunit.corejs.javascript.Parser.eqExpr(Parser.java:2487)
    at org.htmlunit.corejs.javascript.Parser.bitAndExpr(Parser.java:2478)
    at org.htmlunit.corejs.javascript.Parser.bitXorExpr(Parser.java:2469)
    at org.htmlunit.corejs.javascript.Parser.bitOrExpr(Parser.java:2460)
    at org.htmlunit.corejs.javascript.Parser.andExpr(Parser.java:2451)
    at org.htmlunit.corejs.javascript.Parser.orExpr(Parser.java:2442)
    at org.htmlunit.corejs.javascript.Parser.condExpr(Parser.java:2409)
    at org.htmlunit.corejs.javascript.Parser.assignExpr(Parser.java:2367)
    at org.htmlunit.corejs.javascript.Parser.expr(Parser.java:2346)
    at org.htmlunit.corejs.javascript.Parser.nameOrLabel(Parser.java:2104)
    at org.htmlunit.corejs.javascript.Parser.statementHelper(Parser.java:1283)
    at org.htmlunit.corejs.javascript.Parser.statement(Parser.java:1137)
    at org.htmlunit.corejs.javascript.Parser.statements(Parser.java:1096)
    at org.htmlunit.corejs.javascript.Parser.block(Parser.java:2036)
    at org.htmlunit.corejs.javascript.Parser.statementHelper(Parser.java:1261)
    at org.htmlunit.corejs.javascript.Parser.statement(Parser.java:1137)
    at org.htmlunit.corejs.javascript.Parser.getNextStatementAfterInlineComments(Parser.java:1501)
    at org.htmlunit.corejs.javascript.Parser.ifStatement(Parser.java:1336)
    at org.htmlunit.corejs.javascript.Parser.statementHelper(Parser.java:1191)
    at org.htmlunit.corejs.javascript.Parser.statement(Parser.java:1137)
    at org.htmlunit.corejs.javascript.Parser.parse(Parser.java:631)
    at org.htmlunit.corejs.javascript.Parser.parse(Parser.java:561)
    at org.htmlunit.corejs.javascript.Context.parse(Context.java:2547)
    at org.htmlunit.corejs.javascript.Context.compileImpl(Context.java:2478)
    at org.htmlunit.corejs.javascript.Context.compileString(Context.java:1441)
    at org.htmlunit.javascript.HtmlUnitContextFactory$TimeoutContext.compileString(HtmlUnitContextFactory.java:192)
    at org.htmlunit.corejs.javascript.Context.compileString(Context.java:1429)
    at org.htmlunit.javascript.JavaScriptEngine$1.doRun(JavaScriptEngine.java:722)
    at org.htmlunit.javascript.JavaScriptEngine$HtmlUnitContextAction.run(JavaScriptEngine.java:942)
    ... 50 more
Enclosed exception: 
org.htmlunit.corejs.javascript.EvaluatorException: invalid property id (http://localhost:40689/jenkins/plugin/pipeline-graph-view/js/build.js#13)
    at org.htmlunit.javascript.HtmlUnitContextFactory$HtmlUnitErrorReporter.error(HtmlUnitContextFactory.java:398)
    at org.htmlunit.corejs.javascript.Parser.addError(Parser.java:257)
    at org.htmlunit.corejs.javascript.Parser.reportError(Parser.java:336)
    at org.htmlunit.corejs.javascript.Parser.reportError(Parser.java:327)
    at org.htmlunit.corejs.javascript.Parser.reportError(Parser.java:320)
    at org.htmlunit.corejs.javascript.Parser.objectLiteral(Parser.java:3553)
    at org.htmlunit.corejs.javascript.Parser.primaryExpr(Parser.java:3136)
    at org.htmlunit.corejs.javascript.Parser.memberExpr(Parser.java:2758)
    at org.htmlunit.corejs.javascript.Parser.unaryExpr(Parser.java:2661)
    at org.htmlunit.corejs.javascript.Parser.expExpr(Parser.java:2581)
    at org.htmlunit.corejs.javascript.Parser.mulExpr(Parser.java:2564)
    at org.htmlunit.corejs.javascript.Parser.addExpr(Parser.java:2550)
    at org.htmlunit.corejs.javascript.Parser.shiftExpr(Parser.java:2533)
    at org.htmlunit.corejs.javascript.Parser.relExpr(Parser.java:2511)
    at org.htmlunit.corejs.javascript.Parser.eqExpr(Parser.java:2487)
    at org.htmlunit.corejs.javascript.Parser.bitAndExpr(Parser.java:2478)
    at org.htmlunit.corejs.javascript.Parser.bitXorExpr(Parser.java:2469)
    at org.htmlunit.corejs.javascript.Parser.bitOrExpr(Parser.java:2460)
    at org.htmlunit.corejs.javascript.Parser.andExpr(Parser.java:2451)
    at org.htmlunit.corejs.javascript.Parser.orExpr(Parser.java:2442)
    at org.htmlunit.corejs.javascript.Parser.condExpr(Parser.java:2409)
    at org.htmlunit.corejs.javascript.Parser.assignExpr(Parser.java:2367)
    at org.htmlunit.corejs.javascript.Parser.plainProperty(Parser.java:3698)
    at org.htmlunit.corejs.javascript.Parser.objectLiteral(Parser.java:3595)
    at org.htmlunit.corejs.javascript.Parser.primaryExpr(Parser.java:3136)
    at org.htmlunit.corejs.javascript.Parser.memberExpr(Parser.java:2758)
    at org.htmlunit.corejs.javascript.Parser.unaryExpr(Parser.java:2661)
    at org.htmlunit.corejs.javascript.Parser.expExpr(Parser.java:2581)
    at org.htmlunit.corejs.javascript.Parser.mulExpr(Parser.java:2564)
    at org.htmlunit.corejs.javascript.Parser.addExpr(Parser.java:2550)
    at org.htmlunit.corejs.javascript.Parser.shiftExpr(Parser.java:2533)
    at org.htmlunit.corejs.javascript.Parser.relExpr(Parser.java:2511)
    at org.htmlunit.corejs.javascript.Parser.eqExpr(Parser.java:2487)
    at org.htmlunit.corejs.javascript.Parser.bitAndExpr(Parser.java:2478)
    at org.htmlunit.corejs.javascript.Parser.bitXorExpr(Parser.java:2469)
    at org.htmlunit.corejs.javascript.Parser.bitOrExpr(Parser.java:2460)
    at org.htmlunit.corejs.javascript.Parser.andExpr(Parser.java:2451)
    at org.htmlunit.corejs.javascript.Parser.orExpr(Parser.java:2442)
    at org.htmlunit.corejs.javascript.Parser.condExpr(Parser.java:2409)
    at org.htmlunit.corejs.javascript.Parser.assignExpr(Parser.java:2367)
    at org.htmlunit.corejs.javascript.Parser.argumentList(Parser.java:2729)
    at org.htmlunit.corejs.javascript.Parser.memberExprTail(Parser.java:2873)
    at org.htmlunit.corejs.javascript.Parser.memberExpr(Parser.java:2793)
    at org.htmlunit.corejs.javascript.Parser.unaryExpr(Parser.java:2661)
    at org.htmlunit.corejs.javascript.Parser.expExpr(Parser.java:2581)
    at org.htmlunit.corejs.javascript.Parser.mulExpr(Parser.java:2564)
    at org.htmlunit.corejs.javascript.Parser.addExpr(Parser.java:2550)
    at org.htmlunit.corejs.javascript.Parser.shiftExpr(Parser.java:2533)
    at org.htmlunit.corejs.javascript.Parser.relExpr(Parser.java:2511)
    at org.htmlunit.corejs.javascript.Parser.eqExpr(Parser.java:2487)
    at org.htmlunit.corejs.javascript.Parser.bitAndExpr(Parser.java:2478)
    at org.htmlunit.corejs.javascript.Parser.bitXorExpr(Parser.java:2469)
    at org.htmlunit.corejs.javascript.Parser.bitOrExpr(Parser.java:2460)
    at org.htmlunit.corejs.javascript.Parser.andExpr(Parser.java:2451)
    at org.htmlunit.corejs.javascript.Parser.orExpr(Parser.java:2442)
    at org.htmlunit.corejs.javascript.Parser.condExpr(Parser.java:2409)
    at org.htmlunit.corejs.javascript.Parser.assignExpr(Parser.java:2367)
    at org.htmlunit.corejs.javascript.Parser.expr(Parser.java:2346)
    at org.htmlunit.corejs.javascript.Parser.nameOrLabel(Parser.java:2104)
    at org.htmlunit.corejs.javascript.Parser.statementHelper(Parser.java:1283)
    at org.htmlunit.corejs.javascript.Parser.statement(Parser.java:1137)
    at org.htmlunit.corejs.javascript.Parser.statements(Parser.java:1096)
    at org.htmlunit.corejs.javascript.Parser.block(Parser.java:2036)
    at org.htmlunit.corejs.javascript.Parser.statementHelper(Parser.java:1261)
    at org.htmlunit.corejs.javascript.Parser.statement(Parser.java:1137)
    at org.htmlunit.corejs.javascript.Parser.ifStatement(Parser.java:1344)
    at org.htmlunit.corejs.javascript.Parser.statementHelper(Parser.java:1191)
    at org.htmlunit.corejs.javascript.Parser.statement(Parser.java:1137)
    at org.htmlunit.corejs.javascript.Parser.parseFunctionBody(Parser.java:735)
    at org.htmlunit.corejs.javascript.Parser.arrowFunction(Parser.java:1026)
    at org.htmlunit.corejs.javascript.Parser.assignExpr(Parser.java:2403)
    at org.htmlunit.corejs.javascript.Parser.argumentList(Parser.java:2729)
    at org.htmlunit.corejs.javascript.Parser.memberExprTail(Parser.java:2873)
    at org.htmlunit.corejs.javascript.Parser.memberExpr(Parser.java:2793)
    at org.htmlunit.corejs.javascript.Parser.unaryExpr(Parser.java:2661)
    at org.htmlunit.corejs.javascript.Parser.expExpr(Parser.java:2581)
    at org.htmlunit.corejs.javascript.Parser.mulExpr(Parser.java:2564)
    at org.htmlunit.corejs.javascript.Parser.addExpr(Parser.java:2550)
    at org.htmlunit.corejs.javascript.Parser.shiftExpr(Parser.java:2533)
    at org.htmlunit.corejs.javascript.Parser.relExpr(Parser.java:2511)
    at org.htmlunit.corejs.javascript.Parser.eqExpr(Parser.java:2487)
    at org.htmlunit.corejs.javascript.Parser.bitAndExpr(Parser.java:2478)
    at org.htmlunit.corejs.javascript.Parser.bitXorExpr(Parser.java:2469)
    at org.htmlunit.corejs.javascript.Parser.bitOrExpr(Parser.java:2460)
    at org.htmlunit.corejs.javascript.Parser.andExpr(Parser.java:2451)
    at org.htmlunit.corejs.javascript.Parser.orExpr(Parser.java:2442)
    at org.htmlunit.corejs.javascript.Parser.condExpr(Parser.java:2409)
    at org.htmlunit.corejs.javascript.Parser.assignExpr(Parser.java:2367)
    at org.htmlunit.corejs.javascript.Parser.expr(Parser.java:2346)
    at org.htmlunit.corejs.javascript.Parser.nameOrLabel(Parser.java:2104)
    at org.htmlunit.corejs.javascript.Parser.statementHelper(Parser.java:1283)
    at org.htmlunit.corejs.javascript.Parser.statement(Parser.java:1137)
    at org.htmlunit.corejs.javascript.Parser.statements(Parser.java:1096)
    at org.htmlunit.corejs.javascript.Parser.block(Parser.java:2036)
    at org.htmlunit.corejs.javascript.Parser.statementHelper(Parser.java:1261)
    at org.htmlunit.corejs.javascript.Parser.statement(Parser.java:1137)
    at org.htmlunit.corejs.javascript.Parser.getNextStatementAfterInlineComments(Parser.java:1501)
    at org.htmlunit.corejs.javascript.Parser.ifStatement(Parser.java:1336)
    at org.htmlunit.corejs.javascript.Parser.statementHelper(Parser.java:1191)
    at org.htmlunit.corejs.javascript.Parser.statement(Parser.java:1137)
    at org.htmlunit.corejs.javascript.Parser.parse(Parser.java:631)
    at org.htmlunit.corejs.javascript.Parser.parse(Parser.java:561)
    at org.htmlunit.corejs.javascript.Context.parse(Context.java:2547)
    at org.htmlunit.corejs.javascript.Context.compileImpl(Context.java:2478)
    at org.htmlunit.corejs.javascript.Context.compileString(Context.java:1441)
    at org.htmlunit.javascript.HtmlUnitContextFactory$TimeoutContext.compileString(HtmlUnitContextFactory.java:192)
    at org.htmlunit.corejs.javascript.Context.compileString(Context.java:1429)
    at org.htmlunit.javascript.JavaScriptEngine$1.doRun(JavaScriptEngine.java:722)
    at org.htmlunit.javascript.JavaScriptEngine$HtmlUnitContextAction.run(JavaScriptEngine.java:942)
    at org.htmlunit.corejs.javascript.Context.call(Context.java:585)
    at org.htmlunit.corejs.javascript.ContextFactory.call(ContextFactory.java:481)
    at org.htmlunit.javascript.HtmlUnitContextFactory.callSecured(HtmlUnitContextFactory.java:314)
    at org.htmlunit.javascript.JavaScriptEngine.compile(JavaScriptEngine.java:731)
    at org.htmlunit.javascript.JavaScriptEngine.compile(JavaScriptEngine.java:109)
    at org.htmlunit.html.HtmlPage.loadJavaScriptFromUrl(HtmlPage.java:1124)
    at org.htmlunit.html.HtmlPage.loadExternalJavaScriptFile(HtmlPage.java:1015)
    at org.htmlunit.html.ScriptElementSupport.executeScriptIfNeeded(ScriptElementSupport.java:187)
    at org.htmlunit.html.ScriptElementSupport$1.execute(ScriptElementSupport.java:111)
    at org.htmlunit.html.ScriptElementSupport.onAllChildrenAddedToPage(ScriptElementSupport.java:134)
    at org.htmlunit.html.HtmlScript.onAllChildrenAddedToPage(HtmlScript.java:192)
    at org.htmlunit.html.parser.neko.HtmlUnitNekoDOMBuilder.endElement(HtmlUnitNekoDOMBuilder.java:508)
    at org.htmlunit.cyberneko.xerces.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:291)
    at org.htmlunit.html.parser.neko.HtmlUnitNekoDOMBuilder.endElement(HtmlUnitNekoDOMBuilder.java:454)
    at org.htmlunit.cyberneko.HTMLTagBalancer.callEndElement(HTMLTagBalancer.java:1220)
    at org.htmlunit.cyberneko.HTMLTagBalancer.endElement(HTMLTagBalancer.java:1164)
    at org.htmlunit.cyberneko.filters.DefaultFilter.endElement(DefaultFilter.java:168)
    at org.htmlunit.cyberneko.filters.NamespaceBinder.endElement(NamespaceBinder.java:266)
    at org.htmlunit.cyberneko.HTMLScanner$ContentScanner.scanEndElement(HTMLScanner.java:3208)
    at org.htmlunit.cyberneko.HTMLScanner$ContentScanner.scan(HTMLScanner.java:2098)
    at org.htmlunit.cyberneko.HTMLScanner.scanDocument(HTMLScanner.java:909)
    at org.htmlunit.cyberneko.HTMLConfiguration.parse(HTMLConfiguration.java:336)
    at org.htmlunit.cyberneko.HTMLConfiguration.parse(HTMLConfiguration.java:294)
    at org.htmlunit.cyberneko.xerces.parsers.AbstractXMLDocumentParser.parse(AbstractXMLDocumentParser.java:80)
    at org.htmlunit.html.parser.neko.HtmlUnitNekoDOMBuilder.parse(HtmlUnitNekoDOMBuilder.java:752)
    at org.htmlunit.html.parser.neko.HtmlUnitNekoHtmlParser.parse(HtmlUnitNekoHtmlParser.java:202)
    at org.htmlunit.DefaultPageCreator.createHtmlPage(DefaultPageCreator.java:307)
    at org.htmlunit.DefaultPageCreator.createPage(DefaultPageCreator.java:226)
    at org.jvnet.hudson.test.HudsonPageCreator.createPage(HudsonPageCreator.java:53)
    at org.htmlunit.WebClient.loadWebResponseInto(WebClient.java:651)
    at org.htmlunit.WebClient.loadWebResponseInto(WebClient.java:545)
    at org.htmlunit.WebClient.getPage(WebClient.java:463)
    at org.htmlunit.WebClient.getPage(WebClient.java:370)
    at org.htmlunit.WebClient.getPage(WebClient.java:508)
    at org.htmlunit.WebClient.getPage(WebClient.java:490)
    at org.jvnet.hudson.test.JenkinsRule$WebClient.goTo(JenkinsRule.java:2970)
    at org.jvnet.hudson.test.JenkinsRule$WebClient.goTo(JenkinsRule.java:2950)
    at org.jvnet.hudson.test.JenkinsRule$WebClient.getPage(JenkinsRule.java:2897)
    at io.jenkins.plugins.pipelinegraphview.PipelineGraphViewRebuildTest.rebuildButtonRedirectsForParameterizedJob(PipelineGraphViewRebuildTest.java:42)
    at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
    at java.base/java.lang.reflect.Method.invoke(Method.java:580)
    at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
    at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
    at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
    at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
    at org.jvnet.hudson.test.JenkinsRule$1.evaluate(JenkinsRule.java:706)
    at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:299)
    at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:293)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
    at java.base/java.lang.Thread.run(Thread.java:1583)
== CALLING JAVASCRIPT ==
const rebuildButton = document.getElementById('pgv-rebuild');
if (rebuildButton) {
  rebuildButton.addEventListener('click', event => {
    event.preventDefault();
    const buildUrl = `${rebuildButton.dataset.buildPath}?delay=0sec`
    if (rebuildButton.dataset.parameterized === 'true') {
      window.location.href = buildUrl
    } else {
      fetch(buildUrl, {
        method: 'post',
        headers: {
          [document.head.dataset.crumbHeader]: document.head.dataset.crumbValue
        }
      })
        .then(res => {
          if (!res.ok) {
            console.error('Build failed', res);
          } else {
            window.hoverNotification(rebuildButton.dataset.successMessage, rebuildButton);
          }
        })
    }
  })
}
======= EXCEPTION END ========
   5.018 [id=90]    INFO    o.h.javascript.JavaScriptEngine#callSecured: execute() called after the shutdown of the Javascript engine and therefore not processed
   5.019 [id=90]    INFO    o.h.javascript.JavaScriptEngine#callSecured: execute() called after the shutdown of the Javascript engine and therefore not processed
   5.021 [id=90]    INFO    hudson.lifecycle.Lifecycle#onStatusUpdate: Stopping Jenkins
   5.033 [id=90]    INFO    hudson.lifecycle.Lifecycle#onStatusUpdate: Jenkins stopped
   5.174 [id=90]    INFO    o.j.h.t.TemporaryDirectoryAllocator#dispose: deleting /home/jenkins/agent/workspace/Tools_bom_PR-3524/target/pct-work/pipeline-graph-view-plugin/target/tmp/j h17019247692587547620
mtughan commented 2 months ago

Looks like something relating to the new unit tests I added to ensure the rebuild button functionality works properly. I'll try to reproduce locally tomorrow and see what's going on. Line 13 appears to be the line getting the crumb header, which isn't new, but I don't think it's been executed in unit tests prior to this.

basil commented 2 months ago

I wasn't able to reproduce the problem in this repository even after upgrading the baseline to a recent weekly and upgrading the BOM version consumed by this repository to the latest BOM release. I was able to reproduce the problem by running the tests in the jenkinsci/bom repository following the instructions in the jenkinsci/bom README.

mtughan commented 2 months ago

I wasn't able to reproduce the problem in this repository even after upgrading the baseline to a recent weekly and upgrading the BOM version consumed by this repository to the latest BOM release. I was able to reproduce the problem by running the tests in the jenkinsci/bom repository following the instructions in the jenkinsci/bom README.

Yeah, same here. Will make it more difficult to diagnose and fix, but I'll do my best.

mtughan commented 2 months ago

@basil and @timja, #498 should resolve this. Please review and merge when able.

basil commented 2 months ago

I figured out how to reproduce outside of PCT:

mvn clean verify -Dtest=io.jenkins.plugins.pipelinegraphview.PipelineGraphViewRebuildTest#rebuildButtonStartsNewBuild,io.jenkins.plugins.pipelinegraphview.PipelineGraphViewRebuildTest#rebuildButtonRedirectsForParameterizedJob -Djenkins-test-harness.version=2265.v3da_49c8134d6

Looks like the problem is a newer version of HtmlUnit which the PCT is dynamically upgrading to in order to get a test harness with Jetty 12 support.

mtughan commented 2 months ago

That would make sense. I wonder why there was a regression in terms of its JS support?

Regardless, #498 should be ready to merge to fix this. Results in a slightly cleaner look anyway.