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-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to