FTPSERVER-375 - use canonicalPath rather than File to implement equals and 
hashcode

git-svn-id: https://svn.apache.org/repos/asf/mina/ftpserver/trunk@1138635 
13f79535-47bb-0310-9956-ffa450edef68


Project: http://git-wip-us.apache.org/repos/asf/mina-ftpserver/repo
Commit: http://git-wip-us.apache.org/repos/asf/mina-ftpserver/commit/46484938
Tree: http://git-wip-us.apache.org/repos/asf/mina-ftpserver/tree/46484938
Diff: http://git-wip-us.apache.org/repos/asf/mina-ftpserver/diff/46484938

Branch: refs/heads/trunk
Commit: 46484938383bf5a78dc9f5311d2e926f6f4e1860
Parents: 25e4d86
Author: Sebastian Bazley <[email protected]>
Authored: Wed Jun 22 21:08:23 2011 +0000
Committer: Sebastian Bazley <[email protected]>
Committed: Wed Jun 22 21:08:23 2011 +0000

----------------------------------------------------------------------
 .../filesystem/nativefs/impl/NativeFtpFile.java   | 18 +++++++++++-------
 1 file changed, 11 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mina-ftpserver/blob/46484938/core/src/main/java/org/apache/ftpserver/filesystem/nativefs/impl/NativeFtpFile.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/ftpserver/filesystem/nativefs/impl/NativeFtpFile.java
 
b/core/src/main/java/org/apache/ftpserver/filesystem/nativefs/impl/NativeFtpFile.java
index 4052ff6..3d1bf3c 100644
--- 
a/core/src/main/java/org/apache/ftpserver/filesystem/nativefs/impl/NativeFtpFile.java
+++ 
b/core/src/main/java/org/apache/ftpserver/filesystem/nativefs/impl/NativeFtpFile.java
@@ -394,21 +394,25 @@ public class NativeFtpFile implements FtpFile {
         };
     }
 
+    /**
+     * Implements equals by comparing getCanonicalPath() for the underlying 
file instabnce.
+     * Ignores the fileName and User fields
+     */
     @Override
     public boolean equals(Object obj) {
         if (obj instanceof NativeFtpFile) {
-            File thisCanonicalFile;
-            File otherCanonicalFile;
+            String thisCanonicalPath;
+            String otherCanonicalPath;
             try {
-                thisCanonicalFile = this.file.getCanonicalFile();
-                otherCanonicalFile = ((NativeFtpFile) obj).file
-                        .getCanonicalFile();
+                thisCanonicalPath = this.file.getCanonicalPath();
+                otherCanonicalPath = ((NativeFtpFile) obj).file
+                        .getCanonicalPath();
             } catch (IOException e) {
                 throw new RuntimeException("Failed to get the canonical path",
                         e);
             }
 
-            return thisCanonicalFile.equals(otherCanonicalFile);
+            return thisCanonicalPath.equals(otherCanonicalPath);
         }
         return false;
     }
@@ -416,7 +420,7 @@ public class NativeFtpFile implements FtpFile {
        @Override
        public int hashCode() {
                try {
-                       return file.getCanonicalFile().hashCode();
+                       return file.getCanonicalPath().hashCode();
                } catch (IOException e) {
                        return 0;
                }

Reply via email to