From 1ec50fdf3b57e5e3318a4d13ca912d632dd8b11d Mon Sep 17 00:00:00 2001 From: malenkov Date: Fri, 27 Sep 2013 22:25:58 +0400 Subject: 7117595: ArrayIndexOutOfBoundsException in Win32GraphicsEnvironment if display is removed Reviewed-by: anthony, serb --- src/solaris/classes/sun/awt/X11GraphicsEnvironment.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'src/solaris/classes/sun/awt/X11GraphicsEnvironment.java') 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() { -- cgit v1.2.3