private void checkEventTime(AWTEvent event, long currTime, long startTime) {
		long currProcessingTime = currTime - startTime;
		if (currProcessingTime >= this.thresholdDelay) {
			System.out.println("Event [" + event.hashCode() + "] "
					+ event.getClass().getName()
					+ " is taking too much time on EDT (" + currProcessingTime
					+ ")");

			if (this.threadBean != null) {
				long threadIds[] = threadBean.getAllThreadIds();
				for (long threadId : threadIds) {
					ThreadInfo threadInfo = threadBean.getThreadInfo(threadId,
							Integer.MAX_VALUE);
					if (threadInfo.getThreadName().startsWith("AWT-EventQueue")) {
						System.out.println(threadInfo.getThreadName() + " / "
								+ threadInfo.getThreadState());
						StackTraceElement[] stack = threadInfo.getStackTrace();
						for (StackTraceElement stackEntry : stack) {
							System.out.println("\t" + stackEntry.getClassName()
									+ "." + stackEntry.getMethodName() + " ["
									+ stackEntry.getLineNumber() + "]");
						}
					}
				}

				long[] deadlockedThreads = threadBean.findDeadlockedThreads();
				if ((deadlockedThreads != null)
						&& (deadlockedThreads.length > 0)) {
					System.out.println("Deadlocked threads:");
					for (long threadId : deadlockedThreads) {
						ThreadInfo threadInfo = threadBean.getThreadInfo(
								threadId, Integer.MAX_VALUE);
						System.out.println(threadInfo.getThreadName() + " / "
								+ threadInfo.getThreadState());
						StackTraceElement[] stack = threadInfo.getStackTrace();
						for (StackTraceElement stackEntry : stack) {
							System.out.println("\t" + stackEntry.getClassName()
									+ "." + stackEntry.getMethodName() + " ["
									+ stackEntry.getLineNumber() + "]");
						}
					}
				}
			}
		}
	}