You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by cm...@apache.org on 2012/09/23 17:31:55 UTC
svn commit: r1389080 - in /camel/branches/camel-2.9.x/camel-core/src:
main/java/org/apache/camel/util/FileUtil.java
test/java/org/apache/camel/util/FileUtilTest.java
Author: cmueller
Date: Sun Sep 23 15:31:55 2012
New Revision: 1389080
URL: http://svn.apache.org/viewvc?rev=1389080&view=rev
Log:
fixed a regression in camel-ftp which was introduced with rev 1388906
Modified:
camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/util/FileUtil.java
camel/branches/camel-2.9.x/camel-core/src/test/java/org/apache/camel/util/FileUtilTest.java
Modified: camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/util/FileUtil.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/util/FileUtil.java?rev=1389080&r1=1389079&r2=1389080&view=diff
==============================================================================
--- camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/util/FileUtil.java (original)
+++ camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/util/FileUtil.java Sun Sep 23 15:31:55 2012
@@ -218,6 +218,9 @@ public final class FileUtil {
// preserve ending slash if given in input path
boolean endsWithSlash = path.endsWith("/") || path.endsWith("\\");
+ // preserve starting slash if given in input path
+ boolean startsWithSlash = path.startsWith("/") || path.startsWith("\\");
+
Stack<String> stack = new Stack<String>();
String separatorRegex = File.separator;
@@ -230,7 +233,7 @@ public final class FileUtil {
// only pop if there is a previous path, which is not a ".." path either
stack.pop();
} else if (part.equals(".") || part.isEmpty()) {
- // do nothing because we don't want a path like foo/./bar
+ // do nothing because we don't want a path like foo/./bar or foo//bar
} else {
stack.push(part);
}
@@ -238,6 +241,11 @@ public final class FileUtil {
// build path based on stack
StringBuilder sb = new StringBuilder();
+
+ if (startsWithSlash) {
+ sb.append(File.separator);
+ }
+
for (Iterator<String> it = stack.iterator(); it.hasNext();) {
sb.append(it.next());
if (it.hasNext()) {
Modified: camel/branches/camel-2.9.x/camel-core/src/test/java/org/apache/camel/util/FileUtilTest.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.9.x/camel-core/src/test/java/org/apache/camel/util/FileUtilTest.java?rev=1389080&r1=1389079&r2=1389080&view=diff
==============================================================================
--- camel/branches/camel-2.9.x/camel-core/src/test/java/org/apache/camel/util/FileUtilTest.java (original)
+++ camel/branches/camel-2.9.x/camel-core/src/test/java/org/apache/camel/util/FileUtilTest.java Sun Sep 23 15:31:55 2012
@@ -146,6 +146,7 @@ public class FileUtilTest extends TestCa
assertEquals("..\\foo\\bar", FileUtil.compactPath("..\\foo\\bar"));
assertEquals("foo\\bar\\baz", FileUtil.compactPath("foo\\bar\\.\\baz"));
assertEquals("foo\\bar\\baz", FileUtil.compactPath("foo\\bar\\\\baz"));
+ assertEquals("\\foo\\bar\\baz", FileUtil.compactPath("\\foo\\bar\\baz"));
} else {
assertEquals("../foo", FileUtil.compactPath("../foo"));
assertEquals("../../foo", FileUtil.compactPath("../../foo"));
@@ -160,6 +161,7 @@ public class FileUtilTest extends TestCa
assertEquals("../foo/bar", FileUtil.compactPath("../foo/bar"));
assertEquals("foo/bar/baz", FileUtil.compactPath("foo/bar/./baz"));
assertEquals("foo/bar/baz", FileUtil.compactPath("foo/bar//baz"));
+ assertEquals("/foo/bar/baz", FileUtil.compactPath("/foo/bar/baz"));
}
}