changeset 12212:9760ea9a63c0 jdk8u111-b08

8147077: IllegalArgumentException thrown by api/java_awt/Component/FlipBufferStrategy/indexTGF_General 8148127: IllegalArgumentException thrown by JCK test api/java_awt/Component/FlipBufferStrategy/indexTGF_General in opengl pipeline Reviewed-by: flar, arapte
author aivanov
date Thu, 04 Aug 2016 18:37:15 +0300
parents b4f1d724d1c8
children 3278c61ec8b8
files src/solaris/classes/sun/awt/X11GraphicsConfig.java src/windows/classes/sun/java2d/opengl/WGLGraphicsConfig.java
diffstat 2 files changed, 10 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/solaris/classes/sun/awt/X11GraphicsConfig.java	Tue Aug 02 19:49:41 2016 +0530
+++ b/src/solaris/classes/sun/awt/X11GraphicsConfig.java	Thu Aug 04 18:37:15 2016 +0300
@@ -435,8 +435,12 @@
     public VolatileImage createBackBufferImage(Component target,
                                                long backBuffer)
     {
+        // it is possible for the component to have size 0x0, adjust it to
+        // be at least 1x1 to avoid IAE
+        int w = Math.max(1, target.getWidth());
+        int h = Math.max(1, target.getHeight());
         return new SunVolatileImage(target,
-                                    target.getWidth(), target.getHeight(),
+                                    w, h,
                                     Long.valueOf(backBuffer));
     }
 
--- a/src/windows/classes/sun/java2d/opengl/WGLGraphicsConfig.java	Tue Aug 02 19:49:41 2016 +0530
+++ b/src/windows/classes/sun/java2d/opengl/WGLGraphicsConfig.java	Thu Aug 04 18:37:15 2016 +0300
@@ -323,8 +323,12 @@
     @Override
     public VolatileImage createBackBuffer(WComponentPeer peer) {
         Component target = (Component)peer.getTarget();
+        // it is possible for the component to have size 0x0, adjust it to
+        // be at least 1x1 to avoid IAE
+        int w = Math.max(1, target.getWidth());
+        int h = Math.max(1, target.getHeight());
         return new SunVolatileImage(target,
-                                    target.getWidth(), target.getHeight(),
+                                    w, h,
                                     Boolean.TRUE);
     }