Java Forum / General / December 2006
Bogus NullPointerExceptions
Twisted - 15 Nov 2006 16:29 GMT while (!dir.equals(baseDir) && dir.list() != null && dir.list().length == 0) { File parent = dir.getParentFile(); dir.delete(); dir = parent; }
is being used to nuke some empty directories in an app of mine, then the parent if it's now empty, and so forth up the chain to a top directory.
Sometimes, the while line is throwing an NPE, a problem that seems impossible.
First, baseDir is not null. It's set only once and never changed, nothing that uses it ever throws an NPE except this line, and this line only uses it as the RHS of .equals(), where null is supposed to be legal anyway.
Second, dir is not null (I added an explicit throw of NPE if dir was null just before the "while" loop and the "while" line still threw the NPEs, rather than the line with the explicit throw).
Finally, dir.list().length is accessed only after a short-circuit and after a test that dir.list() isn't null.
The only logical explanation seems to be that dir.list() can return an array one nanosecond and null the next...
I don't suppose this is some weird concurrency problem. I guess I'll try synchronizing on something (baseDir?) before the loop...
Patricia Shanahan - 15 Nov 2006 16:52 GMT > while (!dir.equals(baseDir) && dir.list() != null && dir.list().length > == 0) { [quoted text clipped - 27 lines] > I don't suppose this is some weird concurrency problem. I guess I'll > try synchronizing on something (baseDir?) before the loop... Additionally, your code seems to me to depend on baseDir being on the parent chain from the initial value of dir.
If that were not the case, you would reach the end of the parent chain without encountering the stop condition, so getParentFile would return null. If that happened, dir would be null in the while test without having been null when you went through the check before the while loop.
If you have not already done so, perhaps check the code that calculates dir and baseDir?
Patricia
Twisted - 15 Nov 2006 18:28 GMT > Additionally, your code seems to me to depend on baseDir being on the > parent chain from the initial value of dir. It does, and earlier code guarantees that baseDir is on the parent chain. (Certain dirs under baseDir are checked for being empty and deleted if so.)
Patricia Shanahan - 15 Nov 2006 21:20 GMT >> Additionally, your code seems to me to depend on baseDir being on the >> parent chain from the initial value of dir. > > It does, and earlier code guarantees that baseDir is on the parent > chain. (Certain dirs under baseDir are checked for being empty and > deleted if so.) The fact that directory X is under directory Y does not guarantee that all File objects for X have Y as a getParentFile ancestor.
Of course, the way you are creating the File object may ensure that dir does have baseDir as a getParentFile ancestor, but if I were you I would put in a check for null getParentFile result just in case.
Patricia
Twisted - 16 Nov 2006 02:02 GMT > The fact that directory X is under directory Y does not guarantee that > all File objects for X have Y as a getParentFile ancestor. It should, as long as X is genuinely under Y rather than some kind of shortcut to X being under Y. In this particular application, is certainly is under Y (it was reached by traversal from Y to begin with).
Anyway it does seem to have been a concurrency issue -- synchronizing on baseDir (which is app global and unchanging) at several key spots in the code made the NPEs go away.
Andreas Leitgeb - 16 Nov 2006 08:16 GMT > Anyway it does seem to have been a concurrency issue -- synchronizing > on baseDir (which is app global and unchanging) at several key spots in > the code made the NPEs go away. There are two global (principially) modifyable "objects" involved: baseDir, which you're sure remains unmodified throughout the running program, and the filesystem itself!
Perhaps the method gets to run twice in parallel, and the parent-directory obtained in first thread has already been deleted in the other thread just before you get to deal with it in the first one. Or something like that.
In that case, synchronizing on baseDir obviously solved the problem, even if just indirectly. Probably it would have been enough to synchronize only those methods on baseDir that actually modify the filesystem's subtree starting at baseDir.
Twisted - 16 Nov 2006 17:10 GMT > > Anyway it does seem to have been a concurrency issue -- synchronizing > > on baseDir (which is app global and unchanging) at several key spots in [quoted text clipped - 14 lines] > that actually modify the filesystem's subtree starting at > baseDir. I now think this is what was happening. I do now synchronize on baseDir everywhere that might create or destroy subdirectories of it.
Patricia Shanahan - 16 Nov 2006 13:22 GMT >> The fact that directory X is under directory Y does not guarantee that >> all File objects for X have Y as a getParentFile ancestor. [quoted text clipped - 3 lines] > certainly is under Y (it was reached by traversal from Y to begin > with). That should work.
> Anyway it does seem to have been a concurrency issue -- synchronizing > on baseDir (which is app global and unchanging) at several key spots in > the code made the NPEs go away. I would still try to nail down what is really happening, because adding arbitrary synchronization can make a program work more often, without fixing the underlying problem.
The implication is that baseDir is changing, although you thought it was fixed, which is disturbing.
Alternatively, there could be an initialization problem, if dir is being calculated in a different thread from the NPE.
Patricia
Twisted - 16 Nov 2006 17:13 GMT > The implication is that baseDir is changing, although you thought it was > fixed, which is disturbing. It can't be -- it's final. It's the structure of the actual filesystem that was changing asynchronously once I added multithreading.
Fred Kleinschmidt - 15 Nov 2006 20:12 GMT > while (!dir.equals(baseDir) && dir.list() != null && dir.list().length > == 0) { > File parent = dir.getParentFile(); Note that getParentFile() can return null.
> dir.delete(); > dir = parent; if parent is null, dir is now null, and dir.equals() will generate a NPE
> } > ><snip> > > Sometimes, the while line is throwing an NPE, a problem that seems > impossible. <snip>
 Signature Fred L. Kleinschmidt Boeing Associate Technical Fellow Technical Architect, Software Reuse Project
Twisted - 16 Nov 2006 01:58 GMT > > while (!dir.equals(baseDir) && dir.list() != null && dir.list().length > > == 0) { > > File parent = dir.getParentFile(); > > Note that getParentFile() can return null. I should have been clearer in the original post. This code is reached only with dir a descendant of baseDir, so it can't reach the root and try to keep going.
Daniel Pitts - 16 Nov 2006 02:24 GMT > > > while (!dir.equals(baseDir) && dir.list() != null && dir.list().length > > > == 0) { [quoted text clipped - 5 lines] > only with dir a descendant of baseDir, so it can't reach the root and > try to keep going. It doesn't hurt to add an assert.
File parent = dir.getParentFile(); assert parent != null : "Whoops, missed my parent!";
Chris Uppal - 16 Nov 2006 13:55 GMT > > > > while (!dir.equals(baseDir) && dir.list() != null && > > > > dir.list().length == 0) { > > > > File parent = dir.getParentFile(); [...]
> It doesn't hurt to add an assert. > > File parent = dir.getParentFile(); > assert parent != null : "Whoops, missed my parent!"; Or better still -- since this code is running out of control while deleting stuff (!) -- some heavy duty tracing/logging so that he can find out /exactly/ what erroneous assumption(s) the code is making.
And then leave the null-check in, but use a test plus fatal-internal-error notification, not a switchable check like an assertion.
-- chris
Ingo Menger - 16 Nov 2006 09:52 GMT Twisted schrieb:
> > > while (!dir.equals(baseDir) && dir.list() != null && dir.list().length > > > == 0) { [quoted text clipped - 5 lines] > only with dir a descendant of baseDir, so it can't reach the root and > try to keep going. The NullPointerException tells you, however, that it can or that there may be other reasons why getParentFile() returns null. BTW, make sure you write code that will work with symbolic links.
Twisted - 16 Nov 2006 17:08 GMT > > I should have been clearer in the original post. This code is reached > > only with dir a descendant of baseDir, so it can't reach the root and [quoted text clipped - 3 lines] > may be other reasons why getParentFile() returns null. > BTW, make sure you write code that will work with symbolic links. There are none in this application. It creates and destroys subdirectories of baseDir to house temporary data of various kinds. The directories are only ever reached by drilling down from baseDir to begin with. Someone would have to manually and deliberately drop a symlink to a different part of the directory hierarchy beneath baseDir for there to be a problem.
It's unlikely even then -- it gets dir from an internal memory of what it's created, rather than from browsing around under baseDir.
Tom Forsmo - 22 Nov 2006 11:08 GMT > while (!dir.equals(baseDir) && dir.list() != null && dir.list().length > == 0) { > File parent = dir.getParentFile(); > dir.delete(); > dir = parent; > } There is one big problem with your code. dir can be changed during the loop, so it does not matter whether you are testing dir for null before the loop starts. According to the code you have shown us, baseDir only needs to be checked before the loop. because its not used elsewhere in the code so it does not change.
The reason for your problem is that you can *not guarantee* that any of the references/methods you are using does not return null (you are experiencing an NPE even when you claim there can not be any). In addition, your code is very unstable. If, for a reason, you change how baseDir is used or how getParentFile() works, you could get into problems again in the future.
What you need to do is the following, for absolute certainty:
while (dir != null && baseDir != null && !dir.equals(baseDir) && dir.list() != null && dir.list().length > == 0) { ... }
tom
Twisted - 22 Nov 2006 21:12 GMT > What you need to do is the following, for absolute certainty: > [quoted text clipped - 4 lines] > ... > } This has been debated to death already.
As was discussed earlier, if it DID happen that drilling down from baseDir to an empty child directory and then working back up with getParent() could produce a null before reaching baseDir again, it would mean that the library had a bug (unless some sort of symlink was placed into one of the directories, which my app doesn't do). In actual FACT, the NPEs went away when some synchronization was sprinkled over the problem, indicating a concurrency issue. Finally, contrary to the alarmist remarks of one poster, it can't "run amok deleting stuff" because it is explicitly only capable of deleting a directory that is empty at the time. :P
Ingo Menger - 23 Nov 2006 08:54 GMT Twisted schrieb:
> > What you need to do is the following, for absolute certainty: > > [quoted text clipped - 12 lines] > would mean that the library had a bug (unless some sort of symlink was > placed into one of the directories, which my app doesn't do). It could be enough if some component of the path to baseDir is a symlink. $ cd /foo/bar/base $ /usr/bin/pwd /has/nothing/to/do/with/pathname/entered/has/it?
Or is there a guarantee that getParent() will work "in text mode" only?
Twisted - 23 Nov 2006 12:10 GMT > It could be enough if some component of the path to baseDir is a > symlink. [quoted text clipped - 3 lines] > > Or is there a guarantee that getParent() will work "in text mode" only? I suppose every newcomer to this thread will need this explained separately and again.
The app creates directories under baseDir. It also creates some files. It does not create any symlinks, nor is anyone expected to manually change anything in there.
It also sometimes deletes one of the files, and if this leaves a directory empty, deletes the directory and works its way up the chain in case this had made the parent empty and so forth.
The worst case "run amok" scenario would require that someone create a chain of empty directories somewhere and then place a symlink to the last one under baseDir. The app would then have to decide on its own to put a file in a same-named subdirectory, and finding one already existed not create it; the file then ends up in the symlink. And then the app has to later delete the file. And the result of this worst-case scenario is for it to delete the empty directories in the other chain recursively until it hit one that wasn't empty. And it would have to delete an empty logical filesystem root before it tried to delete null.
I don't think I've ever even *seen* an empty logical filesystem root. An empty individual drive root from time to time and *that* is rare.
And of course it can't delete an actual file, except for the extremely unlikely occurrence of someone (other than the app, now that it's synchronizing on baseDir) putting a file manually into one of the subdirectories just as the app is between testing it for being empty and deleting it. (The most likely case would actually be running two concurrent instances of the app and pointing them both at the same baseDir, or at least one at a parent or child of the other's. And that will, at worst, recreate the concurrency problems that used to exist.)
This thread is over.
Tom Forsmo - 24 Nov 2006 01:07 GMT > I suppose every newcomer to this thread will need this explained > separately and again. Don't be condescending. You have a bad design and you insist on fixing it by adding more complexity, synchronisation.
> This thread is over That's why its not over, you may ignore any further comments if you wish, but you should not tell others what to do with the thread in a public forum.
tom
Twisted - 24 Nov 2006 23:08 GMT > > I suppose every newcomer to this thread will need this explained > > separately and again. > > Don't be condescending. You have a bad design and you insist on fixing > it by adding more complexity, synchronisation. Don't be insulting. There is nothing wrong with my design. I'd like to see you try to suggest a better way to: * Delete a file in a particular subtree and then * If the directory it's in is now empty, delete that, and if that leaves its parent directory entry, delete that too, and so forth, while remaining confined to that subtree (whose root, even if it becomes empty, isn't deleted).
> That's why its not over, you may ignore any further comments if you > wish, but you should not tell others what to do with the thread in a > public forum. You seem to misunderstand. Everything has already been said, and now you are just going around in circles (and forcing me to do so as well, to rebut insulting BS like what you just posted) saying the same things repeatedly. You are awfully free with criticism, but seem to lack any constructive suggestions -- or if not, you're keeping them to yourself. I suggest you reverse that pattern -- keep your criticisms to yourself and make any constructive suggestions you may have public. (Yes, that does mean that in the event you have no constructive suggestions you should simply shut up.)
But I suspect both of us have better things to do than to continue this pointless debate. Obviously you disagree with me; equally obviously neither of us is likely to change the other's mind. Slinging insults around won't do anything but waste your time slinging them and mine cleaning up after you. So let's both just go home.
sgoo - 25 Nov 2006 01:37 GMT Concurrency may be the problem. Suppose your code runs in thread A, but another thread B is doing some evil things:
Thread A: check dir.equals(baseDir), false Thread A: checking dir.list() != null, true, go on
Suddenly -- Thread B: remove dir
Thread A: dir.list().length == 0, NullPointerException! because dir.list()!=null is no longer true.
foobarbazqux@hotmail.com - 25 Nov 2006 14:27 GMT > You seem to misunderstand. Everything has already been said, and now > you are just going around in circles (and forcing me to do so as well, "forcing"? You poor little weak helpless thing! I feel so sorry for you, being forced against your will to make newsgroup postings by the nasty big Java programmers.
...
Your design is obviously unmaintainable and inefficient, why can you not see this?
Twisted - 26 Nov 2006 04:31 GMT > [snip] Your design is [snip] If you are going to criticize, make it constructive. Suggest how you would do it instead. Otherwise, shut up.
Andrew Thompson - 26 Nov 2006 04:49 GMT > > [snip] Your design is [snip] > > If you are going to criticize, make it constructive. Suggest how you > would do it instead. The 'earth is round' answer has already been provided by Patricia, Tom, Fred & nalhawash with refinements offered by Andreas, Daniel, Chris and Ingo.
How many times do you need to hear it, before it does not bear repeating? (Note that most of the rest of the people here, would be grateful to foobarbaz for sparing us the bandwidth..)
>... Otherwise, shut up. As an aside. You are an *excellent* troll - my score for your recent efforts, is '9.4'.
Andrew T.
Twisted - 26 Nov 2006 06:26 GMT > How many times do you need to hear it, before it > does not bear repeating? (Note that most of the > rest of the people here, would be grateful to > foobarbaz for sparing us the bandwidth..) Which is what, add an extra test for null every iteration of a loop that in the current setting can never test true? (Now that access is synchronized. It hasn't cropped up in days now.)
foobarbazqux@hotmail.com - 26 Nov 2006 21:06 GMT > > > [snip] Your design is [snip] > > > > If ...
> (Note that most of the > rest of the people here, would be grateful to > foobarbaz for sparing us the bandwidth..) Andrew, please use your killfile. I'm just applying reductio ad absurdam to Twisted's assertion that he is FORCED to respond to every posting. Everyone but he must by now be aware that it is only Twisted's own ego that forces him to carry on like this. I doubt he is capable of getting it under control.
If Twisted doesn't understand why synchronisation reduced the frequency of occurrence of the NPE then he is just postponing the date when he'll have to get to grips with his bugs.
I wonder if Twisted has considered upgrading his JRE to 1.6 and retesting without synchronisation?
Twisted - 27 Nov 2006 03:21 GMT [Snip some nonsensical ranting about my ego]
You seem to be obsessed with other peoples' egos. Perhaps this is the wrong newsgroup though.
> If Twisted doesn't understand why synchronisation reduced the frequency > of occurrence of the NPE then he is just postponing the date when he'll > have to get to grips with his bugs. Like I've said a thousand times before, it didn't "reduce" anything; it stopped the NPEs, because concurrency flubs were the *sole* cause. The only way it could happen any more would be if a user elects to put a symlink into the directory tree it created, which isn't intended for user modification anyway.
> I wonder if Twisted has considered upgrading his JRE to 1.6 and > retesting without synchronisation? I *am* using 1.6, but I don't see any point in doing anything without synchronization that clearly requires it for threadsafety!
foobarbazqux@hotmail.com - 28 Nov 2006 20:03 GMT > [Snip some nonsensical ranting about my ego] You mean this "Twisted's assertion that he is FORCED to respond to every posting. Everyone but he must by now be aware that it is only Twisted's own ego that forces him to carry on like this."
> > If Twisted doesn't understand why synchronisation reduced the frequency > > of occurrence of the NPE then he is just postponing the date when he'll [quoted text clipped - 5 lines] > symlink into the directory tree it created, which isn't intended for > user modification anyway. Q.E.D.
I'm not forcing you to respond, you have the choice don't you?
Concurrency "flubs" must almost always be caused by incorrect use of threads in the first place.
Twisted - 29 Nov 2006 11:42 GMT > > [Snip some nonsensical ranting about my ego] > > You mean this > [Snip some more nonsensical ranting about my ego] Just because you repeat it six zillion times doesn't mean it's true asswipe.
> I'm not forcing you to respond, you have the choice don't you? Not if I want your public accusations to be countered by equally-public rebuttals.
> Concurrency "flubs" must almost always be caused by incorrect use of > threads in the first place. As in lack of "synchronized (foo)" around access to shared non-immutable resources?
foo bar baz qux - 29 Nov 2006 21:36 GMT > > > [Snip some nonsensical ranting about my ego] > > > > You mean this > > [Snip some more nonsensical ranting about my ego] You mean this "Twisted's assertion that he is FORCED to respond to every posting. Everyone but he must by now be aware that it is only Twisted's own ego that forces him to carry on like this."
> Just because you repeat it six zillion times doesn't mean it's true If it was true the first time, it would still be true the six zillionth.
> asswipe. It's conventional to put your signature at the *end* of the message.
> > I'm not forcing you to respond, you have the choice don't you? > > Not if I want your public accusations to be countered by equally-public > rebuttals. So, you can be made to dance at anyone's whim, anytime. For the rest of your life.
> > Concurrency "flubs" must almost always be caused by incorrect use of > > threads in the first place. > > As in lack of "synchronized (foo)" around access to shared > non-immutable resources? Not necessarily.
Tom Forsmo - 30 Nov 2006 00:54 GMT > You mean this > "Twisted's assertion that he is FORCED to respond to every > posting. Everyone but he must by now be aware that it is only Twisted's > own ego that forces him to carry on like this." Yes, and thats the funny part....
>> asswipe. > > It's conventional to put your signature at the *end* of the message. LOL
>>> I'm not forcing you to respond, you have the choice don't you? >> Not if I want your public accusations to be countered by equally-public >> rebuttals. > > So, you can be made to dance at anyone's whim, anytime. For the rest of > your life. Another LOL
Twisted - 30 Nov 2006 05:39 GMT [filtering all inarticulate, content-free blather]
[nothing left?!]
Hrm, looks like you forgot to actually put anything meaningful in your post.
OK, moving along now...
Daniel Pitts - 30 Nov 2006 18:01 GMT > [filtering all inarticulate, content-free blather] > [quoted text clipped - 4 lines] > > OK, moving along now... He doesn't need to put anything meaningful, if he follows your example at least.
Twisted - 30 Nov 2006 23:09 GMT > He doesn't need to put anything meaningful, if he follows your example > at least. This appears to be an insult. If so, it is false and you should shut up.
Twisted - 30 Nov 2006 05:26 GMT > You mean this[snip] SHUT UP ALREADY. You're like a goddam stuck record!
> If it was true the first time, it would still be true the six > zillionth. So would "2 + 2 = 5". Your statement is basically meaningless.
> It's conventional to put your signature at the *end* of the message. Oh ho, very clever. Not. Your wit is comparable to that of one of my neighbor's three pigs. The one that frequently leaves runny turds right at the boundary fence as a matter of fact.
[Further insulting dreck deleted, all of it mischaracterizing me grossly without anything resembling evidence]
> > > Concurrency "flubs" must almost always be caused by incorrect use of > > > threads in the first place. [quoted text clipped - 3 lines] > > Not necessarily. In the same way that your various spoutings are "not necessarily" due to a deep loathing you feel towards me? Yeah, right. Like I'm going to believe *you*.
Twisted - 27 Nov 2006 03:39 GMT [Snip some nonsensical ranting about my ego]
You seem to be obsessed with other peoples' egos. Perhaps this is the wrong newsgroup though.
> If Twisted doesn't understand why synchronisation reduced the frequency > of occurrence of the NPE then he is just postponing the date when he'll > have to get to grips with his bugs. Like I've said a thousand times before, it didn't "reduce" anything; it stopped the NPEs, because concurrency flubs were the *sole* cause. The only way it could happen any more would be if a user elects to put a symlink into the directory tree it created, which isn't intended for user modification anyway.
> I wonder if Twisted has considered upgrading his JRE to 1.6 and > retesting without synchronisation? I *am* using 1.6, but I don't see any point in doing anything without synchronization that clearly requires it for threadsafety!
foobarbazqux@hotmail.com - 26 Nov 2006 20:55 GMT > > [snip] Your design is [snip] > > If you are going to criticize, What do you mean "if". I am definitely criticizing your approach to the problem. Couldn't you tell?
> make it constructive. You're deluded if you think you have any authority in this newsgroup. I spurn your directive! You've had a surfeit of constructive help.
> Suggest how you would do it instead. Another order, your delusion deepens. You've had plenty of sensible suggestions which you chose to ignore or dismiss offhand.
> Otherwise, shut up. You thrice compound your error. Your debating skills might suffice for 5 year olds in the schoolyard but I think you'll need to apply more adult reasoning in this newsgroup if you wish to persuade anyone.
Why don't you use the Observer Pattern?
Twisted - 27 Nov 2006 03:17 GMT > You're deluded if you think you have any authority in this newsgroup. So are you. Yet you persist in telling me what to do. Why?
> Another order, your delusion deepens. You've had plenty of sensible > suggestions which you chose to ignore or dismiss offhand. I determined that the problem was a concurrency one and fixed it. End of story -- or should have been, anyway. Why do you keep posting to this thread?
> ...if you wish to persuade anyone. I don't wish to persuade anyone of anything, except that they should leave me alone when they are not responding helpfully to something I wrote. Right now there are several people doing neither (here and in another thread). They stand to gain nothing, yet they continue, and in doing so they continue to aggravate me.
foobarbazqux@hotmail.com - 27 Nov 2006 22:44 GMT > > You're deluded if you think you have any authority in this newsgroup. > > So are you. More pantomime debate. If I did I would be, but I didn't.
> Yet you persist in telling me what to do. You said "If you are going to criticize,make it constructive."
I said "I think you'll need to apply more adult reasoning in this newsgroup if you wish to persuade anyone."
See the difference? Prefixing with "I think" makes mine more of an observation than your directive".
> Why? I'll take that as rhetorical.
> > You've had plenty of sensible > > suggestions which you chose to ignore or dismiss offhand. > > I determined that the problem was a concurrency one and fixed it. No you didn't, you found that adding concurrency diminished the frequency of occurrence. The cause is as much a mystery to you today as it was when you first posted on this subject.
> End of story -- or should have been, anyway. Why do you keep posting to > this thread? You enjoy it really.
> > ...if you wish to persuade anyone. > > I don't wish to persuade anyone of anything, except that they should > leave me alone when they are not responding helpfully to something I > wrote. Right now there are several people doing neither (here and in > another thread). They stand to gain nothing, You've missed something there.
> yet they continue, and in doing so they continue to aggravate me. As ye sow, so shall ye reap.
Twisted - 28 Nov 2006 06:58 GMT [Snip lots of content-free ramblings]
> > I determined that the problem was a concurrency one and fixed it. > > No you didn't, you found that adding concurrency diminished the > frequency of occurrence. To zero. Which is the same thing, moron.
> > I don't wish to persuade anyone of anything, except that they should > > leave me alone when they are not responding helpfully to something I > > wrote. Right now there are several people doing neither (here and in > > another thread). They stand to gain nothing, > > You've missed something there. Oh? Such as? Tell me what you gain by posting drivel like the reeking turd I'm replying to? Or hacking GG to make my replying spam random extra newsgroups and put me over Google's dumbass limit, for that matter? (Which activity you seem to have stopped, once I caught on to it and it thereby became futile.)
> > yet they continue, and in doing so they continue to aggravate me. > > As ye sow, so shall ye reap. Are you claiming that I attacked you before you ever attacked me? If so, it's a damn lie...
foobarbazqux@hotmail.com - 28 Nov 2006 20:24 GMT > > > I determined that the problem was a concurrency one and fixed it. > > > > No you didn't, you found that adding concurrency diminished the > > frequency of occurrence. > > To zero. Which is the same thing, moron. For all you know, the frequency of occurrence has a period greater than the short elapsed time over which you've carried out testing.
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.
> > > I don't wish to persuade anyone of anything, except that they should > > > leave me alone when they are not responding helpfully to something I [quoted text clipped - 4 lines] > > Oh? Such as? Tell me what you gain Isn't it obvious?
> by posting drivel like the reeking turd I'm replying to? You love it.
> Or hacking GG a) Look at the headers of the chain of messages and you'll see who added the FollowUp.
b) Using Followups is hardly hacking (in either sense). Even GG provide a "Add a followup-to header" link above every "Repy-to" form. Only a fool thinks clicking a link in a web page is hacking.
> to make my replying spam random extra newsgroups and put > me over Google's dumbass limit, Would that be dumbass limit as in limit for dumbasses? How apt.
> for that matter? (Which activity you > seem to have stopped, once I caught on to it and it thereby became > futile.) I didn't start, so it's inaccurate to say I stopped.
> > > yet they continue, and in doing so they continue to aggravate me. > > > > As ye sow, so shall ye reap. > > Are you claiming that I attacked you before you ever attacked me? Let me explain it in simple words: You aggravate others, this leads to others aggravating you in turn. Saying "but but he started it!" is a rather juvenile form of pleading.
> If so, it's a damn lie... Obvious use of the strawman argument there. Your premise is false. I'm not attacking you, I'm having a pleasant conversation with you.
Twisted - 29 Nov 2006 11:56 GMT > 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...)
> > > > I don't wish to persuade anyone of anything, except that they should > > > > leave me alone when they are not responding helpfully to something I [quoted text clipped - 6 lines] > > Isn't it obvious? 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.
> > by posting drivel like the reeking turd I'm replying to? > > You love it. 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?
foo bar baz qux - 29 Nov 2006 22:14 GMT > > 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. <usual boring rant deleted unread> Addressed at end ...
> Why is this even still being discussed?! Because you wish to continue discussing it.
> You seem awfully convinced that something else is wrong, Do I seem convinced?
> > > > > I don't wish to persuade anyone of anything, except that they should > > > > > leave me alone when they are not responding helpfully to something I [quoted text clipped - 8 lines] > > No, it isn't. Think about it a little harder. I've dropped plenty of rather obvious clues.
> 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, I've invested a lot less time than you. I'm not on a quest. If you've been proved to be those things then it is you who has provided the proof.
> but you haven't bothered to tell anybody why you > want this. I don't but if I did want that, I wouldn't necessarily feel any need to say why.
> > > by posting drivel like the reeking turd I'm replying to? > > > > You love it. > > No, I don't, but I am not able to just leave it alone either, or people > might actually start to believe your BS. You can't leave it alone *because* you love that sort of response.
> [Snip further insults, irrelevancies, and BS] You mean this
T: yet they continue, and in doing so they continue to aggravate me.
F: As ye sow, so shall ye reap.
T: Are you claiming that I attacked you before you ever attacked me?
F: Let me explain it in simple words: You aggravate others, this leads to others aggravating you in turn. Saying "but but he started it!" is a rather juvenile form of pleading.
> > Let me explain it in simple words: You aggravate others > > False. Anyone reading the start of this thread can see that you aggravate others.
> I did not throw the first punch, and anyone claiming otherwise is > either a retard or a liar. You are repeating yourself, did you forget. Here's my earlier reply
F: Saying "but but he started it!" is a rather juvenile form of pleading.
> If something I did is "aggravating", it was after I was provoked. By > you. You are repeating yourself again. I refer you to my earlier answer.
> > 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". I'm enjoying it, aren't you?
> 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. Do you speak from experience?
> What kind of "pleasant conversation" has one of the > participants (i.e. you) uttering insults, put-downs, and other such > crap I'll treat this as an abstract question: The kind where the other participant enjoys it.
Remember at the top of this reply I said "addressed at end." Were anyone following this thread, they would be able to observe that it is you who introduce those things into our conversation.
> every other time he opens his mouth? Hmm? I know you prefer unconventional approaches to tasks (e.g. loading icons), but I operate my keyboard with my hands. Your way must be messy and uncomfortable :-)
Twisted - 30 Nov 2006 05:37 GMT > > Why is this even still being discussed?! > > Because you wish to continue discussing it. No I don't. But by wish not to leave this with an insult standing unchallenged is stronger. Now why don't you tell me why *you* wish to continue this nonsense of yours?
> > You seem awfully convinced that something else is wrong, > > Do I seem convinced? This is comp.lang.java.programmer. Psychiatrists are asked to please leave; only rigorous logic is wanted here, and answering questions with questions, psychobabble, trying to draw out the "patient", and so forth are ineffective on software anyway. So please go away.
[several meaningless, untrue insults snipped]
> > No, I don't, but I am not able to just leave it alone either, or people > > might actually start to believe your BS. > > You can't leave it alone *because* you love that sort of response. Another lie. You and Attacki vying for some prize here? First to accumulate 100 bald-faced lies that you get called on? (Whoever gets there first is the loser, as far as I am concerned.)
> > [Snip further insults, irrelevancies, and BS] > > You mean this [snip repetition]
STOP REINSERTING SNIPPED MATERIAL FUCKHEAD. I SNIPPED IT BECAUSE I DON'T WANT IT BEING SPREAD AROUND OR BELIEVED BY ANYBODY. ARE YOU f.cking STUPID OR SOMETHING?! JEEZ!
> > > Let me explain it in simple words: You aggravate others > > > > False. > > Anyone reading the start of this thread can see that you aggravate > others. No. They can see that people (including, eventually, me) *got* aggravated; that much is true. But that doesn't mean I did it. Why on earth would I want to anyway, given what the result is? Anyway, it is only people like you who feel the need to point fingers of blame (and invariably end up pointing in the wrong damn direction at that).
> You are repeating yourself, did you forget. Here's my earlier reply [snip insult]
Eh. What? There's no "reply" there, just another dim-witted ad-hominem attack.
> I'm enjoying it, aren't you? NO, you bloody moron! Now shut up! :P
> > then you are hopelessly > > delusional and need to check yourself into the nearest psych ward. They [quoted text clipped - 3 lines] > > Do you speak from experience? Don't be insulting.
> I'll treat this as an abstract question: The kind where the other > participant enjoys it. Clearly a lie, since I do not enjoy it. This is work for me, not play; work you're forcing me to do, to clean up the stupid messes you keep leaving.
> Remember at the top of this reply I said "addressed at end." Were > anyone following this thread, they would be able to observe that it is > you who introduce those things into our conversation. Stop lying and shut the hell up.
> > every other time he opens his mouth? Hmm? > > I know you prefer unconventional approaches to tasks (e.g. loading > icons), but I operate my keyboard with my hands. Your way must be messy > and uncomfortable :-) This is way too stupid a remark to bother dignifying with a proper rebuttal. Go away.
Tom Forsmo - 30 Nov 2006 01:05 GMT >> Let me explain it in simple words: You aggravate others > > False. No its actually true, you do aggravate others, trust me that's why you have been spending the better part of a week or two arguing this and a couple of other threads :)
> 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. To say it with your words: [irrelevant dribble delete] (well no quite deleted, but any way...)
But in any case, if you get into a street fight because some guy tries to hit you and you throw a punch you that misses and then throws a punch that kills the guy, you think you can get away with telling the police its not your fault because he started it... lol
>> 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. The cat always thinks its pleasant to chase a mouse....
Twisted - 30 Nov 2006 05:41 GMT > >> Let me explain it in simple words: You aggravate others > > > > False. > > No its actually true [reiteration of stupid baseless insult] Go to hell.
> But in any case, if you get into a street fight because some guy tries > to hit you and you throw a punch you that misses and then throws a punch > that kills the guy, you think you can get away with telling the police > its not your fault because he started it... lol When you start to come off your meth high and make sense, please be sure to let me know.
> The cat always thinks its pleasant to chase a mouse.... But it's not nice for the mouse. Cats aren't civilized or self-aware or any of that, but humans are, and human behavior that's equivalent and directed at other human beings is wrong. So stop it.
Tom Forsmo - 02 Dec 2006 02:13 GMT >>>> Let me explain it in simple words: You aggravate others >>> False. >> No its actually true [reiteration of stupid baseless insult] > > Go to hell. I am in hell at the moment :) and I will stay here until I vanquish the devil...
>> But in any case, if you get into a street fight because some guy tries >> to hit you and you throw a punch you that misses and then throws a punch [quoted text clipped - 3 lines] > When you start to come off your meth high and make sense, please be > sure to let me know. Im am sorry that it does not make any sense to you, but please let me know in the future if you manage to make sense of it (its really not that difficult to understand).
>> The cat always thinks its pleasant to chase a mouse.... > > But it's not nice for the mouse. Did you ever hear the story of the scorpion and the turtle trying to cross a stream?...
Animals dont have feelings and abstract understanding as humans do, so to them its not a matter whether its nice, it just a biological reflex of how to react, in other words their nature.
> Cats aren't civilized Shall I tell you why? because only people can be civilised, its part of the definition of being civilised.
> or self-aware or > any of that, but humans are, and human behavior that's equivalent and > directed at other human beings is wrong. So stop it. Yes please stop it, you are directing non-human behaviour at other humans. And as you say it; its wrong, so stop it.
Twisted - 02 Dec 2006 03:59 GMT [compares me to satan]
Well, at least you aim high, even if you keep mistakenly attacking the wrong target. He's THATaway, doofus!
> Im am sorry that it does not make any sense to you, but please let me > know in the future if you manage to make sense of it (its really not > that difficult to understand). I'm guessing it wouldn't have been had you been sober at the time you wrote it. Unfortunately, it came out a mangled mess and seemingly completely irrelevant here anyway.
> >> The cat always thinks its pleasant to chase a mouse.... > > [quoted text clipped - 6 lines] > to them its not a matter whether its nice, it just a biological reflex > of how to react, in other words their nature. Yeah. So, what's *your* excuse?
> Yes please stop it, you are directing non-human behaviour at other > humans. And as you say it; its wrong, so stop it. You've gotten it backwards again, dumbass. I'm the one on defense here remember? It's Attardi and, lately, mainly *you* directing "non-human" behavior at *me*. (I think the technical term is "inhuman" actually, although "psychotic" or just plain "evil" will do.)
Now please, Satan, go vanquish thyself as promised earlier. ;)
Tom Forsmo - 02 Dec 2006 04:25 GMT > [compares me to satan] Too right :D Just keeping it real you know...
> Well, at least you aim high, even if you keep mistakenly attacking the > wrong target. He's THATaway, doofus! Allmost funny, but still ill fated.
>> Im am sorry that it does not make any sense to you, but please let me >> know in the future if you manage to make sense of it (its really not [quoted text clipped - 3 lines] > wrote it. Unfortunately, it came out a mangled mess and seemingly > completely irrelevant here anyway. Its easier to just avoid though questions like these, with sarcasm, isnt it?
>> Animals dont have feelings and abstract understanding as humans do, so >> to them its not a matter whether its nice, it just a biological reflex >> of how to react, in other words their nature. > > Yeah. So, what's *your* excuse? human nature... what is yours?
> Now please, Satan, go vanquish thyself as promised earlier. ;) after you... ladies first...
(i am having so much fun... :D how about you? want to go another round?)
Twisted - 02 Dec 2006 04:57 GMT [snip a variety of largely nonsensical, mildly-insulting crud]
> > Yeah. So, what's *your* excuse? > > human nature... what is yours? I don't need one. Unlike you, I'm not a vicious predatory sociopath.
Now either take this to e-mail or take it to /dev/null, your choice.
Tom Forsmo - 30 Nov 2006 00:57 GMT >>>> I determined that the problem was a concurrency one and fixed it. >>> No you didn't, you found that adding concurrency diminished the [quoted text clipped - 20 lines] > > You love it. or "you love it, you slag..."
Funny :)
>> If so, it's a damn lie... > > Obvious use of the strawman argument there. Your premise is false. I'm > not attacking you, I'm having a pleasant conversation with you. In fact, we are all having pleasant conversations... :)
Twisted - 30 Nov 2006 05:39 GMT > In fact, we are all having pleasant conversations... :) That's false. I, for one, am not. Now GO AWAY.
Tom Forsmo - 02 Dec 2006 02:03 GMT >> In fact, we are all having pleasant conversations... :) > > That's false. I, for one, am not. Now GO AWAY. Well, I was talking about you... I was talking about the rest of us.
Twisted - 02 Dec 2006 03:45 GMT > >> In fact, we are all having pleasant conversations... :) > > > > That's false. I, for one, am not. Now GO AWAY. > > Well, I was talking about you... I was talking about the rest of us. Well there's part of your problem. You're an inconsiderate prick, not to mention you couldn't find your spellchecker with both hands and a map. Now go away.
Tom Forsmo - 02 Dec 2006 03:56 GMT >>>> In fact, we are all having pleasant conversations... :) >>> That's false. I, for one, am not. Now GO AWAY. [quoted text clipped - 3 lines] > to mention you couldn't find your spellchecker with both hands and a > map. Now go away. I WILL NOT GO AWAY... :) how do you like them apples?
Joe Attardi - 29 Nov 2006 02:50 GMT > Or hacking GG to make my replying spam random extra newsgroups and put > me over Google's dumbass limit, for that matter? (Which activity you > seem to have stopped, once I caught on to it and it thereby became > futile.) HAHAHAHAHAHAHA!!!!! Twisted thinks that people in *this* thread are limiting his posts too? Hacking Google Groups, what a laugh. Oh Twisted. You make me laugh.
Twisted - 29 Nov 2006 11:58 GMT Joe Retardi wrote:
> > Or hacking GG to make my replying spam random extra newsgroups and put > > me over Google's dumbass limit, for that matter? (Which activity you > > seem to have stopped, once I caught on to it and it thereby became > > futile.) > > HAHAHAHAHAHAHA!!!!! [Snip rest of similarly juvenile crap]
I thought you'd promised to shut the f.ck up? Oh, yes; for the 3rd or 4th time. It's not really surprising (disappointing, but not surprising) to see you make a liar of yourself yet again. Asswipe.
Joe Attardi - 29 Nov 2006 15:07 GMT > I thought you'd promised to shut the f.ck up? Oh, yes; for the 3rd or > 4th time. It's not really surprising (disappointing, but not > surprising) to see you make a liar of yourself yet again. Asswipe. All right, tough guy. Way to completely dodge the issue yet again!
Twisted - 29 Nov 2006 16:36 GMT > > I thought you'd promised to shut the f.ck up? Oh, yes; for the 3rd or > > 4th time. It's not really surprising (disappointing, but not > > surprising) to see you make a liar of yourself yet again. Asswipe. > All right, tough guy. Way to completely dodge the issue yet again! The only "issue" here is your belligerancy (and pathological lying); the original Java-related problem is long gone.
Joe Attardi - 29 Nov 2006 21:57 GMT > The only "issue" here is your belligerancy (and pathological lying); > the original Java-related problem is long gone. Belligerancy? Now you're making words up too.
I see your gift of exaggeration is alive and well. Pathological lying? Saying you're done with a thread, then deciding you'd like to participate again is not lying, let alone pathological. If I want to get back involved with a conversation again, that's my right. So stop your bitching and whining about pathological lying.
Now for ONCE can you not dodge the question and answer me this: Why does the trend seem to be that once you get into a discussion on Usenet, you quickly turn it into a heated argument where the original topic is long-gone? If you claim that this isn't true, then it's you that are lying.
Twisted - 30 Nov 2006 05:29 GMT Joe Attacki strikes again:
> > The only "issue" here is your belligerancy (and pathological lying); > > the original Java-related problem is long gone. > Belligerancy? Now you're making words up too. I'm not responsible for your lack of dictionary-foo. Now go sulk in a corner for a while or something.
> If I want to get back involved with a conversation again, that's my right. Not if your "involvement" is solely for the purpose of character assassination, it isn't.
> Now for ONCE can you not dodge the question You are not in any position to be asking me irrelevant, non-Java-related questions. If you really really want to, use e-mail.
> and answer me this: Why > does the trend seem to be that once you get into a discussion on > Usenet, you quickly turn it into a heated argument where the original > topic is long-gone? [snip calling me a liar] Tell me sir, have you stopped beating your wife yet?
When you have a yes or no answer to that, I'll get back to you on your question. Fair's fair.
Joe Attardi - 30 Nov 2006 06:26 GMT > Joe Attacki strikes again: Still intent on first-grade insults of my last name? OK.
> I'm not responsible for your lack of dictionary-foo. Now go sulk in a > corner for a while or something. Actually it is you who lacks dictionary skills. There is no such word. Try "belligerence" or "belligerency".
>> If I want to get back involved with a conversation again, that's my right. > Not if your "involvement" is solely for the purpose of character > assassination, it isn't. It's not character assassination. Either way, though, it actually is still my right. Since this is an unmoderated public newsgroup, as you have stressed to strongly before, anyone has the right to post anything.
>Tell me sir, have you stopped beating your wife yet? > When you have a yes or no answer to that, I'll get back to you on your > question. Fair's fair. Wait, what!? That is the most random question ever. What does spousal abuse have to do with anything being discussed here? Besides, I'm not married yet, so I don't have a wife to beat, nor will I once I am married. Not sure what you were going for here, but you got your answer, at least.
Twisted - 30 Nov 2006 17:57 GMT [another fairly diverse assortment of insults]
Ah, the "broad-spectrum antibiotic" approach. Insult a whole variety of different things about someone at once in the hope of finding at least one vulnerable point. Unfortunately, when you are so juvenile about it it doesn't work, as it's kind of like diluting that antibiotic to one part in a million and still expecting it to kill anything.
Some specific rebuttals:
> It's not character assassination. Liar.
> Either way, though, it actually is > still my right. Since this is an unmoderated public newsgroup, as you > have stressed to strongly before, anyone has the right to post > anything. The ability to, anyway. That doesn't mean some behavior isn't wrong, such as: * Intentionally being inflammatory * Intentionally piloting a thread off-topic * Character assassination attempts...
Funnily enough, by that measure you're guilty of virtually every crime usenet has a law for (or what passes for law hereabouts, anyway).
> >Tell me sir, have you stopped beating your wife yet? > > When you have a yes or no answer to that, I'll get back to you on your > > question. Fair's fair. > Wait, what!? That is the most random question ever. No, actually, it is not. It's from a famous legal case in which a judge was insisting that a witness answer "yes" or "no" to a loaded question -- one where either answer admits to something.
Sneakily-worded questions are often used to try to get "facts" entered into evidence without debate or proper review. And I was (somewhat obscurely, I admit) calling you on your latest attempt to do so, in which you asked a question that asked why I <something evil> and, in the process, tried to sneak in a baseless claim *that* I <something evil> under the radar.
In other words, "Nice try". :P
Joe Attardi - 30 Nov 2006 20:03 GMT ** Cracks knuckles and prepares for another round of this nonsense **
> Joe Attardi wrote:[another fairly diverse assortment of insults] Now hang on. You want to talk about insults? You are taking my last name and changing the spelling of it to try to make fun of me. That is a childhood school-age style of insult. The fact that you continue to do it pretty much nullifies any claims you have about being insulted yourself.
> Ah, the "broad-spectrum antibiotic" approach. Insult a whole variety of > different things about someone at once in the hope of finding at least > one vulnerable point. Unfortunately, when you are so juvenile about it > it doesn't work, as it's kind of like diluting that antibiotic to one > part in a million and still expecting it to kill anything. ??! What are you talking about? You said I didn't have dictionary-foo [sic] and I corrected you with how the word is actually spelled. What does that have to do with "insult[ing] a whole variety of different things about someone at once" ?
> Liar. This seems to be what you say to something for which you have no response or counter examples. When all else fails, just call the person a liar, eh Twisted?
> * Intentionally being inflammatory Twisted says: >>> "Joe Retardi" >>> "Go f.ck yourself" >>> "Fucktard!"
> * Intentionally piloting a thread off-topic Twisted says: >> "You are clinically insane"
> * Character assassination attempts... Twisted says: >> "Tell me sir, have you stopped beating your wife yet?"
My "double-standard" alarm has been tripped! You are guilty of everything you are accusing others of. At least I have provided some examples. Could you do the same? Oh yeah, you can't, because you apparently use a single-threaded single-window browser in a non-multitasking operating system.
> Funnily enough, by that measure you're guilty of virtually every crime > usenet has a law for (or what passes for law hereabouts, anyway). I'm sorry, usenet has laws or rules? Kind of hard for an unmoderated forum don't you think? (Although at least you have good taste in movies. [assuming that was a Matrix reference])
> Sneakily-worded questions are often used to try to get "facts" entered > into evidence without debate or proper review. And I was (somewhat > obscurely, I admit) calling you on your latest attempt to do so, in > which you asked a question that asked why I <something evil> and, in > the process, tried to sneak in a baseless claim *that* I <something > evil> under the radar. Are you convinced that this is some sort of courtroom drama?
Twisted - 30 Nov 2006 23:19 GMT > ** Cracks knuckles and prepares for another round of this nonsense ** ** Cocks gun and prepares to end this nonsense once and for all **
> > Joe Attardi wrote:[another fairly diverse assortment of insults] > Now hang on. You want to talk about insults? You are taking my last > name and changing the spelling of it to try to make fun of me. You started it. Then when I land a blow you cry foul? If you're that wimpy you shouldn't pick fights, moron!
> ??! What are you talking about? You said I didn't have dictionary-foo > [sic] and I corrected you with how the word is actually spelled. What > does that have to do with "insult[ing] a whole variety of different > things about someone at once" ? Your "correcting" me IS an insult, dweeb. I do not need "correcting". Certainly not about either spelling or Java. Any suggestion at all to the contrary is going to provoke a violently hostile reaction from me, since it cannot be allowed to stand unchallenged. And it wasn't the only insult I'd snipped in that batch, dumbass.
> > Liar. > This seems to be what you say to something for which you have no > response or counter examples. No, it's what I say when someone lied and the thread history speaks for itself. Oh yeah, but I forget, you seem to believe our mutual audience (if anyone is even still paying attention to this nonsense) has an average IQ in the teens and no memory to speak of, and everything has to be cited like in some scholarly journal or something because otherwise they'll have no chance of either remembering it on their own or doing their own googling to find it. Right.
> > * Intentionally being inflammatory > Twisted says:[snip] Doesn't count. I didn't do anything of the sort until the thread was already in flames. It was one of you who put it into that state, not I.
> > * Intentionally piloting a thread off-topic > Twisted says: > >> "You are clinically insane" The thread was already way off-topic long before then, dimbulb. Someone else steered it there; I just found it like that.
> > * Character assassination attempts... > Twisted says: > >> "Tell me sir, have you stopped beating your wife yet?" I explained that that was an example to show you that your stupid trick of asking loaded questions a) actually is stupid and b) won't work, but it sailed right over your head. I *did* forgot to adjust for your substantially subnormal IQ; I freely admit this. In any event, since you do recognize that asking such a loaded question constitutes a character assassination attempt, you will hopefully now apologize for your own loaded, character-attacking questions.
> My "double-standard" alarm has been tripped! You are guilty of > everything you are accusing others of. Wrong! See above. I didn't pilot anything off-topic; only found it already adrift there. I didn't inflame the thread either; you did that. And I didn't do anything of the sort *first*, but only when attacked and provoked by a bunch of crazed howler monkeys given steroids and internet access.
> > Sneakily-worded questions are often used to try to get "facts" entered > > into evidence without debate or proper review. And I was (somewhat [quoted text clipped - 3 lines] > > evil> under the radar. > Are you convinced that this is some sort of courtroom drama? You're the one putting me on trial. You tell me whether it's a courtroom drama or not. :P
vjg - 02 Dec 2006 05:12 GMT <snip>
> No, it's what I say when someone lied and the thread history speaks for > itself. Oh yeah, but I forget, you seem to believe our mutual audience > (if anyone is even still paying attention to this nonsense) has an I have to say that I read the whole thread because I was bored and had nothing better to do for a little while. I also have to say that you're nuts... let it go and walk away. Watch closely. This is how it's done.
- Virgil
Twisted - 02 Dec 2006 20:53 GMT > <snip> > [quoted text clipped - 4 lines] > I have to say that I read the whole thread because I was bored and had > nothing better to do for a little while. I also have to say that [insult] Whose hand is inside this sock? Anyone care to own up? :P
Tom Forsmo - 02 Dec 2006 01:48 GMT > Some specific rebuttals: > >> It's not character assassination. > > Liar. Liar liar pants on fire... thats what I used to say when i went to first grade....
> The ability to, anyway. That doesn't mean some behavior isn't wrong, > such as: > * Intentionally being inflammatory > * Intentionally piloting a thread off-topic > * Character assassination attempts... Exactly what you have been doing as well.
>>> Tell me sir, have you stopped beating your wife yet? >>> When you have a yes or no answer to that, I'll get back to you on your [quoted text clipped - 4 lines] > was insisting that a witness answer "yes" or "no" to a loaded question > -- one where either answer admits to something. you do know that this only works in the movies? along with other dramatical techniques such as "your honor, please allow me to treat this witness as a hostile witness" and so on. In real life nobody can dictate or limit what a witness may answer, the witness may even refuse to answer (of course in some cases refusing to answer, can lead to imprisonment, but they can not force you to answer).
Twisted - 02 Dec 2006 03:19 GMT [snip some idiocy]
> > The ability to, anyway. That doesn't mean some behavior isn't wrong, > > such as: [quoted text clipped - 3 lines] > > Exactly what you have been doing as well. Wrong. I didn't inflame the thread; I just found it that way one day. I didn't pilot it off topic either; again I just found it that way. And I'm not the one assassinating here; I'm the one defending!
[snip even further offtopic asides]
John W. Kennedy - 02 Dec 2006 03:31 GMT > you do know that this only works in the movies? along with other
> dramatical techniques such as "your honor, please allow me to treat this > witness as a hostile witness" and so on. In the US (generally):
A witness called by the other side is presumed to be a hostile witness.
A witness called by your side can be ruled a hostile witness by the judge, though it happens far less often in real life than in drama (in general, you don't /want/ to call a hostile witness).
A hostile witness may be asked leading questions.
(See rule 611c of Federal procedure.)
The often-encountered "Answer 'yes' or 'no'" is not established by Federal procedure, as such, but could certainly be interpreted as being allowed, at need, under rule 611a, which essentially allows the judge to do whatever needs to be done to get witness interrogation done efficiently, and in a timely manner.
 Signature John W. Kennedy "The blind rulers of Logres Nourished the land on a fallacy of rational virtue." -- Charles Williams. "Taliessin through Logres: Prelude"
Tom Forsmo - 02 Dec 2006 03:52 GMT > A hostile witness may be asked leading questions. > [quoted text clipped - 3 lines] > do whatever needs to be done to get witness interrogation done > efficiently, and in a timely manner. Even though, the judge can not dictate which answer the witness can give. then its not the witnesses answer any more but the judges or the attorney. If a witness wants to say "Its not that simple" to a question that someone would prefer a yes or no answer to, a judge can not disallow such an answer or instruct the witness to only say yes or no... If he could then justice would be hollow. A judge could then start instructing the witnesses to answer what he or the prosecutor wants him to answer, that's not democracy or rule of law, its fascism. A judge can instruct a witness to answer, but can not tell him what the answer should be.
tom
Chris Uppal - 02 Dec 2006 16:40 GMT > Even though, the judge can not dictate which answer the witness can > give. then its not the witnesses answer any more but the judges or the > attorney. If a witness wants to say "Its not that simple" to a question > that someone would prefer a yes or no answer to, a judge can not > disallow such an answer or instruct the witness to only say yes or no... > If he could then justice would be hollow. Not necessarily -- not at all, one would hope. There are two (classes of) reasons why a witness might not want to give a straightforward answer to an apparently straightforward question. One is that the matter is not actually as straightforward as it appears; the other is t
|
|