diff --git a/src/main/java/org/apache/maven/shared/utils/PathTool.java b/src/main/java/org/apache/maven/shared/utils/PathTool.java index 95ee050c..59cef004 100644 --- a/src/main/java/org/apache/maven/shared/utils/PathTool.java +++ b/src/main/java/org/apache/maven/shared/utils/PathTool.java @@ -164,14 +164,14 @@ public static String getRelativeFilePath(final String oldPath, final String newP && (!toPath.substring(0, 1).equals(fromPath.substring(0, 1)))) { // they both have drive path element but they dont match, no // relative path - return null; + return ""; } if ((toPath.startsWith(":", 1) && !fromPath.startsWith(":", 1)) || (!toPath.startsWith(":", 1) && fromPath.startsWith(":", 1))) { // one has a drive path element and the other doesnt, no relative // path. - return null; + return ""; } String resultPath = buildRelativePath(toPath, fromPath, File.separatorChar); diff --git a/src/test/java/org/apache/maven/shared/utils/PathToolTest.java b/src/test/java/org/apache/maven/shared/utils/PathToolTest.java index 31537659..e1c98cbb 100644 --- a/src/test/java/org/apache/maven/shared/utils/PathToolTest.java +++ b/src/test/java/org/apache/maven/shared/utils/PathToolTest.java @@ -57,6 +57,8 @@ public void testGetRelativeFilePathNonWindows() { assertEquals("../../bin", PathTool.getRelativeFilePath("/usr/local/", "/bin")); assertEquals("../usr/local/", PathTool.getRelativeFilePath("/bin", "/usr/local/")); + + assertEquals("", PathTool.getRelativeFilePath("c:/usr/local", "d:/java/bin")); } @Test @@ -85,6 +87,8 @@ public void testGetRelativeFilePathWindows() { assertEquals("..\\..\\bin", PathTool.getRelativeFilePath("c:\\usr\\local\\", "c:\\bin")); assertEquals("..\\usr\\local\\", PathTool.getRelativeFilePath("c:\\bin", "c:\\usr\\local\\")); + + assertEquals("", PathTool.getRelativeFilePath("c:\\usr\\local", "d:\\java\\bin")); } @Test