-
Improvement
-
Resolution: Not A Defect
-
Minor
-
None
-
* jenkins-core 2.60
* pipeline-build-step:2.5 'Pipeline: Build Step'
* pipeline-github-lib:1.0 'Pipeline: GitHub Groovy Libraries'
* pipeline-graph-analysis:1.4 'Pipeline Graph Analysis Plugin'
* pipeline-input-step:2.7 'Pipeline: Input Step'
* pipeline-maven:2.5.1-SNAPSHOT (private-5889de34-cyrilleleclerc) 'Pipeline Maven Integration Plugin'
* pipeline-milestone-step:1.3.1 'Pipeline: Milestone Step'
* pipeline-model-api:1.1.6 'Pipeline: Model API'
* pipeline-model-declarative-agent:1.1.1 'Pipeline: Declarative Agent API'
* pipeline-model-definition:1.1.6 'Pipeline: Model Definition'
* pipeline-model-extensions:1.1.6 'Pipeline: Declarative Extension Points API'
* pipeline-rest-api:2.8 'Pipeline: REST API Plugin'
* pipeline-stage-step:2.2 'Pipeline: Stage Step'
* pipeline-stage-tags-metadata:1.1.6 'Pipeline: Stage Tags Metadata'
* pipeline-stage-view:2.8 'Pipeline: Stage View Plugin'
* pipeline-utility-steps:1.3.0 'Pipeline Utility Steps'
* workflow-aggregator:2.5 'Pipeline'
* workflow-api:2.17 'Pipeline: API'
* workflow-basic-steps:2.5 'Pipeline: Basic Steps'
* workflow-cps:2.36 'Pipeline: Groovy'
* workflow-cps-checkpoint:2.4 'CloudBees Pipeline: Groovy Checkpoint Plugin'
* workflow-cps-global-lib:2.8 'Pipeline: Shared Groovy Libraries'
* workflow-durable-task-step:2.12 'Pipeline: Nodes and Processes'
* workflow-job:2.12.1 'Pipeline: Job'
* workflow-multibranch:2.16 'Pipeline: Multibranch'
* workflow-scm-step:2.6 'Pipeline: SCM Step'
* workflow-step-api:2.11 'Pipeline: Step API'
* workflow-support:2.14 'Pipeline: Supporting APIs'
* jenkins-core 2.60 * pipeline-build-step:2.5 'Pipeline: Build Step' * pipeline-github-lib:1.0 'Pipeline: GitHub Groovy Libraries' * pipeline-graph-analysis:1.4 'Pipeline Graph Analysis Plugin' * pipeline-input-step:2.7 'Pipeline: Input Step' * pipeline-maven:2.5.1-SNAPSHOT (private-5889de34-cyrilleleclerc) 'Pipeline Maven Integration Plugin' * pipeline-milestone-step:1.3.1 'Pipeline: Milestone Step' * pipeline-model-api:1.1.6 'Pipeline: Model API' * pipeline-model-declarative-agent:1.1.1 'Pipeline: Declarative Agent API' * pipeline-model-definition:1.1.6 'Pipeline: Model Definition' * pipeline-model-extensions:1.1.6 'Pipeline: Declarative Extension Points API' * pipeline-rest-api:2.8 'Pipeline: REST API Plugin' * pipeline-stage-step:2.2 'Pipeline: Stage Step' * pipeline-stage-tags-metadata:1.1.6 'Pipeline: Stage Tags Metadata' * pipeline-stage-view:2.8 'Pipeline: Stage View Plugin' * pipeline-utility-steps:1.3.0 'Pipeline Utility Steps' * workflow-aggregator:2.5 'Pipeline' * workflow-api:2.17 'Pipeline: API' * workflow-basic-steps:2.5 'Pipeline: Basic Steps' * workflow-cps:2.36 'Pipeline: Groovy' * workflow-cps-checkpoint:2.4 'CloudBees Pipeline: Groovy Checkpoint Plugin' * workflow-cps-global-lib:2.8 'Pipeline: Shared Groovy Libraries' * workflow-durable-task-step:2.12 'Pipeline: Nodes and Processes' * workflow-job:2.12.1 'Pipeline: Job' * workflow-multibranch:2.16 'Pipeline: Multibranch' * workflow-scm-step:2.6 'Pipeline: SCM Step' * workflow-step-api:2.11 'Pipeline: Step API' * workflow-support:2.14 'Pipeline: Supporting APIs'
Pipeline seem to hide the root cause of IlegalStateException when displaying stacktraces of exception that are raised by plugins in org.jenkinsci.plugins.workflow.steps.StepExecution#start() (it's probably not specific to IlegalStateException and probably also apply to other types of exceptions). It makes it much more difficult for plugin authors to troubleshoot their apps.
The withMaven() plugin raises an IllegalStateException in org.jenkinsci.plugins.workflow.steps.StepExecution#start() and the root cause is not displayed in the build logs. In the sample below, the root cause seem to be a NullPointerException but I can't understand where it happened.
Code
try { ... } catch (Exception e) { throw new IllegalStateException("Exception injecting Maven settings.xml " + mavenSettingsConfig.id + " during the build: " + build + ": " + e.getMessage(), e); }
Exception message in the build logs
java.lang.InterruptedException at java.lang.Object.wait(Native Method) at hudson.remoting.Request.call(Request.java:147) at hudson.remoting.Channel.call(Channel.java:829) at hudson.FilePath.act(FilePath.java:985) at hudson.FilePath.act(FilePath.java:974) at hudson.FilePath.write(FilePath.java:1901) at org.jenkinsci.plugins.pipeline.maven.WithMavenStepExecution.settingsFromConfig(WithMavenStepExecution.java:738) at org.jenkinsci.plugins.pipeline.maven.WithMavenStepExecution.setupSettingFile(WithMavenStepExecution.java:568) at org.jenkinsci.plugins.pipeline.maven.WithMavenStepExecution.setupMaven(WithMavenStepExecution.java:271) at org.jenkinsci.plugins.pipeline.maven.WithMavenStepExecution.start(WithMavenStepExecution.java:172) at org.jenkinsci.plugins.workflow.cps.DSL.invokeStep(DSL.java:184) at org.jenkinsci.plugins.workflow.cps.DSL.invokeMethod(DSL.java:126) at org.jenkinsci.plugins.workflow.cps.CpsScript.invokeMethod(CpsScript.java:108) at groovy.lang.GroovyObject$invokeMethod.call(Unknown Source) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113) at org.kohsuke.groovy.sandbox.impl.Checker$1.call(Checker.java:151) at org.kohsuke.groovy.sandbox.GroovyInterceptor.onMethodCall(GroovyInterceptor.java:21) at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onMethodCall(SandboxInterceptor.java:115) at org.kohsuke.groovy.sandbox.impl.Checker$1.call(Checker.java:149) at org.kohsuke.groovy.sandbox.impl.Checker.checkedCall(Checker.java:146) at org.kohsuke.groovy.sandbox.impl.Checker.checkedCall(Checker.java:123) at org.kohsuke.groovy.sandbox.impl.Checker.checkedCall(Checker.java:123) at com.cloudbees.groovy.cps.sandbox.SandboxInvoker.methodCall(SandboxInvoker.java:16) Caused: java.lang.IllegalStateException: Exception injecting Maven settings.xml my-settings during the build: my-app/build/master #40: null at org.jenkinsci.plugins.pipeline.maven.WithMavenStepExecution.settingsFromConfig(WithMavenStepExecution.java:741) at org.jenkinsci.plugins.pipeline.maven.WithMavenStepExecution.setupSettingFile(WithMavenStepExecution.java:568) at org.jenkinsci.plugins.pipeline.maven.WithMavenStepExecution.setupMaven(WithMavenStepExecution.java:271) at org.jenkinsci.plugins.pipeline.maven.WithMavenStepExecution.start(WithMavenStepExecution.java:172) at org.jenkinsci.plugins.workflow.cps.DSL.invokeStep(DSL.java:184) at org.jenkinsci.plugins.workflow.cps.DSL.invokeMethod(DSL.java:126) at org.jenkinsci.plugins.workflow.cps.CpsScript.invokeMethod(CpsScript.java:108) at groovy.lang.GroovyObject$invokeMethod.call(Unknown Source) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113) at org.kohsuke.groovy.sandbox.impl.Checker$1.call(Checker.java:151) at org.kohsuke.groovy.sandbox.GroovyInterceptor.onMethodCall(GroovyInterceptor.java:21) at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onMethodCall(SandboxInterceptor.java:115) at org.kohsuke.groovy.sandbox.impl.Checker$1.call(Checker.java:149) at org.kohsuke.groovy.sandbox.impl.Checker.checkedCall(Checker.java:146) at org.kohsuke.groovy.sandbox.impl.Checker.checkedCall(Checker.java:123) at org.kohsuke.groovy.sandbox.impl.Checker.checkedCall(Checker.java:123) at com.cloudbees.groovy.cps.sandbox.SandboxInvoker.methodCall(SandboxInvoker.java:16) at WorkflowScript.run(WorkflowScript:4) at ___cps.transform___(Native Method) at com.cloudbees.groovy.cps.impl.ContinuationGroup.methodCall(ContinuationGroup.java:57) at com.cloudbees.groovy.cps.impl.FunctionCallBlock$ContinuationImpl.dispatchOrArg(FunctionCallBlock.java:109) at com.cloudbees.groovy.cps.impl.FunctionCallBlock$ContinuationImpl.fixArg(FunctionCallBlock.java:82) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at com.cloudbees.groovy.cps.impl.ContinuationPtr$ContinuationImpl.receive(ContinuationPtr.java:72) at com.cloudbees.groovy.cps.impl.ClosureBlock.eval(ClosureBlock.java:46) at com.cloudbees.groovy.cps.Next.step(Next.java:74) at com.cloudbees.groovy.cps.Continuable.run0(Continuable.java:154) at org.jenkinsci.plugins.workflow.cps.SandboxContinuable.access$001(SandboxContinuable.java:18) at org.jenkinsci.plugins.workflow.cps.SandboxContinuable$1.call(SandboxContinuable.java:33) at org.jenkinsci.plugins.workflow.cps.SandboxContinuable$1.call(SandboxContinuable.java:30) at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.GroovySandbox.runInSandbox(GroovySandbox.java:108) at org.jenkinsci.plugins.workflow.cps.SandboxContinuable.run0(SandboxContinuable.java:30) at org.jenkinsci.plugins.workflow.cps.CpsThread.runNextChunk(CpsThread.java:165) at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.run(CpsThreadGroup.java:330) at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.access$100(CpsThreadGroup.java:82) at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:242) at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:230) at org.jenkinsci.plugins.workflow.cps.CpsVmExecutorService$2.call(CpsVmExecutorService.java:64) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at hudson.remoting.SingleLaneExecutorService$1.run(SingleLaneExecutorService.java:112) at jenkins.util.ContextResettingExecutorService$1.run(ContextResettingExecutorService.java:28) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:748) Finished: FAILURE
- is related to
-
JENKINS-45358 Poor exception message when failing to inject settings.xml
-
- Open
-
The stack trace shows an InterruptedException as the root cause, so I have no idea what you are talking about here.