[Docs]: Document finally cleanup behavior during durable suspension
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 1/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 88/100
- Tipo di issue
- Documentazione
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- java
- Ambito
- documentation
Direzione di ricerca
Inizia in docs/advanced/error-handling.md, nella sezione “Handling SuspendExecutionException”, e consulta la richiesta di documentazione condivisa collegata per il contesto. Documenta il comportamento di finally durante la sospensione, spiega dove posizionare in modo sicuro la pulizia e la propagazione delle eccezioni, e includi l’esempio Java proposto; la sezione è completa quando copre sia la sospensione normale sia i percorsi di pulizia terminali.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Issue
The Handling SuspendExecutionException section correctly explains that SuspendExecutionException extends Error, bypasses a normal catch (Exception e), and must never be swallowed.
It does not currently explain the related finally behavior: Java executes an active finally block while SuspendExecutionException unwinds the stack. As a result, resource cleanup placed in finally can run during a normal durable suspension rather than only when the overall durable execution succeeds or fails.
This applies to any operation that can suspend, including wait, waitForCondition, callbacks, invokes, retry delays, and suspension inside map or parallel branches.
For example, this pattern can terminate a resource immediately when the wait suspends:
try {
var resource = ctx.step("launch-resource", Resource.class,
stepCtx -> launchResource());
var result = ctx.waitForCallback("work-complete", Result.class,
(callbackId, stepCtx) -> dispatchWork(resource, callbackId));
return result;
} finally {
ctx.step("terminate-resource", Void.class,
stepCtx -> terminateResource());
}
Page/Location
https://github.com/aws/aws-durable-execution-sdk-java/blob/main/docs/advanced/error-handling.md
Section: Handling SuspendExecutionException
Suggested Fix
Extend the section with guidance that:
finallyexecutes when the internal suspension signal unwinds the handler stack.- Durable cleanup that must happen only on completion or actual failure should not be placed in
finallyaround suspending operations. - Cleanup should run explicitly after successful completion and from handlers for application or operation exceptions.
SuspendExecutionExceptionmust continue to propagate untouched; avoidcatch (Throwable)unless it immediately rethrows suspension and other control-flow errors appropriately.
Include a safe Java example such as:
try {
var result = performDurableWorkThatMaySuspend(ctx);
ctx.step("cleanup-resource", Void.class,
stepCtx -> cleanupResource());
return result;
} catch (Exception e) {
ctx.step("cleanup-resource", Void.class,
stepCtx -> cleanupResource());
throw e;
}
The cleanup step occupies the same next durable-operation position on either terminal path, while SuspendExecutionException bypasses catch (Exception e) and suspends normally.
This is the Java-specific companion to the shared documentation request: https://github.com/aws/aws-durable-execution-docs/issues/131.
- Lingua principale
- Java
- Stelle
- 28
- Fork
- 14
- Merge medio
- 2g 13h
- PR unite (30g)
- 47
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di aws/aws-durable-execution-sdk-java
-
enhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
aws/aws-durable-execution-sdk-java#300 ·
I maintainer di solito rispondono entro 1 giorno
-
enhancement needs-triage
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
aws/aws-durable-execution-sdk-java#779 ·
I maintainer di solito rispondono entro 1 giorno
-
[Bug]: root handler instrumentation misses the canonical OTel execution contextForse già presa @zhongkechen l’ha presa 5 giorni fa. Apertaneeds-triage
Difficoltà 5/5 Più di una settimana Idoneità per principianti 40/100
aws/aws-durable-execution-sdk-java#770 ·
I maintainer di solito rispondono entro 1 giorno
-
[Feature]: Propagate per-operation trace context for chained invokesForse già presa Una pull request collegata a questa issue è aperta o già unita. Apertaenhancement needs-triage
Difficoltà 5/5 Più di una settimana Idoneità per principianti 38/100
aws/aws-durable-execution-sdk-java#764 ·
I maintainer di solito rispondono entro 1 giorno
-
[Bug]: OTel API version mismatch lets NoSuchMethodError escape PluginRunnerForse già presa @zhongkechen l’ha presa 1 giorno fa. Apertabug needs-triage
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
aws/aws-durable-execution-sdk-java#763 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di aws/aws-durable-execution-sdk-java
Issue simili
-
Add ZammadForse già presa @Arslan-TR l’ha presa oggi. Apertarequest
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
endoflife-date/endoflife.date#11298 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
bug documentation
Difficoltà 2/5 1-3 ore Idoneità per principianti 67/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
java-native-access/jna#1740 ·
-
Upgrade org.apache.felix.utils to 1.11.10Forse già presa @stataru8 l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
apache/karaf#2982 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
objectionary/eo#9329 ·
I maintainer di solito rispondono entro 1 giorno