From 388a233e8ec78c5d7279f9cef85245ea3c85534e Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Fri, 28 Feb 2014 14:04:37 -0500 Subject: [PATCH] Move GarbageCollector repository methods to the RepositoryManager --- src/main/java/com/gitblit/service/GarbageCollectorService.java | 23 +---------------------- 1 files changed, 1 insertions(+), 22 deletions(-) diff --git a/src/main/java/com/gitblit/service/GarbageCollectorService.java b/src/main/java/com/gitblit/service/GarbageCollectorService.java index 8dbd8d8..b98560f 100644 --- a/src/main/java/com/gitblit/service/GarbageCollectorService.java +++ b/src/main/java/com/gitblit/service/GarbageCollectorService.java @@ -15,7 +15,6 @@ */ package com.gitblit.service; -import java.lang.reflect.Field; import java.text.MessageFormat; import java.util.Calendar; import java.util.Date; @@ -23,7 +22,6 @@ import java.util.Properties; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.atomic.AtomicBoolean; -import java.util.concurrent.atomic.AtomicInteger; import org.eclipse.jgit.api.GarbageCollectCommand; import org.eclipse.jgit.api.Git; @@ -33,7 +31,6 @@ import com.gitblit.IStoredSettings; import com.gitblit.Keys; -import com.gitblit.Keys.git; import com.gitblit.manager.IRepositoryManager; import com.gitblit.models.RepositoryModel; import com.gitblit.utils.FileUtils; @@ -160,7 +157,7 @@ continue; } - if (!isRepositoryIdle(repository)) { + if (!repositoryManager.isIdle(repository)) { logger.debug(MessageFormat.format("GCExecutor is skipping {0} because it is not idle", repositoryName)); continue; } @@ -227,23 +224,5 @@ } running.set(false); - } - - private boolean isRepositoryIdle(Repository repository) { - try { - // Read the use count. - // An idle use count is 2: - // +1 for being in the cache - // +1 for the repository parameter in this method - Field useCnt = Repository.class.getDeclaredField("useCnt"); - useCnt.setAccessible(true); - int useCount = ((AtomicInteger) useCnt.get(repository)).get(); - return useCount == 2; - } catch (Exception e) { - logger.warn(MessageFormat - .format("Failed to reflectively determine use count for repository {0}", - repository.getDirectory().getPath()), e); - } - return false; } } -- Gitblit v1.9.1