You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by ap...@apache.org on 2006/11/02 21:07:03 UTC
svn commit: r470497 - in
/incubator/harmony/enhanced/classlib/trunk/modules/luni/src:
main/java/java/io/File.java
test/java/org/apache/harmony/luni/tests/java/io/FileTest.java
Author: apetrenko
Date: Thu Nov 2 12:07:02 2006
New Revision: 470497
URL: http://svn.apache.org/viewvc?view=rev&rev=470497
Log:
HARMONY-829 [classlib][io] unexpected result for java.io.File.compareTo(File) method
Modified:
incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/io/File.java
incubator/harmony/enhanced/classlib/trunk/modules/luni/src/test/java/org/apache/harmony/luni/tests/java/io/FileTest.java
Modified: incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/io/File.java
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/io/File.java?view=diff&rev=470497&r1=470496&r2=470497
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/io/File.java (original)
+++ incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/io/File.java Thu Nov 2 12:07:02 2006
@@ -169,19 +169,27 @@
}
private String calculatePath(String dirPath, String name) {
- // Remove all the proceeding separator chars from name
- name = fixSlashes(name);
- while (name.length() > 0 && (name.charAt(0) == separatorChar)) {
- name = name.substring(1, name.length());
- }
- // Ensure there is a separator char between dirPath and name
- dirPath = fixSlashes(dirPath);
- if (dirPath.length() > 0 && (dirPath.charAt(dirPath.length() - 1) == separatorChar)) {
- return dirPath + name;
- }
+ dirPath = fixSlashes(dirPath);
+
+ if (name != ""){
+
+ // Remove all the proceeding separator chars from name
+ name = fixSlashes(name);
+ while (name.length() > 0 && (name.charAt(0) == separatorChar)) {
+ name = name.substring(1, name.length());
+ }
- return dirPath + separatorChar + name;
+ // Ensure there is a separator char between dirPath and name
+ if (dirPath.length() > 0 && (dirPath.charAt(dirPath.length() - 1) == separatorChar)) {
+ return dirPath + name;
+ } else {
+ return dirPath + separatorChar + name;
+ }
+
+ }
+
+ return dirPath;
}
private void checkURI(URI uri) {
Modified: incubator/harmony/enhanced/classlib/trunk/modules/luni/src/test/java/org/apache/harmony/luni/tests/java/io/FileTest.java
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/luni/src/test/java/org/apache/harmony/luni/tests/java/io/FileTest.java?view=diff&rev=470497&r1=470496&r2=470497
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/luni/src/test/java/org/apache/harmony/luni/tests/java/io/FileTest.java (original)
+++ incubator/harmony/enhanced/classlib/trunk/modules/luni/src/test/java/org/apache/harmony/luni/tests/java/io/FileTest.java Thu Nov 2 12:07:02 2006
@@ -97,4 +97,28 @@
file = new File((String) null, "x/y/z");
assertEquals("x" + separator + "y" + separator + "z", file.getPath());
}
+
+ /**
+ * @tests java.io.File#getPath()
+ */
+ public void test_getPath_With_Empty_FileName() {
+ // Regression for HARMONY-829
+ String f1ParentName = "01";
+ File f1 = new File(f1ParentName, "");
+ assertEquals(f1ParentName, f1.getPath());
+
+ String f2ParentName = "0";
+ File f2 = new File(f2ParentName, "");
+
+ assertEquals(-1, f2.compareTo(f1));
+ assertEquals(1, f1.compareTo(f2));
+
+ File parent = new File(System.getProperty("user.dir"));
+ File f3 = new File(parent, "");
+
+ assertEquals(parent.getPath(), f3.getPath());
+
+
+ }
+
}