From 8226073506f1cc06a4047f803b641a123b8261c8 Mon Sep 17 00:00:00 2001 From: rabitarochan Date: Fri, 19 Jul 2013 18:18:44 +0900 Subject: [PATCH] Fix resource leak. --- src/main/scala/service/WikiService.scala | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/src/main/scala/service/WikiService.scala b/src/main/scala/service/WikiService.scala index 8c0251594..918c5833e 100644 --- a/src/main/scala/service/WikiService.scala +++ b/src/main/scala/service/WikiService.scala @@ -119,10 +119,12 @@ trait WikiService { * Returns the list of wiki page names. */ def getWikiPageList(owner: String, repository: String): List[String] = { - JGitUtil.getFileList(Git.open(Directory.getWikiRepositoryDir(owner, repository)), "master", ".") - .filter(_.name.endsWith(".md")) - .map(_.name.replaceFirst("\\.md$", "")) - .sortBy(x => x) + JGitUtil.withGit(Directory.getWikiRepositoryDir(owner, repository)){ git => + JGitUtil.getFileList(git, "master", ".") + .filter(_.name.endsWith(".md")) + .map(_.name.replaceFirst("\\.md$", "")) + .sortBy(x => x) + } } /** @@ -210,12 +212,16 @@ trait WikiService { private def cloneOrPullWorkingCopy(workDir: File, owner: String, repository: String): Unit = { if(!workDir.exists){ - Git.cloneRepository - .setURI(Directory.getWikiRepositoryDir(owner, repository).toURI.toString) - .setDirectory(workDir) - .call + val git = + Git.cloneRepository + .setURI(Directory.getWikiRepositoryDir(owner, repository).toURI.toString) + .setDirectory(workDir) + .call + git.getRepository.close // close .git resources. } else { - Git.open(workDir).pull.call + JGitUtil.withGit(workDir){ git => + git.pull.call + } } }