aboutsummaryrefslogtreecommitdiff
path: root/src/solaris/classes/sun/awt/X11GraphicsEnvironment.java
diff options
context:
space:
mode:
authormalenkov <none@none>2013-09-27 22:25:58 +0400
committermalenkov <none@none>2013-09-27 22:25:58 +0400
commit1ec50fdf3b57e5e3318a4d13ca912d632dd8b11d (patch)
treea31bd042096e6592a516816cc1121b198138e8c5 /src/solaris/classes/sun/awt/X11GraphicsEnvironment.java
parentdb8699451918240227736ea327b948016e0b3219 (diff)
downloadjdk8u_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.java7
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() {