From d97a2dad49891f869c0d916025d1acbe1cf19938 Mon Sep 17 00:00:00 2001 From: Artem Date: Mon, 20 May 2024 20:59:22 +0300 Subject: [PATCH] Fix jetty redeploy with custom jetty-env.xml (#304) Redeploy would fail because runner classloader is separate from the servlet container classloader. So runner was not able to create new WebAppContext. --- .../src/main/groovy/org/akhikhl/gretty/Runner.groovy | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/libs/gretty-runner/src/main/groovy/org/akhikhl/gretty/Runner.groovy b/libs/gretty-runner/src/main/groovy/org/akhikhl/gretty/Runner.groovy index e574a224..b5607cdb 100644 --- a/libs/gretty-runner/src/main/groovy/org/akhikhl/gretty/Runner.groovy +++ b/libs/gretty-runner/src/main/groovy/org/akhikhl/gretty/Runner.groovy @@ -101,9 +101,15 @@ final class Runner { } } else if (data.startsWith('redeploy ')) { - List webappList = data.replace('redeploy ', '').split(' ').toList() - serverManager.redeploy(webappList) - writer.writeMayFail('redeployed') + ClassLoader oldClassLoader = Thread.currentThread().getContextClassLoader() + Thread.currentThread().setContextClassLoader(cl) + try { + List webappList = data.replace('redeploy ', '').split(' ').toList() + serverManager.redeploy(webappList) + writer.writeMayFail('redeployed') + } finally { + Thread.currentThread().setContextClassLoader(oldClassLoader) + } } } } finally {