diff --git a/src/share/classes/sun/net/www/MimeTable.java b/src/share/classes/sun/net/www/MimeTable.java index 6d21fa0fd4ef81ab81b30a7aad67e5040aed7754..085b97505d887454e3cb1653ec4361421d8c0b92 100644 --- a/src/share/classes/sun/net/www/MimeTable.java +++ b/src/share/classes/sun/net/www/MimeTable.java @@ -73,29 +73,32 @@ public class MimeTable implements FileNameMap { private static final String filePreamble = "sun.net.www MIME content-types table"; private static final String fileMagic = "#" + filePreamble; - private static MimeTable defaultInstance = null; MimeTable() { load(); } + private static class DefaultInstanceHolder { + static final MimeTable defaultInstance = getDefaultInstance(); + + static MimeTable getDefaultInstance() { + return java.security.AccessController.doPrivileged( + new java.security.PrivilegedAction() { + public MimeTable run() { + MimeTable instance = new MimeTable(); + URLConnection.setFileNameMap(instance); + return instance; + } + }); + } + } + /** * Get the single instance of this class. First use will load the * table from a data file. */ public static MimeTable getDefaultTable() { - if (defaultInstance == null) { - java.security.AccessController.doPrivileged( - new java.security.PrivilegedAction() { - public Void run() { - defaultInstance = new MimeTable(); - URLConnection.setFileNameMap(defaultInstance); - return null; - } - }); - } - - return defaultInstance; + return DefaultInstanceHolder.defaultInstance; } /**