You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This PR adds one conformance handler (conformance-tests/src/main/java/plugin/PluginTerminalPayloads.java) plus its CloudFormation entry in template_plugin.yaml. I verified every claim the PR relies on against the base revision:
API gap is real and accurately documented.OperationEndInfo (sdk/src/main/java/software/amazon/lambda/durable/plugin/OperationEndInfo.java:24-35) is exactly the 11-field record the JavaDoc describes and exposes no serialized-result accessor, so logging result: NONE for the successful step is an honest report of the gap.
Error path works as claimed.BaseDurableOperation.fireOnOperationEnd → extractErrorFromOperation → DurableOperationException, whose message is errorObject.errorMessage(). For RuntimeException("boom") under NO_RETRY, info.error().getMessage() yields boom; for the successful step error() is null, so the null-guard on line 71-73 correctly falls back to NONE.
Hook firing and filtering are correct.onOperationEnd fires for both terminal steps (SUCCEEDED and FAILED); PluginSupport.isStep(info.type()) filtering matches the sibling handlers.
Wiring is complete and consistent. The YAML entry's indentation, Handler: plugin.PluginTerminalPayloads, role, and DurableConfig match the existing entries; all imports are used; no other registration point exists.
JSON assembly matches suite convention. Direct string interpolation without escaping mirrors ConformanceLoggingPlugin/PluginRetryExhaustion; all interpolated values here are controlled literals, so no malformed output.
Residual test risk (by design, not a defect): This handler is intentionally red — the SUCCEEDED result: "task-a" assertion will fail until a result() accessor is added to OperationEndInfo. Note two dependencies worth watching: (1) the error: boom assertion depends on SDK serialization preserving the raw exception message with no type prefix (unlike StepFailedException, which prepends the type); if the checkpointed errorMessage ever changes format, this branch's expectation would drift. (2) There is no local/unit test accompanying the handler — it is validated only via the cloud conformance suite — which is consistent with the other handlers in this package.
Reviewed commit 81a1e93670b4e101cfdb5a3c211d1525c20a830b. Workflow run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Test case for #579