Darn, I found it! I knew it was something banal. No, it was stupid. And it was ALL MY FAULT
. When I was originally testing for another problem (which was straightforward and I solved it quickly), I gave user's environment to root to make sure they were operating in the same space, including home directory. Well, under ruser's $HOME/.java there is Cache directory. When root started using it, it changed ownership and ruser was stuck. It didn't show up in lsof because those files were not apparantly opened, just tested for opening or some such. It must have been in strace files, but I missed it.
Well, it works like a charm now.
Thanks everyone. There has got to be one of those once in a while. Fri 13 proved lucky to me this time.
Oh, and the for the last two comments:
, yes, I tried that, too. Since it didn't make a difference in this case, I backed out of it and left a symlink only in the plugins directory.
, I was testing from xterm for debugging info, yes. I also find it more flexible and helpful. I also set up watch points from time to time in startup scripts that would report on the ongoing development of the run environment. That is definitely useful.