From c65dc9063ca20bf2b9a99d94782c38824ccb962e Mon Sep 17 00:00:00 2001 From: Phillip Webb Date: Thu, 30 Jan 2014 14:29:09 -0800 Subject: [PATCH] Don't expose URLs from InnerLoader Update the CLI Groovy InnerLoader to not expose URLs. This prevents the 'TLD skipped' log messages from Tomcat that occurred previously due to the InnerLoader and parent returning the same URLs. Fixes gh-277 --- .../boot/cli/compiler/ExtendedGroovyClassLoader.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/spring-boot-cli/src/main/java/org/springframework/boot/cli/compiler/ExtendedGroovyClassLoader.java b/spring-boot-cli/src/main/java/org/springframework/boot/cli/compiler/ExtendedGroovyClassLoader.java index 629196b1b05..b67ef2bdcdd 100644 --- a/spring-boot-cli/src/main/java/org/springframework/boot/cli/compiler/ExtendedGroovyClassLoader.java +++ b/spring-boot-cli/src/main/java/org/springframework/boot/cli/compiler/ExtendedGroovyClassLoader.java @@ -50,6 +50,8 @@ public class ExtendedGroovyClassLoader extends GroovyClassLoader { private static final String SHARED_PACKAGE = "org.springframework.boot.groovy"; + private static final URL[] NO_URLS = new URL[] {}; + private final Map classResources = new HashMap(); private final GroovyCompilerScope scope; @@ -127,7 +129,14 @@ public class ExtendedGroovyClassLoader extends GroovyClassLoader { .doPrivileged(new PrivilegedAction() { @Override public InnerLoader run() { - return new InnerLoader(ExtendedGroovyClassLoader.this); + return new InnerLoader(ExtendedGroovyClassLoader.this) { + // Don't return URLs from the inner loader so that Tomcat only + // searches the parent. Fixes 'TLD skipped' issues + @Override + public URL[] getURLs() { + return NO_URLS; + } + }; } }); return new ExtendedClassCollector(loader, unit, su);