[jboss-cvs] JBossAS SVN: r80630 - in projects/vfs/trunk/src: test/java/org/jboss/test/virtual/test and 1 other directory.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Fri Nov 7 04:15:28 EST 2008
Author: alesj
Date: 2008-11-07 04:15:27 -0500 (Fri, 07 Nov 2008)
New Revision: 80630
Removed:
projects/vfs/trunk/src/test/java/org/jboss/test/virtual/test/jbvfs68/
Modified:
projects/vfs/trunk/src/main/java/org/jboss/virtual/plugins/vfs/helpers/PathTokenizer.java
projects/vfs/trunk/src/test/java/org/jboss/test/virtual/test/PathTokensTestCase.java
Log:
[JBVFS-68]; handle '.somepath' as valid.
Modified: projects/vfs/trunk/src/main/java/org/jboss/virtual/plugins/vfs/helpers/PathTokenizer.java
===================================================================
--- projects/vfs/trunk/src/main/java/org/jboss/virtual/plugins/vfs/helpers/PathTokenizer.java 2008-11-07 08:47:04 UTC (rev 80629)
+++ projects/vfs/trunk/src/main/java/org/jboss/virtual/plugins/vfs/helpers/PathTokenizer.java 2008-11-07 09:15:27 UTC (rev 80630)
@@ -117,12 +117,14 @@
}
else if (ch == '.')
{
- if (specialToken == null && buffer.length() == 0)
+ int bufferLength = buffer.length();
+
+ if (specialToken == null && bufferLength == 0)
specialToken = CURRENT_PATH;
- else if (specialToken == CURRENT_PATH && buffer.length() == 0)
+ else if (specialToken == CURRENT_PATH && bufferLength == 0)
specialToken = REVERSE_PATH;
- else if (specialToken != null && buffer.length() == 0)
- throw new IllegalArgumentException("Illegal token in path: " + path);
+ else if (specialToken == REVERSE_PATH && bufferLength == 0)
+ throw new IllegalArgumentException("Illegal token (" + specialToken + ch + ") in path: " + path);
else
buffer.append(ch);
}
@@ -130,8 +132,15 @@
{
// token starts with '.' or '..', but also has some path after that
if (specialToken != null)
- throw new IllegalArgumentException("Illegal token in path: " + path);
+ {
+ // we don't allow tokens after '..'
+ if (specialToken == REVERSE_PATH)
+ throw new IllegalArgumentException("Illegal token (" + specialToken + ch + ") in path: " + path);
+ // after '.' more path is legal == unix hidden directories
+ buffer.append(specialToken);
+ specialToken = null;
+ }
buffer.append(ch);
}
}
Modified: projects/vfs/trunk/src/test/java/org/jboss/test/virtual/test/PathTokensTestCase.java
===================================================================
--- projects/vfs/trunk/src/test/java/org/jboss/test/virtual/test/PathTokensTestCase.java 2008-11-07 08:47:04 UTC (rev 80629)
+++ projects/vfs/trunk/src/test/java/org/jboss/test/virtual/test/PathTokensTestCase.java 2008-11-07 09:15:27 UTC (rev 80630)
@@ -23,10 +23,13 @@
import java.io.IOException;
import java.net.URL;
+import java.util.List;
+import java.util.Arrays;
import junit.framework.Test;
import org.jboss.virtual.VFS;
import org.jboss.virtual.VirtualFile;
+import org.jboss.virtual.plugins.vfs.helpers.PathTokenizer;
/**
* Test path tokens.
@@ -103,4 +106,13 @@
testValidPath("//context///jar//");
testValidPath("//context///jar///");
}
+
+ public void testHiddenUnixPath() throws Throwable
+ {
+ // the trick is the .hudson bit
+ String path = "/home/hudson/.hudson/";
+ List<String> tokens = PathTokenizer.getTokens(path);
+ List<String> expected = Arrays.asList("home", "hudson", ".hudson");
+ assertEquals(expected, tokens);
+ }
}
\ No newline at end of file
More information about the jboss-cvs-commits
mailing list