package ch.sla.jdbcperflogger.logger; import java.io.IOException; import java.net.InetSocketAddress; import org.eclipse.jdt.annotation.Nullable; import org.junit.Assert; import org.junit.Test; public class PerfLoggerClientThreadTest { @Nullable private ClassLoader classLoaderInsideThread; @Test public void testCCL() throws InterruptedException, IOException { final ClassLoader oldCcl = currentCcl(); try { final MyClassLoader myClassLoader = new MyClassLoader(); Thread.currentThread().setContextClassLoader(myClassLoader); final PerfLoggerClientThread thread = PerfLoggerClientThread.spawn(new InetSocketAddress("localhost", 0)); Thread.sleep(1000); classLoaderInsideThread = thread.getContextClassLoader(); thread.done = true; thread.interrupt(); thread.join(); Assert.assertNotSame(myClassLoader, classLoaderInsideThread); } finally { Thread.currentThread().setContextClassLoader(oldCcl); } } private static ClassLoader currentCcl() { return Thread.currentThread().getContextClassLoader(); } }