Rename bug STILL not sorted out

(8 posts)
  • Started by ramei
  • Started on September 9, 2007 - 01:15 AM (2 years ago)
  • Latest reply from Nels (2 years ago)
  • ramei
    Member

    On May 4 I reported in the defects section:

    "The rename bug I described for v9.108 here http://forums.acdsystems.com/index.php?showtopic=3582 is also present in Pro 2 beta 1 under Vista and should not make it into the final"

    Mark Cosgrove replied on the same day:

    "Hello,

    We are aware of this issue but unfortunately not able to get the solution into the first Beta Release. This issue will be fixed.

    Thanks
    Mark"

    Well, it has NOT been fixed. It's still there in the final release of Pro 2. I am disappointed.

    Posted On September 9, 2007 - 01:15 AM (2 years ago) (Permalink to this post)
  • mcosgrove
    Administrator

    ramei said:

    On May 4 I reported in the defects section:

    "The rename bug I described for v9.108 here http://forums.acdsystems.com/index.php?showtopic=3582 is also present in Pro 2 beta 1 under Vista and should not make it into the final"

    Mark Cosgrove replied on the same day:

    "Hello,

    We are aware of this issue but unfortunately not able to get the solution into the first Beta Release. This issue will be fixed.

    Thanks
    Mark"

    Well, it has NOT been fixed. It's still there in the final release of Pro 2. I am disappointed.

    Hello,

    The issue was reported to development by Shelly, she commented in thread: http://forums.acdsystems.com/index.php?showtopic=3582

    "Hi Ramei - Thanks for letting us know about this - you are correct, it is a problem on Vista only - I confirmed that it works correctly on Win XP (build 108). It is now logged for further investigation."

    I am sorry but I don’t believe I commented this issue would be fixed in the release. In any case, I will follow up with development tomorrow.

    Thank you,
    Mark Cosgrove

    Posted On September 9, 2007 - 03:25 PM (2 years ago) (Permalink to this post)
  • Nels
    ACDSee Developer

    I investigated this issue prior to release and took my best shot at resolving the issue. I spent the better part of a day trying to figure out how to come up with an elegant fix and unfortunately I was not able to do so. Every possible solution that I could come up with would only result in other defects and incorrect behavior. I apologize for any inconvenience this issue may cause.

    If you are interested in the details on why this defect proved to be so difficult, read on. Warning, it may get a bit technical and it may be difficult to even explain effectively.

    This behavior (case sensitivity on rename) was introduced on Windows Vista in order to fix another issue discovered while making ACDSee 9 compatible with Windows Vista. While Microsoft tries diligently to make a newer OS backwards compatible with previous versions, there are cases where slight changes to operating system functions (Platform SDK) change. These subtle changes sometimes make things challenging for Independent Software Vendors such as us.

    On Windows XP, when a user tries to rename a folder to the exact name as an existing folder, the Platform SDK displays an error message to the user and the function fails. You can try this in ACDSee as well as Windows Explorer (on XP). However, Windows Vista allows users to rename a folder to the same name as a folder that already exists and give the user the ability to merge the two folders. So now on Vista, the same Platform SDK call does not display an error message and return an error to the calling application. Instead the SDK call tries to merge the contents of the two folders into one without reporting any error to the calling application. This behavior gives ACDSee some pain and puts in into a fairly bad state, especially when trying to keep items from getting orphaned in the database. The folder tree and database would get out of sync with the OS since there are no longer two folders with distinct names. Since we don't know the merge occurred, we have no idea that we should delete a folder from the DB and remove it from the folder tree.

    In order to prevent ACDSee from getting into this bad state, the fix employed (on Vista only) is to check and see if the destination file exists prior to doing the rename. This way we can prevent any chance of the OS doing a folder merge without our knowledge. If a folder already exists with the destination name, we display the error message ourselves rather than relying on the OS to do it.

    The only problem with this fix, as you have discovered, is that the check for existence is case insensitive. This comes as no surprise as file/folder names on Windows are case insensitive. Since file/folder names are case insensitive, the check for 'ABc' existing prior to the rename returns TRUE since 'Abc' exists.

    I spent a few hours looking for a better fix for original issue, but I couldn't think of anything that didn't involve a risk factor higher than I was willing to accept. If Vista gave us an error when trying to do the rename (like XP does) the original issue would not occur, and this bug wouldn't exist! Alas... no such luck.

    Posted On September 10, 2007 - 02:26 PM (2 years ago) (Permalink to this post)
  • Chippy
    Moderator

    Thank you Nels,for a precise and accurate information, in plain language.
    Explains a lot of things, related to ACDSee and XP/Vista

    Posted On September 10, 2007 - 09:34 PM (2 years ago) (Permalink to this post)
  • ramei
    Member

    Thank you from me as well, Nels, for taking the time to explain this matter in such a detailed way. You know, for me, as a user without much software engineering knowledge, it was hard to understand why such a seemingly trivial issue as the renaming problem could not be solved over such a long period of time.
    However, your explanation sure destroys my hopes for a working solution in the near future ...

    Posted On September 11, 2007 - 01:51 AM (2 years ago) (Permalink to this post)
  • carabs
    Member

    That was a very good explanation Nels. Thanks!

    Posted On September 11, 2007 - 08:00 AM (2 years ago) (Permalink to this post)
  • Nels,

    Thanks for the explanation. I sympathise, as I've also had to spend considerable amounts of time trying to find ways to work around some of Microsoft's "features".

    For reasons I won't go into here, I've written a file management utility in Excel/VBA. One problem I had was allowing the user (usually me) to rename files by just varying the capitalisation, as Win2k and XP don't allow this.

    I therefore first check the proposed new name against the old one, case insensitively. If it's the same, I do a two stage rename, otherwise I just go ahead (and rely on the OS to generate an error message if *another* file [as against the file being renamed] exists with the proposed new name).

    Would a similar approach be applicable to your problem? The point is that if the first check shows the rename to be just a capitalisation change, *another* file (folder in your case) with that name *can't* exist (as two can't have the same case-insensitive name), and so you wouldn't then have to worry about folder merging. If it isn't just a capitalisation change, you can then go on to check the other folder names.

    John

    Posted On September 11, 2007 - 09:06 AM (2 years ago) (Permalink to this post)
  • Nels
    ACDSee Developer

    Yes it does seem like John's proposed solution may indeed address this issue. I only wish I had thought of it a month ago! Here we see yet another example of when software development stands firmly in the realm of art rather than a science. Thanks to John for his creative solution. Very few problems in software are actually impossible to solve, it's just a matter of finding the right solution and balancing that with complexity, time and risk.

    I guess hope isn't dead for this issue after all. I can't say for certain when of if it will be fixed though. I'll drop a reference to this thread in our defect database and flag it for review in the next development iteration.

    Thanks again.

    Posted On September 11, 2007 - 12:29 PM (2 years ago) (Permalink to this post)

Subscribe to this topic via RSS

Reply

You must log in to post.