Index: support/src/test/java/javax/swing/BasicSwingTestCase.java =================================================================== --- support/src/test/java/javax/swing/BasicSwingTestCase.java (revision 472039) +++ support/src/test/java/javax/swing/BasicSwingTestCase.java (working copy) @@ -269,7 +269,7 @@ }; protected abstract class ExceptionalCase { - private Class clazz; + private Class clazz; private String msg; public abstract void exceptionalAction() throws Exception; @@ -277,12 +277,12 @@ public ExceptionalCase() { } - public ExceptionalCase(String msg, Class clazz) { + public ExceptionalCase(String msg, Class clazz) { this.msg = msg; this.clazz = clazz; } - public Class expectedExceptionClass() { + public Class expectedExceptionClass() { return clazz; } @@ -293,35 +293,35 @@ protected abstract class BadLocationCase extends ExceptionalCase { @Override - public Class expectedExceptionClass() { + public Class expectedExceptionClass() { return BadLocationException.class; } } protected abstract class ClassCastCase extends ExceptionalCase { @Override - public Class expectedExceptionClass() { + public Class expectedExceptionClass() { return ClassCastException.class; } } protected abstract class IllegalArgumentCase extends ExceptionalCase { @Override - public Class expectedExceptionClass() { + public Class expectedExceptionClass() { return IllegalArgumentException.class; } } protected abstract class NullPointerCase extends ExceptionalCase { @Override - public Class expectedExceptionClass() { + public Class expectedExceptionClass() { return NullPointerException.class; } } protected abstract class StringIndexOutOfBoundsCase extends ExceptionalCase { @Override - public Class expectedExceptionClass() { + public Class expectedExceptionClass() { return StringIndexOutOfBoundsException.class; } } @@ -547,9 +547,9 @@ } protected void rethrow(final Throwable exception) throws Throwable { - String msg = exception.getMessage(); - if (!ignoreNotImplemented || msg == null - || exception.getMessage().indexOf("implemented") == -1) { + final String msg = exception.getMessage(); + if (!ignoreNotImplemented || msg == null + || msg.indexOf("implemented") == -1) { throw exception; } } @@ -562,11 +562,11 @@ } } - protected boolean hasListener(final EventListener[] listeners, final Class listenerClass) { + protected boolean hasListener(final EventListener[] listeners, final Class listenerClass) { return getListener(listeners, listenerClass) != null; } - protected EventListener getListener(final EventListener[] listeners, final Class listenerClass) { + protected EventListener getListener(final EventListener[] listeners, final Class listenerClass) { for (EventListener element : listeners) { if (element.getClass().isAssignableFrom(listenerClass)) { return element; @@ -637,14 +637,24 @@ return robot; } - private void closeAllFrames() { - Frame[] frames = Frame.getFrames(); - for (Frame f : frames) { - if (f.isDisplayable()) { - if (!isSystemWindow(f)) { - f.dispose(); + private final Runnable closeAllFrameFunction = new Runnable() { + public void run() { + Frame[] frames = Frame.getFrames(); + for (Frame f : frames) { + if (f.isDisplayable()) { + if (!isSystemWindow(f)) { + f.dispose(); + } } } } + }; + + private void closeAllFrames() throws Exception { + if (SwingUtilities.isEventDispatchThread()) { + closeAllFrameFunction.run(); + } else { + SwingUtilities.invokeAndWait(closeAllFrameFunction); + } } }