After getting to learn how gdb worked, I succesfully found an error condition:
If the java::lang::String::strhash[] array at some point contains not a single NULL value, nor the string is already interned, then the forloop on line 66 of natString.cc fails to return, it goes in a busy loop. This can happen because the hash is only resized if the number of not-deleted strings if more than 2/3rd, and the number of deleted strings can be higher than that -- so the strhash is actually full, but is not resized. I guess that because this function, _Jv_StringFindSlot, is synchronized on StringClass, pending deletions are blocked, hence no other tread will resolve this busyloop. This is probably only one of multiple bugs, as this cannot possibly explain the deadlock that sometimes happens. --Jeroen -- Jeroen van Wolffelaar [EMAIL PROTECTED] http://jeroen.A-Eskwadraat.nl