[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