From 47a544e3ffcd20f968a505b0efa61e99cf3af46a Mon Sep 17 00:00:00 2001 From: krulls <stephan.krull@ecg-leipzig.de> Date: Thu, 26 Feb 2015 04:31:14 -0500 Subject: [PATCH] issue 564: enable ticket page update on tomcat with redirects --- src/main/java/com/gitblit/utils/FileUtils.java | 20 ++++++-------------- 1 files changed, 6 insertions(+), 14 deletions(-) diff --git a/src/main/java/com/gitblit/utils/FileUtils.java b/src/main/java/com/gitblit/utils/FileUtils.java index a1eb5bb..e7f0104 100644 --- a/src/main/java/com/gitblit/utils/FileUtils.java +++ b/src/main/java/com/gitblit/utils/FileUtils.java @@ -26,6 +26,8 @@ import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.nio.charset.Charset; +import java.nio.file.Path; +import java.nio.file.Paths; /** * Common file utilities. @@ -291,20 +293,10 @@ * @return a relative path from basePath to path */ public static String getRelativePath(File basePath, File path) { - File exactBase = getExactFile(basePath); - File exactPath = getExactFile(path); - if (path.getAbsolutePath().startsWith(basePath.getAbsolutePath())) { - // absolute base-path match - return StringUtils.getRelativePath(basePath.getAbsolutePath(), path.getAbsolutePath()); - } else if (exactPath.getPath().startsWith(exactBase.getPath())) { - // canonical base-path match - return StringUtils.getRelativePath(exactBase.getPath(), exactPath.getPath()); - } else if (exactPath.getPath().startsWith(basePath.getAbsolutePath())) { - // mixed path match - return StringUtils.getRelativePath(basePath.getAbsolutePath(), exactPath.getPath()); - } else if (path.getAbsolutePath().startsWith(exactBase.getPath())) { - // mixed path match - return StringUtils.getRelativePath(exactBase.getPath(), path.getAbsolutePath()); + Path exactBase = Paths.get(getExactFile(basePath).toURI()); + Path exactPath = Paths.get(getExactFile(path).toURI()); + if (exactPath.startsWith(exactBase)) { + return exactBase.relativize(exactPath).toString().replace('\\', '/'); } // no relative relationship return null; -- Gitblit v1.9.1