You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2015/11/21 16:51:12 UTC
svn commit: r1715539 -
/tomcat/trunk/java/javax/security/auth/message/config/AuthConfigFactory.java
Author: markt
Date: Sat Nov 21 15:51:12 2015
New Revision: 1715539
URL: http://svn.apache.org/viewvc?rev=1715539&view=rev
Log:
Avoid the memory leak
Modified:
tomcat/trunk/java/javax/security/auth/message/config/AuthConfigFactory.java
Modified: tomcat/trunk/java/javax/security/auth/message/config/AuthConfigFactory.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/javax/security/auth/message/config/AuthConfigFactory.java?rev=1715539&r1=1715538&r2=1715539&view=diff
==============================================================================
--- tomcat/trunk/java/javax/security/auth/message/config/AuthConfigFactory.java (original)
+++ tomcat/trunk/java/javax/security/auth/message/config/AuthConfigFactory.java Sat Nov 21 15:51:12 2015
@@ -49,17 +49,6 @@ public abstract class AuthConfigFactory
"org.apache.catalina.authenticator.jaspic.AuthConfigFactoryImpl";
private static AuthConfigFactory factory;
- private static ClassLoader contextClassLoader;
-
- static {
- // TODO: This looks like a memory leak waiting to happen
- contextClassLoader = AccessController.doPrivileged(new PrivilegedAction<ClassLoader>() {
- @Override
- public ClassLoader run() {
- return Thread.currentThread().getContextClassLoader();
- }
- });
- }
public AuthConfigFactory() {
}
@@ -77,8 +66,11 @@ public abstract class AuthConfigFactory
@Override
public AuthConfigFactory run() throws ClassNotFoundException,
InstantiationException, IllegalAccessException {
- // TODO Review this
- Class<?> clazz = Class.forName(className, true, contextClassLoader);
+ // Load this class with the same class loader as used for
+ // this class. Note that the Thread context class loader
+ // should not be used since that would trigger a memory leak
+ // in container environments.
+ Class<?> clazz = Class.forName(className);
return (AuthConfigFactory) clazz.newInstance();
}
});
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org