I've studied a number of stack traces and the locking seems fine - there is evidence of cyclical deadlock. The problem is that a whole lot of threads (including the ones holding the locks) are listed as 'waiting for monitor' but I can't see why.
I found out that it was the garbage collector that those threads were waiting on, but the gc had given up because I was out of PermGen memory space.
-XX:MaxPermSize=128m fixes the issue :) -- ---------------------------------------- Ninth Avenue Software p: +61 7 3870 8494 (UTC +10) f: +61 7 3870 8491 w: http://www.ninthavenue.com.au e: [EMAIL PROTECTED] ---------------------------------------- --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]