This repository was archived by the owner on Feb 26, 2023. It is now read-only.
Propagate exceptions for submitted/scheduled tasks #727
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.
Fix improvement for #646
For remind, the goal of #646 was to stop catching exception in
@Backgoundannotated methods, in order to let the user deals with it.First shot was to simply remove the try/catch blocks, but as discussed here, there is a problem because
ExecutorService.submit/scheduledoesn't propagate exception during executions. This is by design. As a result, exceptions thrown are not logged and not visible.To handle that, I suggest a solution :
Call
futur.get()(in another thread pool) to check if an exception occurred during execution. If yes then throw it so it could be caught by the system.I admit it looks like a nasty trick, but I didn't find a better solution. If someone has, I will be happy to read it.