James Moger
2012-07-11 a31cf95ac0787eb559cb78f48c52bc6b79e970d8
src/com/gitblit/GitBlit.java
@@ -56,6 +56,8 @@
import org.eclipse.jgit.lib.Repository;
import org.eclipse.jgit.lib.RepositoryCache.FileKey;
import org.eclipse.jgit.lib.StoredConfig;
import org.eclipse.jgit.storage.file.WindowCache;
import org.eclipse.jgit.storage.file.WindowCacheConfig;
import org.eclipse.jgit.transport.resolver.FileResolver;
import org.eclipse.jgit.transport.resolver.RepositoryResolver;
import org.eclipse.jgit.transport.resolver.ServiceNotAuthorizedException;
@@ -185,6 +187,15 @@
         self().timezone = TimeZone.getTimeZone(tzid);
      }
      return self().timezone;
   }
   /**
    * Returns the user-defined blob encodings.
    *
    * @return an array of encodings, may be empty
    */
   public static String [] getEncodings() {
      return getStrings(Keys.web.blobEncodings).toArray(new String[0]);
   }
   
@@ -501,9 +512,15 @@
            userCookie = new Cookie(Constants.NAME, "");
         } else {
            // set cookie for login
            char[] cookie = userService.getCookie(user);
            userCookie = new Cookie(Constants.NAME, new String(cookie));
            userCookie.setMaxAge(Integer.MAX_VALUE);
            String cookie = userService.getCookie(user);
            if (StringUtils.isEmpty(cookie)) {
               // create empty cookie
               userCookie = new Cookie(Constants.NAME, "");
            } else {
               // create real cookie
               userCookie = new Cookie(Constants.NAME, cookie);
               userCookie.setMaxAge(Integer.MAX_VALUE);
            }
         }
         userCookie.setPath("/");
         response.addCookie(userCookie);
@@ -1812,9 +1829,13 @@
      // ensure that the current values are updated in the setting models
      for (String key : settings.getAllKeys(null)) {
         SettingModel setting = settingsModel.get(key);
         if (setting != null) {
            setting.currentValue = settings.getString(key, "");
         if (setting == null) {
            // unreferenced setting, create a setting model
            setting = new SettingModel();
            setting.name = key;
            settingsModel.add(setting);
         }
         setting.currentValue = settings.getString(key, "");
      }
      settingsModel.pushScripts = getAllScripts();
      return settingsModel;
@@ -1929,7 +1950,29 @@
      scheduledExecutor.scheduleAtFixedRate(luceneExecutor, 1, 2, TimeUnit.MINUTES);
      if (startFederation) {
         configureFederation();
      }
      }
      // Configure JGit
      WindowCacheConfig cfg = new WindowCacheConfig();
      cfg.setPackedGitWindowSize(settings.getFilesize(Keys.git.packedGitWindowSize, cfg.getPackedGitWindowSize()));
      cfg.setPackedGitLimit(settings.getFilesize(Keys.git.packedGitLimit, cfg.getPackedGitLimit()));
      cfg.setDeltaBaseCacheLimit(settings.getFilesize(Keys.git.deltaBaseCacheLimit, cfg.getDeltaBaseCacheLimit()));
      cfg.setPackedGitOpenFiles(settings.getFilesize(Keys.git.packedGitOpenFiles, cfg.getPackedGitOpenFiles()));
      cfg.setStreamFileThreshold(settings.getFilesize(Keys.git.streamFileThreshold, cfg.getStreamFileThreshold()));
      cfg.setPackedGitMMAP(settings.getBoolean(Keys.git.packedGitMmap, cfg.isPackedGitMMAP()));
      try {
         WindowCache.reconfigure(cfg);
         logger.debug(MessageFormat.format("{0} = {1,number,0}", Keys.git.packedGitWindowSize, cfg.getPackedGitWindowSize()));
         logger.debug(MessageFormat.format("{0} = {1,number,0}", Keys.git.packedGitLimit, cfg.getPackedGitLimit()));
         logger.debug(MessageFormat.format("{0} = {1,number,0}", Keys.git.deltaBaseCacheLimit, cfg.getDeltaBaseCacheLimit()));
         logger.debug(MessageFormat.format("{0} = {1,number,0}", Keys.git.packedGitOpenFiles, cfg.getPackedGitOpenFiles()));
         logger.debug(MessageFormat.format("{0} = {1,number,0}", Keys.git.streamFileThreshold, cfg.getStreamFileThreshold()));
         logger.debug(MessageFormat.format("{0} = {1}", Keys.git.packedGitMmap, cfg.isPackedGitMMAP()));
      } catch (IllegalArgumentException e) {
         logger.error("Failed to configure JGit parameters!", e);
      }
   }
   
   private void logTimezone(String type, TimeZone zone) {