James Moger
2014-05-22 93b795c6e4aa28960cbe9ae5c3b1a2da1f2083d7
src/main/java/com/gitblit/manager/RepositoryManager.java
@@ -684,7 +684,8 @@
      // http://stackoverflow.com/questions/17183110
      repositoryName = repositoryName.replace("%7E", "~").replace("%7e", "~");
      if (!repositoryListCache.containsKey(repositoryName)) {
      String repositoryKey = repositoryName.toLowerCase();
      if (!repositoryListCache.containsKey(repositoryKey)) {
         RepositoryModel model = loadRepositoryModel(repositoryName);
         if (model == null) {
            return null;
@@ -694,7 +695,7 @@
      }
      // cached model
      RepositoryModel model = repositoryListCache.get(repositoryName.toLowerCase());
      RepositoryModel model = repositoryListCache.get(repositoryKey);
      if (gcExecutor.isCollectingGarbage(model.name)) {
         // Gitblit is busy collecting garbage, use our cached model
@@ -1535,6 +1536,17 @@
   }
   /**
    * Returns true if the repository can be deleted.
    *
    * @return true if the repository can be deleted
    */
   @Override
   public boolean canDelete(RepositoryModel repository) {
      return settings.getBoolean(Keys.web.allowDeletingNonEmptyRepositories, true)
               || !repository.hasCommits;
   }
   /**
    * Deletes the repository from the file system and removes the repository
    * permission from all repository users.
    *
@@ -1555,6 +1567,12 @@
    */
   @Override
   public boolean deleteRepository(String repositoryName) {
      RepositoryModel repository = getRepositoryModel(repositoryName);
      if (!canDelete(repository)) {
         logger.warn("Attempt to delete {} rejected!", repositoryName);
         return false;
      }
      try {
         close(repositoryName);
         // clear the repository cache