Author: niallp
Date: Wed Sep 29 18:51:30 2010
New Revision: 1002806

URL: http://svn.apache.org/viewvc?rev=1002806&view=rev
Log:
IO-248 FilenameUtils - getFullPathNoEndSeparator returns empty while path is a 
one level directory - thanks to hippo spark for the patch

Modified:
    commons/proper/io/trunk/src/java/org/apache/commons/io/FilenameUtils.java
    
commons/proper/io/trunk/src/test/org/apache/commons/io/FilenameUtilsTestCase.java

Modified: 
commons/proper/io/trunk/src/java/org/apache/commons/io/FilenameUtils.java
URL: 
http://svn.apache.org/viewvc/commons/proper/io/trunk/src/java/org/apache/commons/io/FilenameUtils.java?rev=1002806&r1=1002805&r2=1002806&view=diff
==============================================================================
--- commons/proper/io/trunk/src/java/org/apache/commons/io/FilenameUtils.java 
(original)
+++ commons/proper/io/trunk/src/java/org/apache/commons/io/FilenameUtils.java 
Wed Sep 29 18:51:30 2010
@@ -887,6 +887,9 @@ public class FilenameUtils {
             return filename.substring(0, prefix);
         }
         int end = index + (includeSeparator ?  1 : 0);
+        if (end == 0) {
+            end++;
+        }
         return filename.substring(0, end);
     }
 

Modified: 
commons/proper/io/trunk/src/test/org/apache/commons/io/FilenameUtilsTestCase.java
URL: 
http://svn.apache.org/viewvc/commons/proper/io/trunk/src/test/org/apache/commons/io/FilenameUtilsTestCase.java?rev=1002806&r1=1002805&r2=1002806&view=diff
==============================================================================
--- 
commons/proper/io/trunk/src/test/org/apache/commons/io/FilenameUtilsTestCase.java
 (original)
+++ 
commons/proper/io/trunk/src/test/org/apache/commons/io/FilenameUtilsTestCase.java
 Wed Sep 29 18:51:30 2010
@@ -704,6 +704,24 @@ public class FilenameUtilsTestCase exten
         assertEquals("~user/a/b", 
FilenameUtils.getFullPathNoEndSeparator("~user/a/b/c.txt"));
     }
 
+    /**
+     * Test for https://issues.apache.org/jira/browse/IO-248
+     */
+    public void testGetFullPathNoEndSeparator_IO_248() {
+
+        // Test single separator
+        assertEquals("/",  FilenameUtils.getFullPathNoEndSeparator("/"));
+        assertEquals("\\", FilenameUtils.getFullPathNoEndSeparator("\\"));
+
+        // Test one level directory
+        assertEquals("/",  FilenameUtils.getFullPathNoEndSeparator("/abc"));
+        assertEquals("\\", FilenameUtils.getFullPathNoEndSeparator("\\abc"));
+
+        // Test one level directory
+        assertEquals("/abc",  
FilenameUtils.getFullPathNoEndSeparator("/abc/xyz"));
+        assertEquals("\\abc", 
FilenameUtils.getFullPathNoEndSeparator("\\abc\\xyz"));
+    }
+
     public void testGetName() {
         assertEquals(null, FilenameUtils.getName(null));
         assertEquals("noseperator.inthispath", 
FilenameUtils.getName("noseperator.inthispath"));


Reply via email to