From 30b07e7f3abeac9819c537b550d5480cd0c5fbde Mon Sep 17 00:00:00 2001 From: Darin Kelkhoff Date: Tue, 2 Apr 2024 19:29:36 -0500 Subject: [PATCH] catch any throwable --- .../core/actions/async/AsyncJobManager.java | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/actions/async/AsyncJobManager.java b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/actions/async/AsyncJobManager.java index 6cc317d5..875097fa 100644 --- a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/actions/async/AsyncJobManager.java +++ b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/actions/async/AsyncJobManager.java @@ -169,17 +169,24 @@ public class AsyncJobManager LOG.debug("Completed job " + uuidAndTypeStateKey.getUuid()); return (result); } - catch(Exception e) + catch(Throwable t) { asyncJobStatus.setState(AsyncJobState.ERROR); - asyncJobStatus.setCaughtException(e); + if(t instanceof Exception e) + { + asyncJobStatus.setCaughtException(e); + } + else + { + asyncJobStatus.setCaughtException(new QException("Caught throwable", t)); + } getStateProvider().put(uuidAndTypeStateKey, asyncJobStatus); ////////////////////////////////////////////////////// // if user facing, just log an info, warn otherwise // ////////////////////////////////////////////////////// - LOG.log((e instanceof QUserFacingException) ? Level.INFO : Level.WARN, "Job ended with an exception", e, logPair("jobId", uuidAndTypeStateKey.getUuid())); - throw (new CompletionException(e)); + LOG.log((t instanceof QUserFacingException) ? Level.INFO : Level.WARN, "Job ended with an exception", t, logPair("jobId", uuidAndTypeStateKey.getUuid())); + throw (new CompletionException(t)); } finally {