From 05d0462182b431c9e63af6b260b89898dacb1f01 Mon Sep 17 00:00:00 2001 From: Stuart Douglas Date: Tue, 27 Jul 2021 07:39:02 +1000 Subject: [PATCH] Close the RuntimeClassLoader on stop Fixes #19001 --- .../bootstrap/RunningQuarkusApplicationImpl.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/core/deployment/src/main/java/io/quarkus/runner/bootstrap/RunningQuarkusApplicationImpl.java b/core/deployment/src/main/java/io/quarkus/runner/bootstrap/RunningQuarkusApplicationImpl.java index 609c043335650..79a69b073fd98 100644 --- a/core/deployment/src/main/java/io/quarkus/runner/bootstrap/RunningQuarkusApplicationImpl.java +++ b/core/deployment/src/main/java/io/quarkus/runner/bootstrap/RunningQuarkusApplicationImpl.java @@ -8,15 +8,16 @@ import org.eclipse.microprofile.config.ConfigProvider; import io.quarkus.bootstrap.app.RunningQuarkusApplication; +import io.quarkus.bootstrap.classloading.QuarkusClassLoader; public class RunningQuarkusApplicationImpl implements RunningQuarkusApplication { private final Closeable closeTask; - private final ClassLoader classLoader; + private final QuarkusClassLoader classLoader; private boolean closing; - public RunningQuarkusApplicationImpl(Closeable closeTask, ClassLoader classLoader) { + public RunningQuarkusApplicationImpl(Closeable closeTask, QuarkusClassLoader classLoader) { this.closeTask = closeTask; this.classLoader = classLoader; } @@ -30,7 +31,11 @@ public ClassLoader getClassLoader() { public void close() throws Exception { if (!closing) { closing = true; - closeTask.close(); + try { + closeTask.close(); + } finally { + classLoader.close(); + } } }