From 17d682f83b69f1ee92571fac3824968b5f49d613 Mon Sep 17 00:00:00 2001 From: KOUNOIKE Yuusuke Date: Thu, 1 Feb 2018 02:41:43 +0900 Subject: [PATCH] fix 1872. java.io.File#getParent returns path with "\" instead of "/". so don't use this method. --- .../gitbucket/core/controller/ApiController.scala | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/main/scala/gitbucket/core/controller/ApiController.scala b/src/main/scala/gitbucket/core/controller/ApiController.scala index 6d397d124..6ba77d5a7 100644 --- a/src/main/scala/gitbucket/core/controller/ApiController.scala +++ b/src/main/scala/gitbucket/core/controller/ApiController.scala @@ -145,12 +145,13 @@ trait ApiControllerBase extends ControllerBase { */ get("/api/v3/repos/:owner/:repo/contents/*")(referrersOnly { repository => def getFileInfo(git: Git, revision: String, pathStr: String): Option[FileInfo] = { - val path = new java.io.File(pathStr) - val dirName = path.getParent match { - case null => "." - case s => s + val (dirName, fileName) = pathStr.lastIndexOf('/') match { + case -1 => + (".", pathStr) + case n => + (pathStr.take(n), pathStr.drop(n + 1)) } - getFileList(git, revision, dirName).find(f => f.name.equals(path.getName)) + getFileList(git, revision, dirName).find(f => f.name.equals(fileName)) } val path = multiParams("splat").head match {