On 19 Nov 2005 at 12:53, dhbailey wrote:

> What I have noticed, when I haven't cleared out my TEMP directory
> manually in a long time, is that the program foolishly reuses the old
> names, as if the programmers have decided on a finite number of temp
> file names and the program simply recycles them as needed.

Well, I don't know for certain what the upper limit on Finale's temp 
file naming routine is, but just by opening and closing Finale 
several times (with or without opening a file -- didn't change 
anything), it seems that the temp file naming convention starts out 
as FINxx.TMP, then after using up all the possibilities, changes to 
FINxxx.TMP. The numbers are hexidecimal, i.e., 0-9 then A-F, which 
means, I believe, that 3 places gives you 16^3 unique filenames. 
That's 4,096 unique file names. And Finale creates 15 temp files on 
my version of Finale (2K3) each time it starts (that's 273 restarts 
before the file names get re-used, assuming that it's limited to 3 
digits; if it rolls over and adds a 4th digit, then it's likely a 
much higher number; because of the old 8.3 filename limits, my bet is 
on FINFFFFF.TMP as the upper limit, which is 1,048,575 unique 
filenames, BTW).

Now, I don't know when Finale starts the counter over again. 
Strangely enough, when I started this experiment, Finale started at 
FIN01.TMP (it was the first time I'd run Finale since logging on 
today), so perhaps each Windows logon session restarts the counter.

Now, if that were the case, it would stand to reason that only a 
very, very stupid programmer would have written a routine to create 
temp files without checking that the filename already existed or not, 
and that if it already existed, they surely wouldn't re-use existing 
data stored under that filename, unless they were very, very dumb 
programmers. If they re-use the old file, surely they zero out the 
content, which makes it no different than deleting it and creating a 
new file with the same name (which is much more likely, actually).

> I don't know if things are different between macs and pcs in this
> regard, but from a windows perspective:

I have strong doubts that you are actually seeing files re-used, as 
you say. The file *names* may very well get re-used, but only an 
extremely poorly designed temp file subroutine would re-use the 
actual file content. I'm assuming that with each Windows logon 
session, the temp file naming starts over at FIN01.TMP, so that would 
mean that your normal user who starts up her computer, runs Finale, 
then closes Finale and shuts down the computer, then next day starts 
up the computer and opens Finale, will be re-using the same 15 
filenames every single day. Now, I've got too much junk running to 
log off and test this right now, but if it's the *normal* operating 
case, then it would be only the stupidist of programmers who would 
have set it up that way.

Indeed, if that were actually the case, I'm sure Finale would be far, 
far less stable than it is, and for me, it's always been pretty 
stable since 3.52.

> Rather than something like myfile0001.tmp the current temp file naming
> is FINDE.tmp or FIND1.tmp -- the first 3 letters are obviously enough
> referring to the applicaion, the final 2 letters/numbers seem to be
> hexadecimal indentifiers.

Oops. I should read through to the end of messages before starting a 
reply.

But Finale goes beyond FINFF.TMP when it hits that point, so the 
namespace is not as small as you seem to be implying.

> I have found a strange mixture of file-creation dates when I haven't
> manually cleared out the directory in a long time, and I wonder if
> this re-use of the names (apparently allowing only up to 256 different
> temp files and no more) is part of the problem.

I would strongly doubt it. It would take a very fundamental 
programming error for that to happen, one that should massively 
destabilize Finale on a regular basis, since the orphaned temp files 
are very common.

> Maybe they simply need to use a different file naming structure,
> allowing up to 256 temp files for a single date or a single session or
> a single work/date combination, and then they could finally just do a
> DEL C:\TEMP\fin??????????.tmp command (or the mac
> equivalent)(obviously the path would change to whatever anybody sets
> the temp directory to be) everytime the program quits.

I'm not interested in restarting Finale 257 more times (I already 
restarted it 15 times to find the rollover from 2 to 3 digits in the 
filenames) to see what happens after the 4,096th unique filename is 
re-used.

But my bet is that filenam collisions are far common because of the 
counter restarting each time the Windows GUI initializes (which is 
only a guess, though, but it's based on the fact that I've run Finale 
in recent Windows sessions, but it still started from FIN01.TMP in my 
tests). And because they are so common, it is vanishingly less likely 
that Finale's programmers would have somehow neglected to deal with 
filename collisions, either by deleting and creating a new file, or 
by zeroing out the existing file before re-using it.

-- 
David W. Fenton                        http://www.bway.net/~dfenton
David Fenton Associates                http://www.bway.net/~dfassoc

_______________________________________________
Finale mailing list
[email protected]
http://lists.shsu.edu/mailman/listinfo/finale

Reply via email to