changeset 8985:a34c64466921

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 171036221ed7
children 85c1b3bc4d46
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	Wed Sep 14 11:39:01 2016 +0300
+++ 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	Wed Sep 14 11:39:01 2016 +0300
+++ 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);
     }