You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by im...@apache.org on 2006/03/30 19:40:19 UTC

svn commit: r390186 - in /jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/provider: AbstractFileName.java UriParser.java local/LocalFile.java local/LocalFileSystem.java local/WindowsFileNameParser.java

Author: imario
Date: Thu Mar 30 09:40:17 2006
New Revision: 390186

URL: http://svn.apache.org/viewcvs?rev=390186&view=rev
Log:
intern() some string to preserve memory. some performance speedup in filename handling

Thanks to Anthony Goubard.

Modified:
    jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/provider/AbstractFileName.java
    jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/provider/UriParser.java
    jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/provider/local/LocalFile.java
    jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/provider/local/LocalFileSystem.java
    jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/provider/local/WindowsFileNameParser.java

Modified: jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/provider/AbstractFileName.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/provider/AbstractFileName.java?rev=390186&r1=390185&r2=390186&view=diff
==============================================================================
--- jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/provider/AbstractFileName.java (original)
+++ jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/provider/AbstractFileName.java Thu Mar 30 09:40:17 2006
@@ -30,6 +30,7 @@
 public abstract class AbstractFileName
     implements FileName
 {
+    
     private final String scheme;
     private final String absPath;
     private FileType type;
@@ -310,7 +311,7 @@
             final StringBuffer buffer = new StringBuffer();
             appendRootUri(buffer);
             buffer.append(SEPARATOR_CHAR);
-            rootUri = buffer.toString();
+            rootUri = buffer.toString().intern();
         }
         return rootUri;
     }
@@ -354,7 +355,7 @@
             }
             else
             {
-                extension = baseName.substring(pos + 1);
+                extension = baseName.substring(pos + 1).intern();
             }
         }
         return extension;

Modified: jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/provider/UriParser.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/provider/UriParser.java?rev=390186&r1=390185&r2=390186&view=diff
==============================================================================
--- jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/provider/UriParser.java (original)
+++ jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/provider/UriParser.java Thu Mar 30 09:40:17 2006
@@ -246,7 +246,7 @@
 				{
 					buffer.delete(0, pos + 1);
 				}
-				return scheme;
+				return scheme.intern();
 			}
 
 			if ((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z'))
@@ -280,6 +280,10 @@
 		if (encodedStr == null)
 		{
 			return null;
+		}
+		if (encodedStr.indexOf('%') < 0)
+		{
+			return encodedStr;
 		}
 		final StringBuffer buffer = new StringBuffer(encodedStr);
 		decode(buffer, 0, buffer.length());

Modified: jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/provider/local/LocalFile.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/provider/local/LocalFile.java?rev=390186&r1=390185&r2=390186&view=diff
==============================================================================
--- jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/provider/local/LocalFile.java (original)
+++ jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/provider/local/LocalFile.java Thu Mar 30 09:40:17 2006
@@ -42,17 +42,14 @@
     implements FileObject
 {
     private File file;
-    private final String fileName;
 
     /**
      * Creates a non-root file.
      */
     protected LocalFile(final LocalFileSystem fileSystem,
-                        final String fileName,
                         final FileName name) throws FileSystemException
     {
         super(name, fileSystem);
-        this.fileName = UriParser.decode(fileName);
     }
 
     /**
@@ -71,6 +68,9 @@
     {
         if (file == null)
         {
+            // Remove the "file:///"
+            String fileName = getName().getPathDecoded();
+            // fileName = UriParser.decode(fileName);
             file = new File(fileName);
         }
     }

Modified: jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/provider/local/LocalFileSystem.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/provider/local/LocalFileSystem.java?rev=390186&r1=390185&r2=390186&view=diff
==============================================================================
--- jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/provider/local/LocalFileSystem.java (original)
+++ jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/provider/local/LocalFileSystem.java Thu Mar 30 09:40:17 2006
@@ -53,8 +53,7 @@
     protected FileObject createFile(final FileName name) throws FileSystemException
     {
         // Create the file
-        String fileName = rootFile + name.getPath();
-        return new LocalFile(this, fileName, name);
+        return new LocalFile(this, name);
     }
 
     /**

Modified: jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/provider/local/WindowsFileNameParser.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/provider/local/WindowsFileNameParser.java?rev=390186&r1=390185&r2=390186&view=diff
==============================================================================
--- jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/provider/local/WindowsFileNameParser.java (original)
+++ jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/provider/local/WindowsFileNameParser.java Thu Mar 30 09:40:17 2006
@@ -113,7 +113,8 @@
 
         String prefix = name.substring(0, 2);
         name.delete(0, 2);
-        return prefix;
+        
+        return prefix.intern();
     }
 
     /**



---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org