There is a rudimentary profiler included in the JDK from JDK 1.6, I think called jvisualvm. You might try using it to see what's going on. Even better would be a real profiler, but the only good ones are for-pay although some have 30 day free trials.
Paul Tomblin
2010-08-11 17:48:12