39 */ 40 41 package sun.util.resources; 42 43 import java.lang.ref.ReferenceQueue; 44 import java.lang.ref.SoftReference; 45 import java.security.AccessController; 46 import java.security.PrivilegedAction; 47 import java.util.Enumeration; 48 import java.util.Iterator; 49 import java.util.List; 50 import java.util.Locale; 51 import java.util.MissingResourceException; 52 import java.util.Objects; 53 import java.util.ResourceBundle; 54 import java.util.ServiceConfigurationError; 55 import java.util.ServiceLoader; 56 import java.util.concurrent.ConcurrentHashMap; 57 import java.util.concurrent.ConcurrentMap; 58 import java.util.spi.ResourceBundleProvider; 59 import jdk.internal.misc.JavaUtilResourceBundleAccess; 60 import jdk.internal.misc.SharedSecrets; 61 62 /** 63 */ 64 public abstract class Bundles { 65 66 /** initial size of the bundle cache */ 67 private static final int INITIAL_CACHE_SIZE = 32; 68 69 /** constant indicating that no resource bundle exists */ 70 private static final ResourceBundle NONEXISTENT_BUNDLE = new ResourceBundle() { 71 @Override 72 public Enumeration<String> getKeys() { return null; } 73 @Override 74 protected Object handleGetObject(String key) { return null; } 75 @Override 76 public String toString() { return "NONEXISTENT_BUNDLE"; } 77 }; 78 79 private static final JavaUtilResourceBundleAccess bundleAccess 80 = SharedSecrets.getJavaUtilResourceBundleAccess(); | 39 */ 40 41 package sun.util.resources; 42 43 import java.lang.ref.ReferenceQueue; 44 import java.lang.ref.SoftReference; 45 import java.security.AccessController; 46 import java.security.PrivilegedAction; 47 import java.util.Enumeration; 48 import java.util.Iterator; 49 import java.util.List; 50 import java.util.Locale; 51 import java.util.MissingResourceException; 52 import java.util.Objects; 53 import java.util.ResourceBundle; 54 import java.util.ServiceConfigurationError; 55 import java.util.ServiceLoader; 56 import java.util.concurrent.ConcurrentHashMap; 57 import java.util.concurrent.ConcurrentMap; 58 import java.util.spi.ResourceBundleProvider; 59 import jdk.internal.access.JavaUtilResourceBundleAccess; 60 import jdk.internal.access.SharedSecrets; 61 62 /** 63 */ 64 public abstract class Bundles { 65 66 /** initial size of the bundle cache */ 67 private static final int INITIAL_CACHE_SIZE = 32; 68 69 /** constant indicating that no resource bundle exists */ 70 private static final ResourceBundle NONEXISTENT_BUNDLE = new ResourceBundle() { 71 @Override 72 public Enumeration<String> getKeys() { return null; } 73 @Override 74 protected Object handleGetObject(String key) { return null; } 75 @Override 76 public String toString() { return "NONEXISTENT_BUNDLE"; } 77 }; 78 79 private static final JavaUtilResourceBundleAccess bundleAccess 80 = SharedSecrets.getJavaUtilResourceBundleAccess(); |