--- old/jdk/src/macosx/classes/sun/awt/CGraphicsEnvironment.java 2013-09-26 17:42:26.358418300 +0400 +++ new/jdk/src/macosx/classes/sun/awt/CGraphicsEnvironment.java 2013-09-26 17:42:25.911392700 +0400 @@ -181,6 +181,9 @@ initDevices(); d = devices.get(mainDisplayID); + if (d == null) { + throw new AWTError("no screen devices"); + } } return d; } --- old/jdk/src/share/classes/sun/java2d/SunGraphicsEnvironment.java 2013-09-26 17:42:29.294586200 +0400 +++ new/jdk/src/share/classes/sun/java2d/SunGraphicsEnvironment.java 2013-09-26 17:42:28.829559600 +0400 @@ -165,7 +165,11 @@ * Returns the default screen graphics device. */ public GraphicsDevice getDefaultScreenDevice() { - return getScreenDevices()[0]; + GraphicsDevice[] screens = getScreenDevices(); + if (screens.length == 0) { + throw new AWTError("no screen devices"); + } + return screens[0]; } /** --- old/jdk/src/solaris/classes/sun/awt/X11GraphicsEnvironment.java 2013-09-26 17:42:32.335760100 +0400 +++ new/jdk/src/solaris/classes/sun/awt/X11GraphicsEnvironment.java 2013-09-26 17:42:31.864733200 +0400 @@ -200,7 +200,12 @@ * Returns the default screen graphics device. */ public GraphicsDevice getDefaultScreenDevice() { - return getScreenDevices()[getDefaultScreenNum()]; + GraphicsDevice[] screens = getScreenDevices(); + if (screens.length == 0) { + throw new AWTError("no screen devices"); + } + int index = getDefaultScreenNum(); + return screens[0 < index && index < screens.length ? index : 0]; } public boolean isDisplayLocal() { --- old/jdk/src/windows/classes/sun/awt/Win32GraphicsEnvironment.java 2013-09-26 17:42:35.305930000 +0400 +++ new/jdk/src/windows/classes/sun/awt/Win32GraphicsEnvironment.java 2013-09-26 17:42:34.790900600 +0400 @@ -93,7 +93,12 @@ protected native int getDefaultScreen(); public GraphicsDevice getDefaultScreenDevice() { - return getScreenDevices()[getDefaultScreen()]; + GraphicsDevice[] screens = getScreenDevices(); + if (screens.length == 0) { + throw new AWTError("no screen devices"); + } + int index = getDefaultScreen(); + return screens[0 < index && index < screens.length ? index : 0]; } /**