diff options
author | malenkov <none@none> | 2013-09-27 22:25:58 +0400 |
---|---|---|
committer | malenkov <none@none> | 2013-09-27 22:25:58 +0400 |
commit | 1ec50fdf3b57e5e3318a4d13ca912d632dd8b11d (patch) | |
tree | a31bd042096e6592a516816cc1121b198138e8c5 /src/solaris/classes/sun/awt/X11GraphicsEnvironment.java | |
parent | db8699451918240227736ea327b948016e0b3219 (diff) | |
download | jdk8u_jdk-1ec50fdf3b57e5e3318a4d13ca912d632dd8b11d.tar.gz |
7117595: ArrayIndexOutOfBoundsException in Win32GraphicsEnvironment if display is removed
Reviewed-by: anthony, serb
Diffstat (limited to 'src/solaris/classes/sun/awt/X11GraphicsEnvironment.java')
-rw-r--r-- | src/solaris/classes/sun/awt/X11GraphicsEnvironment.java | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/solaris/classes/sun/awt/X11GraphicsEnvironment.java b/src/solaris/classes/sun/awt/X11GraphicsEnvironment.java index 4e1c816fd1..3dece38d45 100644 --- a/src/solaris/classes/sun/awt/X11GraphicsEnvironment.java +++ b/src/solaris/classes/sun/awt/X11GraphicsEnvironment.java @@ -200,7 +200,12 @@ public class X11GraphicsEnvironment * 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() { |