6845161: Bottleneck in Configuration.getConfiguration synchronized call

Reduce scope of synchronized block

Reviewed-by: weijun
This commit is contained in:
Sean Mullan 2009-06-10 09:12:15 -07:00
parent 8a52d1a9d5
commit 46c0719042

View file

@ -1,5 +1,5 @@
/* /*
* Copyright 1998-2006 Sun Microsystems, Inc. All Rights Reserved. * Copyright 1998-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -234,12 +234,13 @@ public abstract class Configuration {
* *
* @see #setConfiguration * @see #setConfiguration
*/ */
public static synchronized Configuration getConfiguration() { public static Configuration getConfiguration() {
SecurityManager sm = System.getSecurityManager(); SecurityManager sm = System.getSecurityManager();
if (sm != null) if (sm != null)
sm.checkPermission(new AuthPermission("getLoginConfiguration")); sm.checkPermission(new AuthPermission("getLoginConfiguration"));
synchronized (Configuration.class) {
if (configuration == null) { if (configuration == null) {
String config_class = null; String config_class = null;
config_class = AccessController.doPrivileged config_class = AccessController.doPrivileged
@ -285,6 +286,7 @@ public abstract class Configuration {
} }
return configuration; return configuration;
} }
}
/** /**
* Set the login <code>Configuration</code>. * Set the login <code>Configuration</code>.