From 650de266ecd56a794fc9914cef1552a4d8904f85 Mon Sep 17 00:00:00 2001 From: Nheverest Date: Mon, 2 Nov 2020 11:13:51 +0100 Subject: [PATCH] Add detailed stacktrace in case of Seedstack dump failure --- .../java/org/seedstack/seed/core/Seed.java | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/core/src/main/java/org/seedstack/seed/core/Seed.java b/core/src/main/java/org/seedstack/seed/core/Seed.java index 6fe61a3e0..4f7277322 100644 --- a/core/src/main/java/org/seedstack/seed/core/Seed.java +++ b/core/src/main/java/org/seedstack/seed/core/Seed.java @@ -109,14 +109,18 @@ private Seed() { // Setup a default exception handler that translates exceptions Thread.setDefaultUncaughtExceptionHandler((thread, throwable) -> { - Throwable translated; - if (throwable instanceof Exception) { - translated = Seed.translateException((Exception) throwable); - } else { - translated = throwable; + try { + Throwable translated; + if (throwable instanceof Exception) { + translated = Seed.translateException((Exception) throwable); + } else { + translated = throwable; + } + diagnosticManager.dumpDiagnosticReport(throwable); + translated.printStackTrace(System.err); + } catch(Throwable t) { + throwable.printStackTrace(); } - diagnosticManager.dumpDiagnosticReport(throwable); - translated.printStackTrace(System.err); }); // Initialize logging subsystem (should silence logs until logging activation later in the initialization)