From 9a8b69613204cb8ac2d7a6a988fd95fae5e89518 Mon Sep 17 00:00:00 2001 From: Karlatemp Date: Mon, 25 Jul 2022 01:47:24 +0800 Subject: [PATCH] [Console] Track plugin file path into error stack; iTXTech/mirai-console-loader#128 --- .../src/internal/plugin/JvmPluginClassLoader.kt | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/mirai-console/backend/mirai-console/src/internal/plugin/JvmPluginClassLoader.kt b/mirai-console/backend/mirai-console/src/internal/plugin/JvmPluginClassLoader.kt index bc40dc9fd18..b1d2ddc3de3 100644 --- a/mirai-console/backend/mirai-console/src/internal/plugin/JvmPluginClassLoader.kt +++ b/mirai-console/backend/mirai-console/src/internal/plugin/JvmPluginClassLoader.kt @@ -207,7 +207,7 @@ internal class JvmPluginClassLoaderN : URLClassLoader { this.sharedLibrariesLogger = ctx.sharedLibrariesLoader this.file = file this.ctx = ctx - init0() + init1() } @Suppress("Since15") @@ -218,7 +218,16 @@ internal class JvmPluginClassLoaderN : URLClassLoader { this.sharedLibrariesLogger = ctx.sharedLibrariesLoader this.file = file this.ctx = ctx - init0() + init1() + } + + private fun init1() { + try { + init0() + } catch (e: Throwable) { + e.addSuppressed(RuntimeException("Failed to initialize new JvmPluginClassLoader, file=$file")) + throw e + } } private fun init0() {