You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by py...@apache.org on 2007/05/29 08:51:07 UTC

svn commit: r542430 - in /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: pyang
Date: Mon May 28 23:51:06 2007
New Revision: 542430

URL: http://svn.apache.org/viewvc?view=rev&rev=542430
Log:
Apply patch for HARMONY-3869([classlib][luni] Compatibility: File(, ) differs on Harmony and RI)

Modified:
    harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/io/File.java
    harmony/enhanced/classlib/trunk/modules/luni/src/test/java/org/apache/harmony/luni/tests/java/io/FileTest.java

Modified: harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/io/File.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/io/File.java?view=diff&rev=542430&r1=542429&r2=542430
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/io/File.java (original)
+++ harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/io/File.java Mon May 28 23:51:06 2007
@@ -44,6 +44,8 @@
  * @see java.lang.Comparable
  */
 public class File implements Serializable, Comparable<File> {
+    private static final String EMPTY_STRING = ""; //$NON-NLS-1$
+
     private static final long serialVersionUID = 301077366599181567L;
 
     private String path;
@@ -165,7 +167,7 @@
 
     private String calculatePath(String dirPath, String name) {
         dirPath = fixSlashes(dirPath);
-        if (!name.equals("")) { //$NON-NLS-1$
+        if (!name.equals(EMPTY_STRING) || dirPath.equals(EMPTY_STRING)) { 
             // Remove all the proceeding separator chars from name
             name = fixSlashes(name);
 
@@ -1288,12 +1290,12 @@
         String name = getAbsoluteName();
         if (!name.startsWith("/")) { //$NON-NLS-1$
             // start with sep.
-            return new URL("file", "", -1, new StringBuilder(name.length() + 1) //$NON-NLS-1$ //$NON-NLS-2$
+            return new URL("file", EMPTY_STRING, -1, new StringBuilder(name.length() + 1) //$NON-NLS-1$ 
                     .append('/').append(name).toString(), null);
         } else if (name.startsWith("//")) { //$NON-NLS-1$
             return new URL("file:" + name); // UNC path //$NON-NLS-1$
         }
-        return new URL("file", "", -1, name, null); //$NON-NLS-1$ //$NON-NLS-2$
+        return new URL("file", EMPTY_STRING, -1, name, null); //$NON-NLS-1$
     }
 
     private String getAbsoluteName() {

Modified: harmony/enhanced/classlib/trunk/modules/luni/src/test/java/org/apache/harmony/luni/tests/java/io/FileTest.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/luni/src/test/java/org/apache/harmony/luni/tests/java/io/FileTest.java?view=diff&rev=542430&r1=542429&r2=542430
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/luni/src/test/java/org/apache/harmony/luni/tests/java/io/FileTest.java (original)
+++ harmony/enhanced/classlib/trunk/modules/luni/src/test/java/org/apache/harmony/luni/tests/java/io/FileTest.java Mon May 28 23:51:06 2007
@@ -120,7 +120,12 @@
 
         assertEquals(parent.getPath(), f3.getPath());
         
+        // Regression for HARMONY-3869
+        File file1 = new File("", "");
+        assertEquals(File.separator, file1.getPath());
         
+        File file2 = new File(new File(""), "");
+        assertEquals(File.separator, file2.getPath());
     }
     
     /**