src/solaris/classes/java/util/prefs/FileSystemPreferences.java

Print this page




  86     private static boolean isUserRootWritable;
  87 
  88    /**
  89      * The user root.
  90      */
  91     static Preferences userRoot = null;
  92 
  93     static synchronized Preferences getUserRoot() {
  94         if (userRoot == null) {
  95             setupUserRoot();
  96             userRoot = new FileSystemPreferences(true);
  97         }
  98         return userRoot;
  99     }
 100 
 101     private static void setupUserRoot() {
 102         AccessController.doPrivileged(new PrivilegedAction<Void>() {
 103             public Void run() {
 104                 userRootDir =
 105                       new File(System.getProperty("java.util.prefs.userRoot",
 106                       System.getProperty("user.home")), ".java/.userPrefs");
 107                 // Attempt to create root dir if it does not yet exist.
 108                 if (!userRootDir.exists()) {
 109                     if (userRootDir.mkdirs()) {
 110                         try {
 111                             chmod(userRootDir.getCanonicalPath(), USER_RWX);
 112                         } catch (IOException e) {
 113                             getLogger().warning("Could not change permissions" +
 114                                 " on userRoot directory. ");
 115                         }
 116                         getLogger().info("Created user preferences directory.");
 117                     }
 118                     else
 119                         getLogger().warning("Couldn't create user preferences" +
 120                         " directory. User preferences are unusable.");
 121                 }
 122                 isUserRootWritable = userRootDir.canWrite();
 123                 String USER_NAME = System.getProperty("user.name");
 124                 userLockFile = new File (userRootDir,".user.lock." + USER_NAME);
 125                 userRootModFile = new File (userRootDir,
 126                                                ".userRootModFile." + USER_NAME);


 146     }
 147 
 148 
 149     /**
 150      * The system root.
 151      */
 152     static Preferences systemRoot;
 153 
 154     static synchronized Preferences getSystemRoot() {
 155         if (systemRoot == null) {
 156             setupSystemRoot();
 157             systemRoot = new FileSystemPreferences(false);
 158         }
 159         return systemRoot;
 160     }
 161 
 162     private static void setupSystemRoot() {
 163         AccessController.doPrivileged(new PrivilegedAction<Void>() {
 164             public Void run() {
 165                 String systemPrefsDirName =
 166                   System.getProperty("java.util.prefs.systemRoot","/etc/.java");
 167                 systemRootDir =
 168                      new File(systemPrefsDirName, ".systemPrefs");
 169                 // Attempt to create root dir if it does not yet exist.
 170                 if (!systemRootDir.exists()) {
 171                     // system root does not exist in /etc/.java
 172                     // Switching  to java.home
 173                     systemRootDir =
 174                                   new File(System.getProperty("java.home"),
 175                                                             ".systemPrefs");
 176                     if (!systemRootDir.exists()) {
 177                         if (systemRootDir.mkdirs()) {
 178                             getLogger().info(
 179                                 "Created system preferences directory "
 180                                 + "in java.home.");
 181                             try {
 182                                 chmod(systemRootDir.getCanonicalPath(),
 183                                                           USER_RWX_ALL_RX);
 184                             } catch (IOException e) {
 185                             }
 186                         } else {
 187                             getLogger().warning("Could not create "
 188                                 + "system preferences directory. System "
 189                                 + "preferences are unusable.");
 190                         }
 191                     }
 192                 }
 193                 isSystemRootWritable = systemRootDir.canWrite();
 194                 systemLockFile = new File(systemRootDir, ".system.lock");
 195                 systemRootModFile =




  86     private static boolean isUserRootWritable;
  87 
  88    /**
  89      * The user root.
  90      */
  91     static Preferences userRoot = null;
  92 
  93     static synchronized Preferences getUserRoot() {
  94         if (userRoot == null) {
  95             setupUserRoot();
  96             userRoot = new FileSystemPreferences(true);
  97         }
  98         return userRoot;
  99     }
 100 
 101     private static void setupUserRoot() {
 102         AccessController.doPrivileged(new PrivilegedAction<Void>() {
 103             public Void run() {
 104                 userRootDir =
 105                       new File(System.getProperty("java.util.prefs.userRoot",
 106                       System.getProperty("user.home")), ".java/user-prefs");
 107                 // Attempt to create root dir if it does not yet exist.
 108                 if (!userRootDir.exists()) {
 109                     if (userRootDir.mkdirs()) {
 110                         try {
 111                             chmod(userRootDir.getCanonicalPath(), USER_RWX);
 112                         } catch (IOException e) {
 113                             getLogger().warning("Could not change permissions" +
 114                                 " on userRoot directory. ");
 115                         }
 116                         getLogger().info("Created user preferences directory.");
 117                     }
 118                     else
 119                         getLogger().warning("Couldn't create user preferences" +
 120                         " directory. User preferences are unusable.");
 121                 }
 122                 isUserRootWritable = userRootDir.canWrite();
 123                 String USER_NAME = System.getProperty("user.name");
 124                 userLockFile = new File (userRootDir,".user.lock." + USER_NAME);
 125                 userRootModFile = new File (userRootDir,
 126                                                ".userRootModFile." + USER_NAME);


 146     }
 147 
 148 
 149     /**
 150      * The system root.
 151      */
 152     static Preferences systemRoot;
 153 
 154     static synchronized Preferences getSystemRoot() {
 155         if (systemRoot == null) {
 156             setupSystemRoot();
 157             systemRoot = new FileSystemPreferences(false);
 158         }
 159         return systemRoot;
 160     }
 161 
 162     private static void setupSystemRoot() {
 163         AccessController.doPrivileged(new PrivilegedAction<Void>() {
 164             public Void run() {
 165                 String systemPrefsDirName =
 166                   System.getProperty("java.util.prefs.systemRoot","/etc/java");
 167                 systemRootDir =
 168                      new File(systemPrefsDirName, "system-prefs");
 169                 // Attempt to create root dir if it does not yet exist.
 170                 if (!systemRootDir.exists()) {
 171                     // system root does not exist in /etc/java
 172                     // Switching  to java.home
 173                     systemRootDir =
 174                                   new File(System.getProperty("java.home"),
 175                                                             "system-prefs");
 176                     if (!systemRootDir.exists()) {
 177                         if (systemRootDir.mkdirs()) {
 178                             getLogger().info(
 179                                 "Created system preferences directory "
 180                                 + "in java.home.");
 181                             try {
 182                                 chmod(systemRootDir.getCanonicalPath(),
 183                                                           USER_RWX_ALL_RX);
 184                             } catch (IOException e) {
 185                             }
 186                         } else {
 187                             getLogger().warning("Could not create "
 188                                 + "system preferences directory. System "
 189                                 + "preferences are unusable.");
 190                         }
 191                     }
 192                 }
 193                 isSystemRootWritable = systemRootDir.canWrite();
 194                 systemLockFile = new File(systemRootDir, ".system.lock");
 195                 systemRootModFile =