Yeah, the stuck thread issue in relation to java.util.HashMap did ring a bell here too.
There's a blog post somewhere that describes the race condition in its internal resize logic beautifully.
I'll try to find it.
Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.