diff --git a/spring-boot-project/spring-boot-tools/spring-boot-test-support/src/main/java/org/springframework/boot/testsupport/classpath/resources/ResourcesClassLoader.java b/spring-boot-project/spring-boot-tools/spring-boot-test-support/src/main/java/org/springframework/boot/testsupport/classpath/resources/ResourcesClassLoader.java index 2eeef880c1..eab1f7ad65 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-test-support/src/main/java/org/springframework/boot/testsupport/classpath/resources/ResourcesClassLoader.java +++ b/spring-boot-project/spring-boot-tools/spring-boot-test-support/src/main/java/org/springframework/boot/testsupport/classpath/resources/ResourcesClassLoader.java @@ -19,16 +19,19 @@ package org.springframework.boot.testsupport.classpath.resources; import java.io.IOException; import java.io.UncheckedIOException; import java.net.URL; +import java.security.ProtectionDomain; import java.util.ArrayList; import java.util.Collections; import java.util.Enumeration; +import org.springframework.core.SmartClassLoader; + /** * A {@link ClassLoader} that provides access to {@link Resources resources}. * * @author Andy Wilkinson */ -class ResourcesClassLoader extends ClassLoader { +class ResourcesClassLoader extends ClassLoader implements SmartClassLoader { private final Resources resources; @@ -66,4 +69,14 @@ class ResourcesClassLoader extends ClassLoader { return Collections.enumeration(urls); } + @Override + public ClassLoader getOriginalClassLoader() { + return getParent(); + } + + @Override + public Class publicDefineClass(String name, byte[] b, ProtectionDomain protectionDomain) { + return defineClass(name, b, 0, b.length, protectionDomain); + } + }