def self.dump_all_thread_backtrace(io)
use_java_bean = defined?(Thread.current.to_java.getNativeThread.getId)
if use_java_bean
begin
bean = java.lang.management.ManagementFactory.getThreadMXBean
java_stacktrace_map = Hash[bean.getThreadInfo(bean.getAllThreadIds, true, true).map {|t| [t.getThreadId, t.toString] }]
rescue
end
end
Thread.list.each do |thread|
dump_backtrace(thread, io)
if java_stacktrace_map
io.write " In Java " + java_stacktrace_map[thread.to_java.getNativeThread.getId]
io.flush
end
end
nil
end