Author: markt
Date: Fri Feb 10 21:48:08 2012
New Revision: 1242947

URL: http://svn.apache.org/viewvc?rev=1242947&view=rev
Log:
Fix threading issue in initialization of standard authenticator list

Modified:
    tomcat/trunk/java/org/apache/catalina/startup/ContextConfig.java

Modified: tomcat/trunk/java/org/apache/catalina/startup/ContextConfig.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/startup/ContextConfig.java?rev=1242947&r1=1242946&r2=1242947&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/startup/ContextConfig.java (original)
+++ tomcat/trunk/java/org/apache/catalina/startup/ContextConfig.java Fri Feb 10 
21:48:08 2012
@@ -131,7 +131,24 @@ public class ContextConfig implements Li
      * the name of the implemented authentication method, and the value is
      * the fully qualified Java class name of the corresponding Valve.
      */
-    protected static Properties authenticators = null;
+    protected static final Properties authenticators;
+
+    static {
+        // Load our mapping properties for the standard authenticators
+        InputStream is =
+                ContextConfig.class.getClassLoader().getResourceAsStream(
+                    "org/apache/catalina/startup/Authenticators.properties");
+        Properties props = null;
+        props = new Properties();
+        if (is != null) {
+            try {
+                props.load(is);
+            } catch (IOException e) {
+                props = null;
+            }
+        }
+        authenticators = props;
+    }
 
 
     /**
@@ -335,7 +352,7 @@ public class ContextConfig implements Li
      * Set up an Authenticator automatically if required, and one has not
      * already been configured.
      */
-    protected synchronized void authenticatorConfig() {
+    protected void authenticatorConfig() {
 
         LoginConfig loginConfig = context.getLoginConfig();
 
@@ -377,25 +394,10 @@ public class ContextConfig implements Li
                 customAuthenticators.get(loginConfig.getAuthMethod());
         }
         if (authenticator == null) {
-            // Load our mapping properties if necessary
             if (authenticators == null) {
-                try {
-                    InputStream 
is=this.getClass().getClassLoader().getResourceAsStream("org/apache/catalina/startup/Authenticators.properties");
-                    if( is!=null ) {
-                        authenticators = new Properties();
-                        authenticators.load(is);
-                    } else {
-                        log.error(sm.getString(
-                                "contextConfig.authenticatorResources"));
-                        ok=false;
-                        return;
-                    }
-                } catch (IOException e) {
-                    log.error(sm.getString(
-                                "contextConfig.authenticatorResources"), e);
-                    ok = false;
-                    return;
-                }
+                
log.error(sm.getString("contextConfig.authenticatorResources"));
+                ok = false;
+                return;
             }
 
             // Identify the class name of the Valve we should configure



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to