A hang is usually caused by one of the following:
Some thread/transaction is not giving up a locked resource
Some thread/transaction are continually trying to get a number of locks but they can never complete the
whole process and the retry is infinite.
You have some code "spinning" in a loop that will never finish.
A JVM/OS bug
There is a problem with the underlying locking primitives, either of the operating system, the c library
or the way the JVM is using them.
To analyse the problem, you need to get some thread dumps. Preferably more than one a few seconds apart. Then analyse the dump for:
Threads that are waiting for locks held by other threads with the other threads not moving (deadlock)
Threads waiting for locks that are not held by anybody (JVM/OS bug)
Threads continually repeating the same code very quickly, accompanied by high cpu utilization (loop)
Is it a JBoss problem