Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-40161

Allow StepExecution.onResume to throw Exception

      Proposal:

      Change onResume to throw Exception. (Would still be binary-compatible.) FlowExecutionList.ItemListenerImpl.onLoaded would then need to catch exceptions and call StepContext.onFailure. Like AbstractStepExecutionImpl, this would rely on transient fields holding the contextual object; the improvement would be that a failure in StepContext.get would stop anything else in onResume (such as the setupTimer methods in TimeoutStepExecution, SleepStep.Execution, or DurableTaskStep.Execution) from running.

          [JENKINS-40161] Allow StepExecution.onResume to throw Exception

          Jesse Glick created issue -

          Jesse Glick added a comment -

          Would ease migration of steps after JENKINS-39134.

          Jesse Glick added a comment - Would ease migration of steps after JENKINS-39134 .
          Jesse Glick made changes -
          Link New: This issue relates to JENKINS-39134 [ JENKINS-39134 ]
          Jesse Glick made changes -
          Link New: This issue blocks JENKINS-37486 [ JENKINS-37486 ]

          Jesse Glick added a comment -

          Might fix issues like JENKINS-37486, or at least make the root cause more obvious.

          Jesse Glick added a comment - Might fix issues like JENKINS-37486 , or at least make the root cause more obvious.
          Jesse Glick made changes -
          Component/s New: durable-task-plugin [ 18622 ]
          Jesse Glick made changes -
          Description Original: [Proposal|https://github.com/jenkinsci/workflow-basic-steps-plugin/pull/28#discussion_r90341038]:

          Change {{onResume}} to throw {{Exception}}. (Would still be binary-compatible.) {{FlowExecutionList.ItemListenerImpl.onLoaded}} would then need to catch exceptions and call {{StepContext.onFailure}}. Like {{AbstractStepExecutionImpl}}, this would rely on {{transient}} fields holding the contextual object; the improvement would be that a failure in {{StepContext.get}} would stop anything _else_ in {{onResume}} (such as {{TimeoutStepExecution.setupTimer}} or {{SleepStep.Execution.setupTimer}}) from running.
          New: [Proposal|https://github.com/jenkinsci/workflow-basic-steps-plugin/pull/28#discussion_r90341038]:

          Change {{onResume}} to throw {{Exception}}. (Would still be binary-compatible.) {{FlowExecutionList.ItemListenerImpl.onLoaded}} would then need to catch exceptions and call {{StepContext.onFailure}}. Like {{AbstractStepExecutionImpl}}, this would rely on {{transient}} fields holding the contextual object; the improvement would be that a failure in {{StepContext.get}} would stop anything _else_ in {{onResume}} (such as the {{setupTimer}} methods in {{TimeoutStepExecution}}, {{SleepStep.Execution}}, or {{DurableTaskStep.Execution}}) from running.
          Jesse Glick made changes -
          Remote Link New: This issue links to "workflow-api-plugin #187 (Web Link)" [ 27289 ]

            Unassigned Unassigned
            jglick Jesse Glick
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated: