jdk/src/share/classes/sun/util/calendar/ZoneInfoFile.java
changeset 6499 7d8804ed110b
parent 5506 202f599c92aa
child 7668 d4a77089c587
equal deleted inserted replaced
6498:cc2bc2a2194a 6499:7d8804ed110b
    28 import  java.io.File;
    28 import  java.io.File;
    29 import  java.io.FileInputStream;
    29 import  java.io.FileInputStream;
    30 import  java.io.FileNotFoundException;
    30 import  java.io.FileNotFoundException;
    31 import  java.io.IOException;
    31 import  java.io.IOException;
    32 import  java.lang.ref.SoftReference;
    32 import  java.lang.ref.SoftReference;
       
    33 import  java.nio.file.FileSystems;
    33 import  java.security.AccessController;
    34 import  java.security.AccessController;
    34 import  java.security.PrivilegedAction;
    35 import  java.security.PrivilegedAction;
    35 import  java.security.PrivilegedActionException;
    36 import  java.security.PrivilegedActionException;
    36 import  java.security.PrivilegedExceptionAction;
    37 import  java.security.PrivilegedExceptionAction;
    37 import  java.util.ArrayList;
    38 import  java.util.ArrayList;
   470      */
   471      */
   471     public static final byte    TAG_ExcludedZones = 69;
   472     public static final byte    TAG_ExcludedZones = 69;
   472 
   473 
   473     private static Map<String, ZoneInfo> zoneInfoObjects = null;
   474     private static Map<String, ZoneInfo> zoneInfoObjects = null;
   474 
   475 
   475     private static final String ziDir;
   476     private static final String ziDir = AccessController.doPrivileged(
   476     static {
   477         new PrivilegedAction<String>() {
   477         String zi = (String) AccessController.doPrivileged(
   478             public String run() {
   478                          new sun.security.action.GetPropertyAction("java.home"))
   479                 String zi = System.getProperty("java.home") +
   479                     + File.separator + "lib" + File.separator + "zi";
   480                     File.separator + "lib" + File.separator + "zi";
   480         try {
   481                 try {
   481             zi = new File(zi).getCanonicalPath();
   482                     zi = FileSystems.getDefault().getPath(zi).toRealPath(true).toString();
   482         } catch (Exception e) {
   483                 } catch(Exception e) {
   483         }
   484                 }
   484         ziDir = zi;
   485                 return zi;
   485     }
   486             }
       
   487         });
   486 
   488 
   487     /**
   489     /**
   488      * Converts the given time zone ID to a platform dependent path
   490      * Converts the given time zone ID to a platform dependent path
   489      * name. For example, "America/Los_Angeles" is converted to
   491      * name. For example, "America/Los_Angeles" is converted to
   490      * "America\Los_Angeles" on Win32.
   492      * "America\Los_Angeles" on Win32.