Identifying which Java Thread is consuming most CPU

In short: use top (with shift+H to show threads) to get the most CPU intensive threads, use jstack to get a thread dump from the JVM and look for the "nid=<threadid in hex>" value of your rogue thread in the dump.