< prev index next >
src/java.naming/share/classes/com/sun/jndi/ldap/LdapPoolManager.java
Print this page
rev 15155 : 8156824: com.sun.jndi.ldap.pool.PoolCleaner should clear its context class loader
Reviewed-by:
@@ -37,10 +37,11 @@
import java.security.AccessController;
import java.security.PrivilegedAction;
import com.sun.jndi.ldap.pool.PoolCleaner;
import com.sun.jndi.ldap.pool.Pool;
+import jdk.internal.misc.InnocuousThread;
/**
* Contains utilities for managing connection pools of LdapClient.
* Contains method for
* - checking whether attempted connection creation may be pooled
@@ -161,11 +162,21 @@
}
}
if (idleTimeout > 0) {
// Create cleaner to expire idle connections
- new PoolCleaner(idleTimeout, pools).start();
+ PrivilegedAction<Void> pa = new PrivilegedAction<Void>() {
+ public Void run() {
+ Thread t = InnocuousThread.newSystemThread(
+ "LDAP PoolCleaner",
+ new PoolCleaner(idleTimeout, pools));
+ assert t.getContextClassLoader() == null;
+ t.setDaemon(true);
+ t.start();
+ return null;
+ }};
+ AccessController.doPrivileged(pa);
}
if (debug) {
showStats(System.err);
}
< prev index next >