--- old/src/java.desktop/share/classes/java/awt/SequencedEvent.java 2017-08-14 11:23:09.125929600 +0530 +++ new/src/java.desktop/share/classes/java/awt/SequencedEvent.java 2017-08-14 11:23:08.483929600 +0530 @@ -106,13 +106,15 @@ if (getFirst() != this) { if (EventQueue.isDispatchThread()) { - EventDispatchThread edt = (EventDispatchThread) - Thread.currentThread(); - edt.pumpEvents(SentEvent.ID, new Conditional() { - public boolean evaluate() { - return !SequencedEvent.this.isFirstOrDisposed(); - } - }); + if (Thread.currentThread() instanceof EventDispatchThread) { + EventDispatchThread edt = (EventDispatchThread) + Thread.currentThread(); + edt.pumpEvents(SentEvent.ID, new Conditional() { + public boolean evaluate() { + return !SequencedEvent.this.isFirstOrDisposed(); + } + }); + } } else { while(!isFirstOrDisposed()) { synchronized (SequencedEvent.class) {