diff --git a/plugins/scm-git-plugin/src/main/java/sonia/scm/web/GitRepositoryResolver.java b/plugins/scm-git-plugin/src/main/java/sonia/scm/web/GitRepositoryResolver.java index 24e6e3b5c4..4de040b992 100644 --- a/plugins/scm-git-plugin/src/main/java/sonia/scm/web/GitRepositoryResolver.java +++ b/plugins/scm-git-plugin/src/main/java/sonia/scm/web/GitRepositoryResolver.java @@ -44,7 +44,11 @@ import org.eclipse.jgit.transport.resolver.ServiceNotAuthorizedException; import org.eclipse.jgit.transport.resolver.ServiceNotEnabledException; import org.eclipse.jgit.util.FS; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import sonia.scm.repository.GitConfig; +import sonia.scm.repository.GitRepositoryHandler; //~--- JDK imports ------------------------------------------------------------ @@ -61,15 +65,22 @@ public class GitRepositoryResolver implements RepositoryResolver { + /** the logger for GitRepositoryResolver */ + private static final Logger logger = + LoggerFactory.getLogger(GitRepositoryResolver.class); + + //~--- constructors --------------------------------------------------------- + /** * Constructs ... * * - * @param config + * + * @param handler */ - public GitRepositoryResolver(GitConfig config) + public GitRepositoryResolver(GitRepositoryHandler handler) { - this.config = config; + this.handler = handler; } //~--- get methods ---------------------------------------------------------- @@ -151,15 +162,25 @@ public class GitRepositoryResolver try { - File gitdir = new File(config.getRepositoryDirectory(), repositoryName); + GitConfig config = handler.getConfig(); - if (!gitdir.exists()) + if (config.isValid()) { - throw new RepositoryNotFoundException(repositoryName); - } + File gitdir = new File(config.getRepositoryDirectory(), repositoryName); - repository = RepositoryCache.open(FileKey.lenient(gitdir, FS.DETECTED), - true); + if (logger.isDebugEnabled()) + { + logger.debug("try to open git repository at {}", gitdir); + } + + if (!gitdir.exists()) + { + throw new RepositoryNotFoundException(repositoryName); + } + + repository = RepositoryCache.open(FileKey.lenient(gitdir, FS.DETECTED), + true); + } } catch (RuntimeException e) { @@ -176,5 +197,5 @@ public class GitRepositoryResolver //~--- fields --------------------------------------------------------------- /** Field description */ - private GitConfig config; + private GitRepositoryHandler handler; } diff --git a/plugins/scm-git-plugin/src/main/java/sonia/scm/web/ScmGitServlet.java b/plugins/scm-git-plugin/src/main/java/sonia/scm/web/ScmGitServlet.java index 89d769cd53..1efac88ef7 100644 --- a/plugins/scm-git-plugin/src/main/java/sonia/scm/web/ScmGitServlet.java +++ b/plugins/scm-git-plugin/src/main/java/sonia/scm/web/ScmGitServlet.java @@ -86,7 +86,7 @@ public class ScmGitServlet extends GitServlet @Inject public ScmGitServlet(GitRepositoryHandler handler) { - resolver = new GitRepositoryResolver(handler.getConfig()); + resolver = new GitRepositoryResolver(handler); setRepositoryResolver(resolver); }