Author: markt
Date: Tue Mar  6 11:32:42 2018
New Revision: 1825978

URL: http://svn.apache.org/viewvc?rev=1825978&view=rev
Log:
SpotBugs
Correctly construct singleton in a thread-safe manner

Modified:
    tomcat/trunk/java/org/apache/catalina/security/SecurityConfig.java

Modified: tomcat/trunk/java/org/apache/catalina/security/SecurityConfig.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/security/SecurityConfig.java?rev=1825978&r1=1825977&r2=1825978&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/security/SecurityConfig.java 
(original)
+++ tomcat/trunk/java/org/apache/catalina/security/SecurityConfig.java Tue Mar  
6 11:32:42 2018
@@ -28,7 +28,9 @@ import org.apache.juli.logging.LogFactor
  * @author the Catalina.java authors
  */
 public final class SecurityConfig{
-    private static SecurityConfig singleton = null;
+
+    private static final Object singeltonLock = new Object();
+    private static volatile SecurityConfig singleton = null;
 
     private static final Log log = LogFactory.getLog(SecurityConfig.class);
 
@@ -83,8 +85,12 @@ public final class SecurityConfig{
      * @return an instance of that class.
      */
     public static SecurityConfig newInstance(){
-        if (singleton == null){
-            singleton = new SecurityConfig();
+        if (singleton == null) {
+            synchronized (singeltonLock) {
+                if (singleton == null) {
+                    singleton = new SecurityConfig();
+                }
+            }
         }
         return singleton;
     }



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

Reply via email to