[jira] Commented: (VFS-245) FileName interface says that it is immutable, however AbstractFileName.setType(FileType type) flouts this rule

2010-11-25 Thread Ralph Goers (JIRA)

[ 
https://issues.apache.org/jira/browse/VFS-245?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=12935855#action_12935855
 ] 

Ralph Goers commented on VFS-245:
-

I've experimented with various options for this.

I looked at removing the FileType attribute. Unfortunately, resolveName in 
DefaultFileSystemManager relies on it to determine whether the FileName is a 
File vs a Folder so removing it would break that.

I looked at making the FileType immutable and removing the setType method. This 
is doable but requires that AbstractFileObject change the setType method to 
create a new FileName when the type is changed instead of modifying the 
FileName. As a consequence this just moves the immutability problem since 
FileObjects are cached by their FileName.

While the assessment above is correct, I disagree with the outcome. appendURI 
is provided to allow FileName implementations to include information such as 
the userid and password into the path. Furthermore, the only thing the FileType 
is used for is to determine whether to append a '/' to the path.  Given this it 
makes more sense to me to modify equals(), hashcode, and compareTo to use a 
method that generates a URI that contains the results from appendURI but does 
not try to append the '/' to the path. This will result in these three methods 
returning constant values regardless of what the FileType might be.

 FileName interface says that it is immutable, however 
 AbstractFileName.setType(FileType type) flouts this rule
 --

 Key: VFS-245
 URL: https://issues.apache.org/jira/browse/VFS-245
 Project: Commons VFS
  Issue Type: Bug
Reporter: Sebb
 Attachments: AbstractFileName.java.patch


 FileName interface says that it is immutable, however 
 AbstractFileName.setType(FileType type) flouts this rule.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



[jira] Commented: (VFS-245) FileName interface says that it is immutable, however AbstractFileName.setType(FileType type) flouts this rule

2009-06-05 Thread Vince Bonfanti (JIRA)

[ 
https://issues.apache.org/jira/browse/VFS-245?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=12716775#action_12716775
 ] 

Vince Bonfanti commented on VFS-245:


Here's what I've discovered about this problem:

 1) The AbstractFileName equals() and hashcode() methods rely on its 
getRootUri() and getPath() methods.

 2) The getRootUri() method invokes appendRootUri(), which is an abstract 
method. Since we can't know what the subclass might do within appendRootUri(), 
it's probably not a good idea for getRootUri() to be used by equals() or 
hashcode().

 3) The getPath() method might invoke getUriTrailer() based on the setting of 
VFS.isUriStyle(). The getUriTrailer() method is the one that invokes getType() 
to determine whether to add a / to the path. Therefore, it's probably not a 
good idea for getPath() to be used by equals() or hashcode().

I recommend that equals() and hashcode() be modified to rely only on the 
scheme and absPath properties, both of which are Strings and both of which 
are immutable. A patch file with the proposed change is attached.

 FileName interface says that it is immutable, however 
 AbstractFileName.setType(FileType type) flouts this rule
 --

 Key: VFS-245
 URL: https://issues.apache.org/jira/browse/VFS-245
 Project: Commons VFS
  Issue Type: Bug
Reporter: Sebb
 Attachments: AbstractFileName.java.patch


 FileName interface says that it is immutable, however 
 AbstractFileName.setType(FileType type) flouts this rule.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



[jira] Commented: (VFS-245) FileName interface says that it is immutable, however AbstractFileName.setType(FileType type) flouts this rule

2009-03-17 Thread Sebb (JIRA)

[ 
https://issues.apache.org/jira/browse/VFS-245?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=12682717#action_12682717
 ] 

Sebb commented on VFS-245:
--

Since FileType is used in equals() and hashCode() this could cause serious 
problems.

 FileName interface says that it is immutable, however 
 AbstractFileName.setType(FileType type) flouts this rule
 --

 Key: VFS-245
 URL: https://issues.apache.org/jira/browse/VFS-245
 Project: Commons VFS
  Issue Type: Bug
Reporter: Sebb

 FileName interface says that it is immutable, however 
 AbstractFileName.setType(FileType type) flouts this rule.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.