James Moger
2012-04-11 a9eb6b1105cd47f00ae45dacda9af8e829ade191
src/com/gitblit/ConfigUserService.java
@@ -82,6 +82,8 @@
   private final Map<String, TeamModel> teams = new ConcurrentHashMap<String, TeamModel>();
   private volatile long lastModified;
   private volatile boolean forceReload;
   public ConfigUserService(File realmFile) {
      this.realmFile = realmFile;
@@ -711,6 +713,9 @@
      }
      config.save();
      // manually set the forceReload flag because not all JVMs support real
      // millisecond resolution of lastModified. (issue-55)
      forceReload = true;
      // If the write is successful, delete the current file and rename
      // the temporary copy to the original filename.
@@ -735,7 +740,8 @@
    * Reads the realm file and rebuilds the in-memory lookup tables.
    */
   protected synchronized void read() {
      if (realmFile.exists() && (realmFile.lastModified() > lastModified)) {
      if (realmFile.exists() && (forceReload || (realmFile.lastModified() != lastModified))) {
         forceReload = false;
         lastModified = realmFile.lastModified();
         users.clear();
         cookies.clear();
@@ -746,7 +752,7 @@
            config.load();
            Set<String> usernames = config.getSubsections(USER);
            for (String username : usernames) {
               UserModel user = new UserModel(username);
               UserModel user = new UserModel(username.toLowerCase());
               user.password = config.getString(USER, username, PASSWORD);
               // user roles
@@ -763,8 +769,8 @@
               }
               // update cache
               users.put(username, user);
               cookies.put(StringUtils.getSHA1(username + user.password), user);
               users.put(user.username, user);
               cookies.put(StringUtils.getSHA1(user.username + user.password), user);
            }
            // load the teams