diff --git a/pulsar-broker/src/test/java/org/apache/pulsar/broker/intercept/BrokerInterceptorTest.java b/pulsar-broker/src/test/java/org/apache/pulsar/broker/intercept/BrokerInterceptorTest.java index 06f091ba9059e..d6b26f31a1f18 100644 --- a/pulsar-broker/src/test/java/org/apache/pulsar/broker/intercept/BrokerInterceptorTest.java +++ b/pulsar-broker/src/test/java/org/apache/pulsar/broker/intercept/BrokerInterceptorTest.java @@ -18,12 +18,15 @@ */ package org.apache.pulsar.broker.intercept; +import static org.mockito.AdditionalAnswers.delegatesTo; import static org.mockito.ArgumentMatchers.same; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.testng.Assert.assertEquals; import java.io.IOException; +import java.net.URL; +import java.net.URLClassLoader; import java.util.HashMap; import java.util.HashSet; import java.util.Map; @@ -93,7 +96,9 @@ public void setup() throws Exception { @Override protected void customizeMainPulsarTestContextBuilder(PulsarTestContext.Builder pulsarTestContextBuilder) { HashMap brokerInterceptorWithClassLoaderHashMap = new HashMap<>(); - NarClassLoader narClassLoader = mock(NarClassLoader.class); + // The filter chain uses this context class loader for resource and service-provider lookup. + NarClassLoader narClassLoader = mock(NarClassLoader.class, + delegatesTo(new URLClassLoader(new URL[0], getClass().getClassLoader()))); BrokerInterceptorWithClassLoader counterBrokerInterceptor = new BrokerInterceptorWithClassLoader(new CounterBrokerInterceptor(), narClassLoader); brokerInterceptorWithClassLoaderHashMap.put(CounterBrokerInterceptor.NAME, counterBrokerInterceptor); diff --git a/pulsar-broker/src/test/java/org/apache/pulsar/broker/intercept/ExceptionsBrokerInterceptorTest.java b/pulsar-broker/src/test/java/org/apache/pulsar/broker/intercept/ExceptionsBrokerInterceptorTest.java index d08209be88dda..982c7c47e082e 100644 --- a/pulsar-broker/src/test/java/org/apache/pulsar/broker/intercept/ExceptionsBrokerInterceptorTest.java +++ b/pulsar-broker/src/test/java/org/apache/pulsar/broker/intercept/ExceptionsBrokerInterceptorTest.java @@ -18,10 +18,13 @@ */ package org.apache.pulsar.broker.intercept; +import static org.mockito.AdditionalAnswers.delegatesTo; import static org.mockito.Mockito.mock; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertNotNull; import static org.testng.Assert.assertTrue; +import java.net.URL; +import java.net.URLClassLoader; import java.nio.charset.StandardCharsets; import java.util.HashMap; import java.util.Map; @@ -63,7 +66,9 @@ protected void cleanup() throws Exception { protected void customizeMainPulsarTestContextBuilder(PulsarTestContext.Builder pulsarTestContextBuilder) { Map listenerMap = new HashMap<>(); BrokerInterceptor interceptor = new ExceptionsBrokerInterceptor(); - NarClassLoader narClassLoader = mock(NarClassLoader.class); + // The filter chain uses this context class loader for resource and service-provider lookup. + NarClassLoader narClassLoader = mock(NarClassLoader.class, + delegatesTo(new URLClassLoader(new URL[0], getClass().getClassLoader()))); listenerMap.put(interceptorName, new BrokerInterceptorWithClassLoader(interceptor, narClassLoader)); pulsarTestContextBuilder.brokerInterceptor(new BrokerInterceptors(listenerMap)); }