--- old/jdk/src/share/classes/sun/java2d/SunGraphicsEnvironment.java 2013-09-25 13:50:09.547968900 +0400 +++ new/jdk/src/share/classes/sun/java2d/SunGraphicsEnvironment.java 2013-09-25 13:50:09.085942500 +0400 @@ -165,7 +165,8 @@ * Returns the default screen graphics device. */ public GraphicsDevice getDefaultScreenDevice() { - return getScreenDevices()[0]; + GraphicsDevice[] screens = getScreenDevices(); + return screens.length == 0 ? null : screens[0]; } /** --- old/jdk/src/solaris/classes/sun/awt/X11GraphicsEnvironment.java 2013-09-25 13:50:12.465135800 +0400 +++ new/jdk/src/solaris/classes/sun/awt/X11GraphicsEnvironment.java 2013-09-25 13:50:12.009109700 +0400 @@ -200,7 +200,12 @@ * Returns the default screen graphics device. */ public GraphicsDevice getDefaultScreenDevice() { - return getScreenDevices()[getDefaultScreenNum()]; + GraphicsDevice[] screens = getScreenDevices(); + if (screens.length == 0) { + return null; + } + 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-25 13:50:15.357301200 +0400 +++ new/jdk/src/windows/classes/sun/awt/Win32GraphicsEnvironment.java 2013-09-25 13:50:14.884274100 +0400 @@ -93,7 +93,12 @@ protected native int getDefaultScreen(); public GraphicsDevice getDefaultScreenDevice() { - return getScreenDevices()[getDefaultScreen()]; + GraphicsDevice[] screens = getScreenDevices(); + if (screens.length == 0) { + return null; + } + int index = getDefaultScreen(); + return screens[0 < index && index < screens.length ? index : 0]; } /**