For all you know, the frequency of occurrence has a period greater than
the short elapsed time over which you've carried out testing.
Idiot. The frequency of occurrence can be calculated. It is zero unless
all of the following occur:
* A symlink is dropped under baseDir, externally, whose destination is
a directory on a different partition.
* This partition has zero files.
* Java doesn't treat its root directory as having a parent that is a
"logical root" for all drives (but last time I checked, it does).
* The attempt to delete the partition's empty root directory succeeds,
so the loop continues with "dir" equal to "null" to eventually throw
NPE instead of bombing on a failed deletion instead.
I'm fairly sure the NPE actually *can't happen* now, and the only
consequences of someone dropping a symlink in there would be a) the dir
containing the symlink is never eligible for deletion (same as if a
file got dropped in there) and b) the symlink's destination might be
deleted, if it's empty. Of course, the symlink might then cause
problems in a later run, too. But that a) can't happen on Windows
systems at all and b) requires unlikely, oddball user behavior on Unix
systems. (I'm unsure whether Mac aliases work as true symbolic links,
while I know that Windows shortcuts don't; Mac OSX presumably has true
symlinks but they may be disused relative to aliases, if the latter
weren't retrofit to use the former under the hood. I don't know much
about MacOS more recent than 8 or so, so...)
Saying it "is the same thing" is like saying the cause of a wound
bleeding is the absence of bandaging. Using Java synchronisation could
be just a bandage, in which case you haven't detected the real cause.
The cause was concurrent modifications to the directory tree by
different threads of the same application. Synchronization is the cure,
not just a bandage, for that kind of thing (unless the multithreading
is itself unnecessary -- but that's not the case here).
Why is this even still being discussed?!
You seem awfully convinced that something else is wrong, especially for
someone who necessarily knows an awful lot less about the code than I
do. And no, I won't post the entire source here just for your
edification! I do generally favor open source, but that doesn't by any
means I support demanding or forcing developers to open their
source...aside from voting machines or other publicly-funded stuff.
(Yeah, I know, the voting machine manufacturers are private businesses,
but nobody buys the voting machines with anything except tax money, and
transparency of the process is crucial, so...Diebold is welcome to keep
the source code for their ATMs closed if they wish...)
No, it isn't. You've invested an awful lot of time and effort in a vain
quest to "prove" your opponent not only wrong but some kind of deranged
moron and lunatic, but you haven't bothered to tell anybody why you
want this.
No, I don't, but I am not able to just leave it alone either, or people
might actually start to believe your BS.
[Snip further insults, irrelevancies, and BS]
Let me explain it in simple words: You aggravate others
False.
I did not throw the first punch, and anyone claiming otherwise is
either a retard or a liar.
If something I did is "aggravating", it was after I was provoked. By
you.
Obvious use of the strawman argument there. Your premise is false. I'm
not attacking you, I'm having a pleasant conversation with you.
If you think this is a "pleasant conversation" then you are hopelessly
delusional and need to check yourself into the nearest psych ward. They
will give you all the Thorazine you need, not to mention take your
computer away from you so that you quit posting drivel and BS to
usenet. What kind of "pleasant conversation" has one of the
participants (i.e. you) uttering insults, put-downs, and other such
crap every other time he opens his mouth? Hmm?