changeset 618:59940b984f90

6699328: NullPointerException in EventQueue.dispatchEvent when applet is closed, only reprise/scenario applet Reviewed-by: bchristi
author idk
date Fri, 25 Jul 2008 14:26:27 -0400
parents 619874c5989f
children 7d45141e5d30
files src/share/classes/com/sun/java/swing/SwingUtilities3.java src/share/classes/sun/awt/EventQueueDelegate.java
diffstat 2 files changed, 20 insertions(+), 16 deletions(-) [+]
line wrap: on
line diff
--- a/src/share/classes/com/sun/java/swing/SwingUtilities3.java	Fri Jul 25 14:13:59 2008 -0400
+++ b/src/share/classes/com/sun/java/swing/SwingUtilities3.java	Fri Jul 25 14:26:27 2008 -0400
@@ -133,42 +133,46 @@
         }
 
         @Override
-        public void afterDispatch(AWTEvent event, Object handle) {
+        public void afterDispatch(AWTEvent event, Object handle) throws InterruptedException {
             afterDispatchEventArgument[0] = event;
             afterDispatchHandleArgument[0] = handle;
             try {
                 afterDispatchCallable.call();
+            } catch (InterruptedException e) {
+                throw e;
+            } catch (RuntimeException e) {
+                throw e;
             } catch (Exception e) {
-                if (e instanceof RuntimeException) {
-                    throw (RuntimeException) e;
-                }
+                throw new RuntimeException(e);
             }
         }
 
         @Override
-        public Object beforeDispatch(AWTEvent event) {
+        public Object beforeDispatch(AWTEvent event) throws InterruptedException {
             beforeDispatchEventArgument[0] = event;
             try {
                 return beforeDispatchCallable.call();
+            } catch (InterruptedException e) {
+                throw e;
+            } catch (RuntimeException e) {
+                throw e;
             } catch (Exception e) {
-                if (e instanceof RuntimeException) {
-                    throw (RuntimeException) e;
-                }
+                throw new RuntimeException(e);
             }
-            return null;
         }
 
         @Override
-        public AWTEvent getNextEvent(EventQueue eventQueue) {
+        public AWTEvent getNextEvent(EventQueue eventQueue) throws InterruptedException {
             getNextEventEventQueueArgument[0] = eventQueue;
             try {
                 return getNextEventCallable.call();
+            } catch (InterruptedException e) {
+                throw e;
+            } catch (RuntimeException e) {
+                throw e;
             } catch (Exception e) {
-                if (e instanceof RuntimeException) {
-                    throw (RuntimeException) e;
-                }
+                throw new RuntimeException(e);
             }
-            return null;
         }
     }
 }
--- a/src/share/classes/sun/awt/EventQueueDelegate.java	Fri Jul 25 14:13:59 2008 -0400
+++ b/src/share/classes/sun/awt/EventQueueDelegate.java	Fri Jul 25 14:26:27 2008 -0400
@@ -58,7 +58,7 @@
          * @param event  to be dispatched by {@code dispatch} method
          * @return handle to be passed to {@code afterDispatch} method
          */
-        public Object beforeDispatch(AWTEvent event);
+        public Object beforeDispatch(AWTEvent event) throws InterruptedException;
 
         /**
          * Notifies delegate after EventQueue.dispatch method.
@@ -66,6 +66,6 @@
          * @param event {@code event} dispatched by the {@code dispatch} method
          * @param handle object which came from {@code beforeDispatch} method
          */
-        public void afterDispatch(AWTEvent event, Object handle);
+        public void afterDispatch(AWTEvent event, Object handle) throws InterruptedException;
     }
 }