src/java.desktop/share/classes/java/awt/Robot.java

Print this page

        

*** 32,44 **** --- 32,47 ---- import java.awt.image.DirectColorModel; import java.awt.image.Raster; import java.awt.image.WritableRaster; import java.awt.peer.RobotPeer; import java.lang.reflect.InvocationTargetException; + import java.security.AccessController; + import sun.awt.AWTPermissions; import sun.awt.ComponentFactory; import sun.awt.SunToolkit; + import sun.awt.OSInfo; import sun.awt.image.SunWritableRaster; /** * This class is used to generate native system input events * for the purposes of test automation, self-running demos, and
*** 548,578 **** throw new IllegalArgumentException("Delay must be to 0 to 60,000ms"); } } /** ! * Waits until all events currently on the event queue have been processed. * @throws IllegalThreadStateException if called on the AWT event dispatching thread */ public synchronized void waitForIdle() { checkNotDispatchThread(); - // post a dummy event to the queue so we know when - // all the events before it have been processed - try { SunToolkit.flushPendingEvents(); ! EventQueue.invokeAndWait( new Runnable() { ! public void run() { ! // dummy implementation ! } ! } ); ! } catch(InterruptedException ite) { ! System.err.println("Robot.waitForIdle, non-fatal exception caught:"); ! ite.printStackTrace(); ! } catch(InvocationTargetException ine) { ! System.err.println("Robot.waitForIdle, non-fatal exception caught:"); ! ine.printStackTrace(); ! } } private void checkNotDispatchThread() { if (EventQueue.isDispatchThread()) { throw new IllegalThreadStateException("Cannot call method from the event dispatcher thread"); --- 551,571 ---- throw new IllegalArgumentException("Delay must be to 0 to 60,000ms"); } } /** ! * Waits until all events currently on the event queue have been processed and tries ! * to synchronize with the native windowing sub-system. * @throws IllegalThreadStateException if called on the AWT event dispatching thread */ public synchronized void waitForIdle() { checkNotDispatchThread(); SunToolkit.flushPendingEvents(); ! ! // 7185258: realSync() call blocks all DnD tests on OS X ! if (AccessController.doPrivileged(OSInfo.getOSTypeAction()) != OSInfo.OSType.MACOSX) ! ((SunToolkit) Toolkit.getDefaultToolkit()).realSync(); } private void checkNotDispatchThread() { if (EventQueue.isDispatchThread()) { throw new IllegalThreadStateException("Cannot call method from the event dispatcher thread");