FailureDetails.IsCausedBy throws
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 48/100
Direzione di ricerca
Parti da FailureDetails.isCausedBy() e segui come il tipo di errore del failure viene serializzato e ricostruito quando vi si accede tramite retryContext. Usa il gestore dei retry personalizzato fornito e lo scenario di eccezione per riprodurre il failure. Il lavoro è completato quando isCausedBy() riesce a valutare la classe della causa, con una copertura per il caso riprodotto.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
When an activity function throws an exception, and it is caught by a custom retry handler in an orchestrator, the retryContext allows accessing the FailureDetails for analysis of the failure. However, attempting to use the FailureDetails.isCausedBy() method will never succeed, as it internally is implemented using Class.forName() which requires the fully-qualified exception class name but FailureDetails does not have this information serialized, just the simple exception class name.
Repro:
@FunctionName("CustomRetryActivityFunction")
public String customRetryActivityFunction(
@DurableOrchestrationTrigger(name = "ctx") TaskOrchestrationContext ctx) {
TaskOptions options = new TaskOptions(retryContext -> {
FailureDetails lastFailure = retryContext.getLastFailure();
if (lastFailure != null
&& lastFailure.getErrorType().equals("OverflowException")
// This line should work, but doesn't
// && lastFailure.isCausedBy(InvalidOperationException.class)
&& retryContext.getLastAttemptNumber() < 3) {
return true;
}
return false;
});
return ctx.callActivity("RaiseComplexException", ctx.getInstanceId(), options, String.class).await();
}
``
- Lingua principale
- Java
- Stelle
- 29
- Fork
- 18
- Merge medio
- 1g 10h
- PR unite (30g)
- 2
Guida per i contributori
Apri 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 microsoft/durabletask-java
-
Needs: Triage :mag:
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
microsoft/durabletask-java#303 ·
-
Needs: Triage :mag:
Difficoltà 4/5 3-5 giorni Idoneità per principianti 45/100
microsoft/durabletask-java#290 · 2 commenti ·
-
Needs: Triage :mag:
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
microsoft/durabletask-java#285 ·
-
Needs: Triage :mag:
Difficoltà 3/5 1-2 giorni Idoneità per principianti 68/100
microsoft/durabletask-java#276 ·
-
Enhancement
microsoft/durabletask-java#274 · 1 reazione · 2 assegnatari ·
Tutte le issue di microsoft/durabletask-java
Issue simili
-
Bug Java Platform: Java
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
getsentry/sentry-java#6138 · 1 commento ·
-
bug needs triage p2
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
GoogleCloudPlatform/DataflowTemplates#4273 · 1 commento ·
-
[Studio][Bug] Bulk-deleting a full page of alert rules steps the page back while more rules remain Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
apache/rocketmq-dashboard#4654 · 1 commento ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100