jextract: Preserve underlying exception when async closure completes exceptionally
Les mainteneurs répondent en général sous 1 jour
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Accessibilité débutants
- 65/100
Piste de recherche
Commencez dans le thunk Swift qui intercepte les exceptions d'une closure async Java et suivez la manière dont l'achèvement exceptionnel est propagé vers la future Java. Reproduisez le cas RuntimeException de l'issue et vérifiez que l'exception sous-jacente est conservée comme cause plutôt que remplacée par une Exception générique.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
When a Java async closure completes exceptionally (e.g. with RuntimeException), the error is currently caught in the Swift thunk and completed exceptionally on the Java future as a generic Exception:
Future<Void> future = MySwiftLibrary.asyncScheduleThrowing(() -> {
CompletableFuture<Void> failed = new CompletableFuture<>();
failed.completeExceptionally(new RuntimeException("Java async failed"));
return failed;
});
assertThrows(ExecutionException.class, future::get);
Optimally, we should unwrap the ExecutionException in the Swift thunk and rethrow/preserve the underlying RuntimeException as the cause rather than wrapping it in a generic Exception.
- Langage dominant
- Swift
- Étoiles
- 1.3k
- Forks
- 129
- Merge moyen
- 7 h 16 min
- PR mergées (30 j)
- 4
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Aucun modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de swiftlang/swift-java
-
wrap-java: Optional convenience methods can fail to compile when a parameter shadows the method nameOuverte
Difficulté 2/5 1-3 heures Accessibilité débutants 70/100
swiftlang/swift-java#945 ·
Les mainteneurs répondent en général sous 1 jour
-
android
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
swiftlang/swift-java#663 · 4 commentaires · 1 réaction ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 3/5 1-2 jours Accessibilité débutants 56/100
swiftlang/swift-java#949 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 35/100
swiftlang/swift-java#948 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 4/5 3-5 jours Accessibilité débutants 54/100
swiftlang/swift-java#947 ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de swiftlang/swift-java
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 83/100
OneBusAway/vehicle-positions#260 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 85/100
eliasstravik/herdr-projects#789 · 1 commentaire ·
-
follow-up needs-triage S3: minor
Difficulté 1/5 1-3 heures Accessibilité débutants 85/100
manaflow-ai/cmux#38032 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 67/100
arkavo-org/ArkavoKit#70 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 60/100
Les mainteneurs répondent en général sous 1 jour