< prev index next >

src/java.base/share/classes/java/time/zone/ZoneRulesProvider.java

Print this page




 130 
 131     /**
 132      * The set of loaded providers.
 133      */
 134     private static final CopyOnWriteArrayList<ZoneRulesProvider> PROVIDERS = new CopyOnWriteArrayList<>();
 135     /**
 136      * The lookup from zone ID to provider.
 137      */
 138     private static final ConcurrentMap<String, ZoneRulesProvider> ZONES = new ConcurrentHashMap<>(512, 0.75f, 2);
 139 
 140     static {
 141         // if the property java.time.zone.DefaultZoneRulesProvider is
 142         // set then its value is the class name of the default provider
 143         final List<ZoneRulesProvider> loaded = new ArrayList<>();
 144         AccessController.doPrivileged(new PrivilegedAction<>() {
 145             public Object run() {
 146                 String prop = System.getProperty("java.time.zone.DefaultZoneRulesProvider");
 147                 if (prop != null) {
 148                     try {
 149                         Class<?> c = Class.forName(prop, true, ClassLoader.getSystemClassLoader());

 150                         ZoneRulesProvider provider = ZoneRulesProvider.class.cast(c.newInstance());
 151                         registerProvider(provider);
 152                         loaded.add(provider);
 153                     } catch (Exception x) {
 154                         throw new Error(x);
 155                     }
 156                 } else {
 157                     registerProvider(new TzdbZoneRulesProvider());
 158                 }
 159                 return null;
 160             }
 161         });
 162 
 163         ServiceLoader<ZoneRulesProvider> sl = ServiceLoader.load(ZoneRulesProvider.class, ClassLoader.getSystemClassLoader());
 164         Iterator<ZoneRulesProvider> it = sl.iterator();
 165         while (it.hasNext()) {
 166             ZoneRulesProvider provider;
 167             try {
 168                 provider = it.next();
 169             } catch (ServiceConfigurationError ex) {




 130 
 131     /**
 132      * The set of loaded providers.
 133      */
 134     private static final CopyOnWriteArrayList<ZoneRulesProvider> PROVIDERS = new CopyOnWriteArrayList<>();
 135     /**
 136      * The lookup from zone ID to provider.
 137      */
 138     private static final ConcurrentMap<String, ZoneRulesProvider> ZONES = new ConcurrentHashMap<>(512, 0.75f, 2);
 139 
 140     static {
 141         // if the property java.time.zone.DefaultZoneRulesProvider is
 142         // set then its value is the class name of the default provider
 143         final List<ZoneRulesProvider> loaded = new ArrayList<>();
 144         AccessController.doPrivileged(new PrivilegedAction<>() {
 145             public Object run() {
 146                 String prop = System.getProperty("java.time.zone.DefaultZoneRulesProvider");
 147                 if (prop != null) {
 148                     try {
 149                         Class<?> c = Class.forName(prop, true, ClassLoader.getSystemClassLoader());
 150                         @SuppressWarnings("deprecation")
 151                         ZoneRulesProvider provider = ZoneRulesProvider.class.cast(c.newInstance());
 152                         registerProvider(provider);
 153                         loaded.add(provider);
 154                     } catch (Exception x) {
 155                         throw new Error(x);
 156                     }
 157                 } else {
 158                     registerProvider(new TzdbZoneRulesProvider());
 159                 }
 160                 return null;
 161             }
 162         });
 163 
 164         ServiceLoader<ZoneRulesProvider> sl = ServiceLoader.load(ZoneRulesProvider.class, ClassLoader.getSystemClassLoader());
 165         Iterator<ZoneRulesProvider> it = sl.iterator();
 166         while (it.hasNext()) {
 167             ZoneRulesProvider provider;
 168             try {
 169                 provider = it.next();
 170             } catch (ServiceConfigurationError ex) {


< prev index next >