On Tue, Mar 6, 2018 at 1:32 PM, <ma...@apache.org> wrote:

> 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;
>      }
>

Hi,
There's a typo on singeltonLock.

Reply via email to