public final class EventDispatchThreadHangMonitor extends java.awt.EventQueue
The original blog can be found here
Automatically detecting AWT event dispatch thread hangs
Modifier and Type | Class and Description |
---|---|
private static class |
EventDispatchThreadHangMonitor.DispatchInfo |
private class |
EventDispatchThreadHangMonitor.HangChecker |
private static class |
EventDispatchThreadHangMonitor.Tests |
Modifier and Type | Field and Description |
---|---|
private static long |
CHECK_INTERVAL_MS |
private java.util.LinkedList<EventDispatchThreadHangMonitor.DispatchInfo> |
dispatches |
private static int |
hangCount |
private boolean |
haveShownSomeComponent |
private static EventDispatchThreadHangMonitor |
INSTANCE |
private static org.slf4j.Logger |
logger |
private static long |
UNREASONABLE_DISPATCH_DURATION_MS |
Modifier | Constructor and Description |
---|---|
private |
EventDispatchThreadHangMonitor() |
Modifier and Type | Method and Description |
---|---|
private static void |
checkForDeadlock() |
protected void |
dispatchEvent(java.awt.AWTEvent event)
Overrides EventQueue.dispatchEvent to call our pre and post hooks either
side of the system's event dispatch code.
|
private static int |
getNewHangNumber() |
static void |
initMonitoring()
Sets up hang detection for the event dispatch thread.
|
private void |
initTimer()
Sets up a timer to check for hangs frequently.
|
static void |
main(java.lang.String[] args) |
private void |
postDispatchEvent()
Stops tracking a dispatch.
|
private void |
preDispatchEvent()
Starts tracking a dispatch.
|
private static java.lang.String |
stackTraceToString(java.lang.StackTraceElement[] stackTrace) |
private static final org.slf4j.Logger logger
private static final EventDispatchThreadHangMonitor INSTANCE
private static final long CHECK_INTERVAL_MS
private static final long UNREASONABLE_DISPATCH_DURATION_MS
private static int hangCount
private boolean haveShownSomeComponent
private final java.util.LinkedList<EventDispatchThreadHangMonitor.DispatchInfo> dispatches
private EventDispatchThreadHangMonitor()
private void initTimer()
public static void initMonitoring()
protected void dispatchEvent(java.awt.AWTEvent event)
dispatchEvent
in class java.awt.EventQueue
private void preDispatchEvent()
private void postDispatchEvent()
private static void checkForDeadlock()
private static java.lang.String stackTraceToString(java.lang.StackTraceElement[] stackTrace)
private static int getNewHangNumber()
public static void main(java.lang.String[] args)