From d33087d2f32ec0ef3685cb7e096f56ea745bc783 Mon Sep 17 00:00:00 2001 From: Benson Margulies Date: Wed, 22 Jul 2015 08:42:59 -0400 Subject: [PATCH] FELIX-4969: use the URI class to handle resolution of absolute or relative pathnames in 'cd'. --- .../main/java/org/apache/felix/gogo/command/Files.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/gogo/command/src/main/java/org/apache/felix/gogo/command/Files.java b/gogo/command/src/main/java/org/apache/felix/gogo/command/Files.java index d5960e629e9..43bb4cf9234 100644 --- a/gogo/command/src/main/java/org/apache/felix/gogo/command/Files.java +++ b/gogo/command/src/main/java/org/apache/felix/gogo/command/Files.java @@ -21,6 +21,7 @@ import java.io.File; import java.io.FileFilter; import java.io.IOException; +import java.net.URI; import java.util.ArrayList; import java.util.List; import org.apache.felix.service.command.CommandSession; @@ -68,7 +69,11 @@ public File cd( { return cwd; } - cwd = new File(cwd, dir); + + URI curUri = cwd.toURI(); + URI newUri = curUri.resolve(dir); + + cwd = new File(newUri); if (!cwd.exists()) { throw new IOException("Directory does not exist"); @@ -290,4 +295,4 @@ public static boolean compareSubstring(List pieces, String s) return result; } -} \ No newline at end of file +}