changeset 3245:17669a12c966

New backports for issues to be fixed in 1.13.11. S6863746, PR2951: javap should not scan ct.sym by default S8071705, PR2820, RH1182694: Java application menu misbehaves when running multiple screen stacked vertically S8150954, PR2868, RH1176206: AWT Robot not compatible with GNOME Shell PR2890: OpenJDK should check for system cacerts database (e.g. /etc/pki/java/cacerts) 2016-05-03 Andrew John Hughes <gnu.andrew@member.fsf.org> * Makefile.am: (ICEDTEA_PATCHES): Add new patches. * NEWS: Updated. * patches/openjdk/6307603-xrender-01.patch: Regenerated after application of 8150954 / PR2868. * patches/openjdk/6863746-pr2951-no_ct.sym_in_javap.patch, * patches/openjdk/8071705-pr2820-menu_misbehaviour.patch, * patches/openjdk/8150954-pr2868-composite_desktop.patch, * patches/pr2890-system_cacerts.patch: New backports for issues to be fixed in 1.13.11.
author Andrew John Hughes <gnu.andrew@redhat.com>
date Wed, 04 May 2016 02:51:07 +0100
parents aa7222538127
children 601a674078ab
files ChangeLog INSTALL Makefile.am NEWS configure.ac patches/openjdk/6307603-xrender-01.patch patches/openjdk/6863746-pr2951-no_ct.sym_in_javap.patch patches/openjdk/8071705-pr2820-menu_misbehaviour.patch patches/openjdk/8150954-pr2868-composite_desktop.patch patches/pr2890-system_cacerts.patch
diffstat 10 files changed, 604 insertions(+), 99 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Mon Jan 25 16:25:23 2016 +0000
+++ b/ChangeLog	Wed May 04 02:51:07 2016 +0100
@@ -1,3 +1,26 @@
+2016-05-03  Andrew John Hughes  <gnu.andrew@member.fsf.org>
+
+	* Makefile.am:
+	(ICEDTEA_PATCHES): Add new patches.
+	* NEWS: Updated.
+	* patches/openjdk/6307603-xrender-01.patch:
+	Regenerated after application of 8150954 / PR2868.
+	* patches/openjdk/6863746-pr2951-no_ct.sym_in_javap.patch,
+	* patches/openjdk/8071705-pr2820-menu_misbehaviour.patch,
+	* patches/openjdk/8150954-pr2868-composite_desktop.patch,
+	* patches/pr2890-system_cacerts.patch:
+	New backports for issues to be fixed in 1.13.11.
+
+2016-03-24  Andrew John Hughes  <gnu.andrew@member.fsf.org>
+
+	S8150954, PR2868, RH1176206: AWT Robot not
+	compatible with GNOME Shell
+	* INSTALL: Update X11 dependency documentation.
+	* configure.ac: Add check
+	for libXcomposite as required by fix
+	for PR2868. Correct variables used by
+	xproto check.
+
 2016-01-25  Andrew John Hughes  <gnu.andrew@redhat.com>
 
 	* NEWS: Add 1.13.11 section.
--- a/INSTALL	Mon Jan 25 16:25:23 2016 +0000
+++ b/INSTALL	Wed May 04 02:51:07 2016 +0100
@@ -12,7 +12,8 @@
   - IcedTea6
 Eclipse Java Compiler (ecj)
 CUPS
-libX11 (libXp, libXtst, libXi, libXt)
+libX11 (xproto, libX11, libXext, libXtst, libXi, libXt, libXinerama, libXcomposite, libXau, libXdmcp, libxcb)
+libXrender (for --enable-xrender)
 Freetype2
 patch
 sed
--- a/Makefile.am	Mon Jan 25 16:25:23 2016 +0000
+++ b/Makefile.am	Wed May 04 02:51:07 2016 +0100
@@ -639,7 +639,11 @@
 	patches/openjdk/6929479-pr363-disable_mmap_zip.patch \
 	patches/pr2513-layoutengine_reset.patch \
 	patches/openjdk/7169111-pr2757-unreadable_menu_bar_with_ambiance_theme.patch \
-	patches/openjdk/8140620-pr2711-find_default.sf2.patch
+	patches/openjdk/8140620-pr2711-find_default.sf2.patch \
+	patches/openjdk/8071705-pr2820-menu_misbehaviour.patch \
+	patches/openjdk/8150954-pr2868-composite_desktop.patch \
+	patches/pr2890-system_cacerts.patch \
+	patches/openjdk/6863746-pr2951-no_ct.sym_in_javap.patch
 
 if WITH_RHINO
 ICEDTEA_PATCHES += \
--- a/NEWS	Mon Jan 25 16:25:23 2016 +0000
+++ b/NEWS	Wed May 04 02:51:07 2016 +0100
@@ -14,6 +14,13 @@
 
 New in release 1.13.11 (2016-04-XX):
 
+* Backports
+  - S6863746, PR2951: javap should not scan ct.sym by default
+  - S8071705, PR2820, RH1182694: Java application menu misbehaves when running multiple screen stacked vertically
+  - S8150954, PR2868, RH1176206: AWT Robot not compatible with GNOME Shell
+* Bug fixes
+  - PR2890: OpenJDK should check for system cacerts database (e.g. /etc/pki/java/cacerts)
+
 New in release 1.13.10 (2016-01-22):
 
 * Security fixes
--- a/configure.ac	Mon Jan 25 16:25:23 2016 +0000
+++ b/configure.ac	Wed May 04 02:51:07 2016 +0100
@@ -327,8 +327,8 @@
   AC_MSG_ERROR([Could not find Xproto headers - \
   Try installing xorg-x11-proto-devel.])
 fi
-AC_SUBST(XT_CFLAGS)
-AC_SUBST(XT_LIBS)
+AC_SUBST(XPROTO_CFLAGS)
+AC_SUBST(XPROTO_LIBS)
 
 dnl Check for libXt headers and libraries.
 PKG_CHECK_MODULES(XT, xt,[XT_FOUND=yes],[XT_FOUND=no])
@@ -361,6 +361,13 @@
 AC_SUBST(XINERAMA_CFLAGS)
 AC_SUBST(XINERAMA_LIBS)
 
+PKG_CHECK_MODULES(XCOMPOSITE, xcomposite, [XCOMPOSITE_FOUND=yes], [XCOMPOSITE_FOUND=no])
+if test "x${XCOMPOSITE_FOUND}" = xno
+then AC_MSG_ERROR([Could not find Xcomposite extension.  Try installing libXcomposite-devel.])
+fi
+AC_SUBST(XCOMPOSITE_CFLAGS)
+AC_SUBST(XCOMPOSITE_LIBS)
+
 if test "x${ENABLE_XRENDER}" = "xyes"
 then
   PKG_CHECK_MODULES(XRENDER, xrender, [XRENDER_FOUND=yes], [XRENDER_FOUND=no])
--- a/patches/openjdk/6307603-xrender-01.patch	Mon Jan 25 16:25:23 2016 +0000
+++ b/patches/openjdk/6307603-xrender-01.patch	Wed May 04 02:51:07 2016 +0100
@@ -1,6 +1,6 @@
 diff -Nru openjdk.orig/jdk/make/sun/awt/mapfile-mawt-vers openjdk/jdk/make/sun/awt/mapfile-mawt-vers
---- openjdk.orig/jdk/make/sun/awt/mapfile-mawt-vers	2013-06-25 02:34:37.152677961 +0100
-+++ openjdk/jdk/make/sun/awt/mapfile-mawt-vers	2013-06-25 02:36:51.142787805 +0100
+--- openjdk.orig/jdk/make/sun/awt/mapfile-mawt-vers	2016-05-03 22:04:15.771333336 +0100
++++ openjdk/jdk/make/sun/awt/mapfile-mawt-vers	2016-05-03 22:07:39.039957560 +0100
 @@ -312,6 +312,7 @@
                  Java_sun_awt_X11GraphicsEnvironment_initGLX;
  		Java_sun_awt_X11GraphicsEnvironment_pRunningXinerama;
@@ -71,8 +71,8 @@
                  Java_sun_java2d_opengl_OGLContext_getOGLIdString;
                  Java_sun_java2d_opengl_OGLMaskFill_maskFill;
 diff -Nru openjdk.orig/jdk/make/sun/awt/mapfile-vers-linux openjdk/jdk/make/sun/awt/mapfile-vers-linux
---- openjdk.orig/jdk/make/sun/awt/mapfile-vers-linux	2013-06-25 02:34:37.324680663 +0100
-+++ openjdk/jdk/make/sun/awt/mapfile-vers-linux	2013-06-25 02:36:51.150787932 +0100
+--- openjdk.orig/jdk/make/sun/awt/mapfile-vers-linux	2016-05-03 22:04:15.915330941 +0100
++++ openjdk/jdk/make/sun/awt/mapfile-vers-linux	2016-05-03 22:07:39.039957560 +0100
 @@ -428,6 +428,7 @@
  		Java_sun_awt_X11GraphicsEnvironment_initDisplay;
  		Java_sun_awt_X11GraphicsEnvironment_pRunningXinerama;
@@ -82,8 +82,8 @@
          
  
 diff -Nru openjdk.orig/jdk/make/sun/headless/mapfile-vers openjdk/jdk/make/sun/headless/mapfile-vers
---- openjdk.orig/jdk/make/sun/headless/mapfile-vers	2013-06-25 02:34:35.284648623 +0100
-+++ openjdk/jdk/make/sun/headless/mapfile-vers	2013-06-25 02:36:51.150787932 +0100
+--- openjdk.orig/jdk/make/sun/headless/mapfile-vers	2016-01-20 01:42:02.000000000 +0000
++++ openjdk/jdk/make/sun/headless/mapfile-vers	2016-05-03 22:07:39.039957560 +0100
 @@ -46,17 +46,20 @@
  		Java_sun_java2d_x11_X11Renderer_XFillRoundRect;
  		Java_sun_java2d_x11_X11Renderer_devCopyArea;
@@ -112,8 +112,8 @@
  		Java_java_awt_Font_initIDs;
                  Java_sun_font_FontManager_getFontConfig;
 diff -Nru openjdk.orig/jdk/make/sun/jawt/Makefile openjdk/jdk/make/sun/jawt/Makefile
---- openjdk.orig/jdk/make/sun/jawt/Makefile	2013-06-25 02:34:35.940658926 +0100
-+++ openjdk/jdk/make/sun/jawt/Makefile	2013-06-25 02:36:51.150787932 +0100
+--- openjdk.orig/jdk/make/sun/jawt/Makefile	2016-05-03 22:04:15.187343047 +0100
++++ openjdk/jdk/make/sun/jawt/Makefile	2016-05-03 22:07:39.039957560 +0100
 @@ -118,7 +118,7 @@
  # Libraries to link in.
  #
@@ -124,8 +124,8 @@
  
  ifeq ($(PLATFORM), linux)
 diff -Nru openjdk.orig/jdk/make/sun/xawt/FILES_c_unix.gmk openjdk/jdk/make/sun/xawt/FILES_c_unix.gmk
---- openjdk.orig/jdk/make/sun/xawt/FILES_c_unix.gmk	2013-06-25 02:34:35.536652580 +0100
-+++ openjdk/jdk/make/sun/xawt/FILES_c_unix.gmk	2013-06-25 02:36:51.150787932 +0100
+--- openjdk.orig/jdk/make/sun/xawt/FILES_c_unix.gmk	2016-01-20 01:42:04.000000000 +0000
++++ openjdk/jdk/make/sun/xawt/FILES_c_unix.gmk	2016-05-03 22:07:39.039957560 +0100
 @@ -79,4 +79,7 @@
  	gtk2_interface.c \
          swing_GTKEngine.c \
@@ -136,8 +136,8 @@
 +	XRBackendNative.c
 +
 diff -Nru openjdk.orig/jdk/make/sun/xawt/Makefile openjdk/jdk/make/sun/xawt/Makefile
---- openjdk.orig/jdk/make/sun/xawt/Makefile	2013-06-25 02:34:35.536652580 +0100
-+++ openjdk/jdk/make/sun/xawt/Makefile	2013-06-25 02:36:51.150787932 +0100
+--- openjdk.orig/jdk/make/sun/xawt/Makefile	2016-05-03 22:04:18.839282315 +0100
++++ openjdk/jdk/make/sun/xawt/Makefile	2016-05-03 22:08:48.646803374 +0100
 @@ -48,6 +48,11 @@
  
  LDFLAGS += -L$(OPENWIN_LIB)
@@ -154,8 +154,8 @@
  vpath %.c   $(PLATFORM_SRC)/native/sun/java2d/opengl
  vpath %.c   $(PLATFORM_SRC)/native/sun/java2d/x11
  
--OTHER_LDLIBS = $(LIBM) -lawt -lXext -lX11 -ldl \
-+OTHER_LDLIBS = $(LIBM) -lawt -lXext -lX11 -lXrender -ldl \
+-OTHER_LDLIBS = $(LIBM) -lawt -lXext -lX11 -lXcomposite -ldl \
++OTHER_LDLIBS = $(LIBM) -lawt -lXext -lX11 -lXrender -lXcomposite -ldl \
                     $(LDFLAGS_COMMON) $(AWT_RUNPATH) $(OTHER_LDFLAGS) -lXtst -lXi
  
  ifeq  ($(PLATFORM), solaris)
@@ -169,8 +169,8 @@
  ifeq ($(PLATFORM), linux)
  # Allows for builds on Debian GNU Linux, X11 is in a different place 
 diff -Nru openjdk.orig/jdk/make/sun/xawt/mapfile-vers openjdk/jdk/make/sun/xawt/mapfile-vers
---- openjdk.orig/jdk/make/sun/xawt/mapfile-vers	2013-06-25 02:34:38.056692161 +0100
-+++ openjdk/jdk/make/sun/xawt/mapfile-vers	2013-06-25 02:36:51.150787932 +0100
+--- openjdk.orig/jdk/make/sun/xawt/mapfile-vers	2016-05-03 22:04:16.323324156 +0100
++++ openjdk/jdk/make/sun/xawt/mapfile-vers	2016-05-03 22:07:39.039957560 +0100
 @@ -186,6 +186,7 @@
  	Java_sun_font_FontManager_populateFontFileNameMap;
          Java_sun_awt_X11GraphicsEnvironment_initDisplay;
@@ -242,7 +242,7 @@
          Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1box;
 diff -Nru openjdk.orig/jdk/src/share/classes/sun/font/GlyphDisposedListener.java openjdk/jdk/src/share/classes/sun/font/GlyphDisposedListener.java
 --- openjdk.orig/jdk/src/share/classes/sun/font/GlyphDisposedListener.java	1970-01-01 01:00:00.000000000 +0100
-+++ openjdk/jdk/src/share/classes/sun/font/GlyphDisposedListener.java	2013-06-25 02:36:51.150787932 +0100
++++ openjdk/jdk/src/share/classes/sun/font/GlyphDisposedListener.java	2016-05-03 22:07:39.039957560 +0100
 @@ -0,0 +1,32 @@
 +/*
 + * Copyright 2010 Sun Microsystems, Inc.  All Rights Reserved.
@@ -277,8 +277,8 @@
 +    public void glyphDisposed(ArrayList<Long> glyphs);
 +}
 diff -Nru openjdk.orig/jdk/src/share/classes/sun/font/StrikeCache.java openjdk/jdk/src/share/classes/sun/font/StrikeCache.java
---- openjdk.orig/jdk/src/share/classes/sun/font/StrikeCache.java	2013-06-25 02:34:35.292648748 +0100
-+++ openjdk/jdk/src/share/classes/sun/font/StrikeCache.java	2013-06-25 02:36:51.150787932 +0100
+--- openjdk.orig/jdk/src/share/classes/sun/font/StrikeCache.java	2016-01-20 01:42:30.000000000 +0000
++++ openjdk/jdk/src/share/classes/sun/font/StrikeCache.java	2016-05-03 22:07:39.039957560 +0100
 @@ -31,6 +31,7 @@
  import java.lang.ref.ReferenceQueue;
  import java.lang.ref.SoftReference;
@@ -440,8 +440,8 @@
      public static Reference getStrikeRef(FontStrike strike) {
          return getStrikeRef(strike, cacheRefTypeWeak);
 diff -Nru openjdk.orig/jdk/src/share/classes/sun/java2d/pipe/BufferedPaints.java openjdk/jdk/src/share/classes/sun/java2d/pipe/BufferedPaints.java
---- openjdk.orig/jdk/src/share/classes/sun/java2d/pipe/BufferedPaints.java	2011-11-14 22:12:00.000000000 +0000
-+++ openjdk/jdk/src/share/classes/sun/java2d/pipe/BufferedPaints.java	2013-06-25 02:36:51.150787932 +0100
+--- openjdk.orig/jdk/src/share/classes/sun/java2d/pipe/BufferedPaints.java	2016-01-20 01:42:02.000000000 +0000
++++ openjdk/jdk/src/share/classes/sun/java2d/pipe/BufferedPaints.java	2016-05-03 22:07:39.043957494 +0100
 @@ -307,7 +307,7 @@
       * linear RGB space.  Copied directly from the
       * MultipleGradientPaintContext class.
@@ -452,8 +452,8 @@
  
          input = color / 255.0f;
 diff -Nru openjdk.orig/jdk/src/share/classes/sun/java2d/pipe/RenderBuffer.java openjdk/jdk/src/share/classes/sun/java2d/pipe/RenderBuffer.java
---- openjdk.orig/jdk/src/share/classes/sun/java2d/pipe/RenderBuffer.java	2011-11-14 22:12:00.000000000 +0000
-+++ openjdk/jdk/src/share/classes/sun/java2d/pipe/RenderBuffer.java	2013-06-25 02:36:51.150787932 +0100
+--- openjdk.orig/jdk/src/share/classes/sun/java2d/pipe/RenderBuffer.java	2016-01-20 01:42:03.000000000 +0000
++++ openjdk/jdk/src/share/classes/sun/java2d/pipe/RenderBuffer.java	2016-05-03 22:07:39.043957494 +0100
 @@ -131,6 +131,11 @@
          curAddress = baseAddress;
      }
@@ -467,8 +467,8 @@
       * putByte() methods...
       */
 diff -Nru openjdk.orig/jdk/src/share/classes/sun/java2d/pisces/META-INF/services/sun.java2d.pipe.RenderingEngine openjdk/jdk/src/share/classes/sun/java2d/pisces/META-INF/services/sun.java2d.pipe.RenderingEngine
---- openjdk.orig/jdk/src/share/classes/sun/java2d/pisces/META-INF/services/sun.java2d.pipe.RenderingEngine	2011-11-14 22:12:00.000000000 +0000
-+++ openjdk/jdk/src/share/classes/sun/java2d/pisces/META-INF/services/sun.java2d.pipe.RenderingEngine	2013-06-25 02:36:51.150787932 +0100
+--- openjdk.orig/jdk/src/share/classes/sun/java2d/pisces/META-INF/services/sun.java2d.pipe.RenderingEngine	2016-01-20 01:42:04.000000000 +0000
++++ openjdk/jdk/src/share/classes/sun/java2d/pisces/META-INF/services/sun.java2d.pipe.RenderingEngine	2016-05-03 22:07:39.043957494 +0100
 @@ -1,2 +1,5 @@
 +# Jules Rendering Engine module
 +sun.java2d.jules.JulesRenderingEngine
@@ -478,8 +478,8 @@
 +sun.java2d.pisces.PiscesRenderingEngine
 \ No newline at end of file
 diff -Nru openjdk.orig/jdk/src/share/native/sun/font/AccelGlyphCache.c openjdk/jdk/src/share/native/sun/font/AccelGlyphCache.c
---- openjdk.orig/jdk/src/share/native/sun/font/AccelGlyphCache.c	2013-06-25 02:34:35.300648873 +0100
-+++ openjdk/jdk/src/share/native/sun/font/AccelGlyphCache.c	2013-06-25 02:36:51.150787932 +0100
+--- openjdk.orig/jdk/src/share/native/sun/font/AccelGlyphCache.c	2016-01-20 01:42:39.000000000 +0000
++++ openjdk/jdk/src/share/native/sun/font/AccelGlyphCache.c	2016-05-03 22:07:39.043957494 +0100
 @@ -325,6 +325,7 @@
      cellInfo->glyphInfo = glyph;
      cellInfo->nextGCI = glyph->cellInfo;
@@ -489,8 +489,8 @@
  
  /**
 diff -Nru openjdk.orig/jdk/src/share/native/sun/font/fontscalerdefs.h openjdk/jdk/src/share/native/sun/font/fontscalerdefs.h
---- openjdk.orig/jdk/src/share/native/sun/font/fontscalerdefs.h	2013-06-25 02:34:25.760499074 +0100
-+++ openjdk/jdk/src/share/native/sun/font/fontscalerdefs.h	2013-06-25 02:36:51.154787995 +0100
+--- openjdk.orig/jdk/src/share/native/sun/font/fontscalerdefs.h	2016-01-20 01:42:39.000000000 +0000
++++ openjdk/jdk/src/share/native/sun/font/fontscalerdefs.h	2016-05-03 22:07:39.043957494 +0100
 @@ -84,15 +84,26 @@
  
  #define t2kScalarAverage(a, b) (((a) + (b)) / (t2kScalar)(2))
@@ -520,9 +520,9 @@
  } GlyphInfo;
  
 diff -Nru openjdk.orig/jdk/src/share/native/sun/font/freetypeScaler.c openjdk/jdk/src/share/native/sun/font/freetypeScaler.c
---- openjdk.orig/jdk/src/share/native/sun/font/freetypeScaler.c	2013-06-25 02:34:36.620669606 +0100
-+++ openjdk/jdk/src/share/native/sun/font/freetypeScaler.c	2013-06-25 02:36:51.154787995 +0100
-@@ -783,6 +783,7 @@
+--- openjdk.orig/jdk/src/share/native/sun/font/freetypeScaler.c	2016-05-03 22:04:18.659285307 +0100
++++ openjdk/jdk/src/share/native/sun/font/freetypeScaler.c	2016-05-03 22:07:39.043957494 +0100
+@@ -752,6 +752,7 @@
          return ptr_to_jlong(glyphInfo);
      }
      glyphInfo->cellInfo  = NULL;
@@ -530,7 +530,7 @@
      glyphInfo->rowBytes  = width;
      glyphInfo->width     = width;
      glyphInfo->height    = height;
-@@ -1131,7 +1132,7 @@
+@@ -1101,7 +1102,7 @@
                      current_type = SEG_LINETO;
                  }
              } else if (FT_CURVE_TAG(outline->tags[i]) == FT_CURVE_TAG_CUBIC) {
@@ -540,8 +540,8 @@
                     point; and a second-order control point if unset.  */
                  current_type = SEG_CUBICTO;
 diff -Nru openjdk.orig/jdk/src/share/native/sun/font/sunFont.c openjdk/jdk/src/share/native/sun/font/sunFont.c
---- openjdk.orig/jdk/src/share/native/sun/font/sunFont.c	2013-06-25 02:34:35.300648873 +0100
-+++ openjdk/jdk/src/share/native/sun/font/sunFont.c	2013-06-25 02:36:51.154787995 +0100
+--- openjdk.orig/jdk/src/share/native/sun/font/sunFont.c	2016-01-20 01:42:40.000000000 +0000
++++ openjdk/jdk/src/share/native/sun/font/sunFont.c	2016-05-03 22:07:39.043957494 +0100
 @@ -294,7 +294,8 @@
          for (i=0; i< len; i++) {
              if (ptrs[i] != 0) {
@@ -572,8 +572,8 @@
  }
  
 diff -Nru openjdk.orig/jdk/src/share/native/sun/java2d/opengl/OGLTextRenderer.c openjdk/jdk/src/share/native/sun/java2d/opengl/OGLTextRenderer.c
---- openjdk.orig/jdk/src/share/native/sun/java2d/opengl/OGLTextRenderer.c	2011-11-14 22:12:13.000000000 +0000
-+++ openjdk/jdk/src/share/native/sun/java2d/opengl/OGLTextRenderer.c	2013-06-25 02:36:51.154787995 +0100
+--- openjdk.orig/jdk/src/share/native/sun/java2d/opengl/OGLTextRenderer.c	2016-01-20 01:42:42.000000000 +0000
++++ openjdk/jdk/src/share/native/sun/java2d/opengl/OGLTextRenderer.c	2016-05-03 22:07:39.043957494 +0100
 @@ -244,6 +244,7 @@
  OGLTR_AddToGlyphCache(GlyphInfo *glyph, jboolean rgbOrder)
  {
@@ -616,17 +616,17 @@
  
      // location of the glyph in the destination's coordinate space
 diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/awt/X11GraphicsDevice.java openjdk/jdk/src/solaris/classes/sun/awt/X11GraphicsDevice.java
---- openjdk.orig/jdk/src/solaris/classes/sun/awt/X11GraphicsDevice.java	2013-06-25 02:34:35.304648936 +0100
-+++ openjdk/jdk/src/solaris/classes/sun/awt/X11GraphicsDevice.java	2013-06-25 02:36:51.154787995 +0100
-@@ -37,6 +37,7 @@
+--- openjdk.orig/jdk/src/solaris/classes/sun/awt/X11GraphicsDevice.java	2016-01-20 01:42:43.000000000 +0000
++++ openjdk/jdk/src/solaris/classes/sun/awt/X11GraphicsDevice.java	2016-05-03 22:08:08.207473921 +0100
+@@ -39,6 +39,7 @@
  import java.util.HashMap;
  
  import sun.java2d.opengl.GLXGraphicsConfig;
 +import sun.java2d.xr.XRGraphicsConfig;
  import sun.java2d.loops.SurfaceType;
  
- /**
-@@ -150,6 +151,8 @@
+ import sun.misc.ThreadGroupUtils;
+@@ -154,6 +155,8 @@
              }
  
              boolean glxSupported = X11GraphicsEnvironment.isGLXAvailable();
@@ -635,7 +635,7 @@
              boolean dbeSupported = isDBESupported();
              if (dbeSupported && doubleBufferVisuals == null) {
                  doubleBufferVisuals = new HashSet();
-@@ -165,9 +168,16 @@
+@@ -169,9 +172,16 @@
                      boolean doubleBuffer =
                          (dbeSupported &&
                           doubleBufferVisuals.contains(new Integer(visNum)));
@@ -655,7 +655,7 @@
                  }
              }
              configs = ret;
-@@ -241,9 +251,19 @@
+@@ -245,9 +255,19 @@
                      doubleBuffer =
                          doubleBufferVisuals.contains(new Integer(visNum));
                  }
@@ -679,8 +679,8 @@
          }
      }
 diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/awt/X11GraphicsEnvironment.java openjdk/jdk/src/solaris/classes/sun/awt/X11GraphicsEnvironment.java
---- openjdk.orig/jdk/src/solaris/classes/sun/awt/X11GraphicsEnvironment.java	2013-06-25 02:34:35.368649941 +0100
-+++ openjdk/jdk/src/solaris/classes/sun/awt/X11GraphicsEnvironment.java	2013-06-25 02:36:51.154787995 +0100
+--- openjdk.orig/jdk/src/solaris/classes/sun/awt/X11GraphicsEnvironment.java	2016-01-20 01:42:43.000000000 +0000
++++ openjdk/jdk/src/solaris/classes/sun/awt/X11GraphicsEnvironment.java	2016-05-03 22:07:39.043957494 +0100
 @@ -26,6 +26,7 @@
  package sun.awt;
  
@@ -765,7 +765,7 @@
       * Returns:
 diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/font/XRGlyphCacheEntry.java openjdk/jdk/src/solaris/classes/sun/font/XRGlyphCacheEntry.java
 --- openjdk.orig/jdk/src/solaris/classes/sun/font/XRGlyphCacheEntry.java	1970-01-01 01:00:00.000000000 +0100
-+++ openjdk/jdk/src/solaris/classes/sun/font/XRGlyphCacheEntry.java	2013-06-25 02:36:51.154787995 +0100
++++ openjdk/jdk/src/solaris/classes/sun/font/XRGlyphCacheEntry.java	2016-05-03 22:07:39.043957494 +0100
 @@ -0,0 +1,206 @@
 +/*
 + * Copyright 2010 Sun Microsystems, Inc.  All Rights Reserved.
@@ -975,7 +975,7 @@
 +}
 diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/font/XRGlyphCache.java openjdk/jdk/src/solaris/classes/sun/font/XRGlyphCache.java
 --- openjdk.orig/jdk/src/solaris/classes/sun/font/XRGlyphCache.java	1970-01-01 01:00:00.000000000 +0100
-+++ openjdk/jdk/src/solaris/classes/sun/font/XRGlyphCache.java	2013-06-25 02:36:51.154787995 +0100
++++ openjdk/jdk/src/solaris/classes/sun/font/XRGlyphCache.java	2016-05-03 22:07:39.043957494 +0100
 @@ -0,0 +1,301 @@
 +/*
 + * Copyright 2010 Sun Microsystems, Inc.  All Rights Reserved.
@@ -1280,7 +1280,7 @@
 +}
 diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/font/XRTextRenderer.java openjdk/jdk/src/solaris/classes/sun/font/XRTextRenderer.java
 --- openjdk.orig/jdk/src/solaris/classes/sun/font/XRTextRenderer.java	1970-01-01 01:00:00.000000000 +0100
-+++ openjdk/jdk/src/solaris/classes/sun/font/XRTextRenderer.java	2013-06-25 02:36:51.154787995 +0100
++++ openjdk/jdk/src/solaris/classes/sun/font/XRTextRenderer.java	2016-05-03 22:07:39.043957494 +0100
 @@ -0,0 +1,152 @@
 +/*
 + * Copyright 2010 Sun Microsystems, Inc.  All Rights Reserved.
@@ -1436,7 +1436,7 @@
 +}
 diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/java2d/jules/IdleTileCache.java openjdk/jdk/src/solaris/classes/sun/java2d/jules/IdleTileCache.java
 --- openjdk.orig/jdk/src/solaris/classes/sun/java2d/jules/IdleTileCache.java	1970-01-01 01:00:00.000000000 +0100
-+++ openjdk/jdk/src/solaris/classes/sun/java2d/jules/IdleTileCache.java	2013-06-25 02:36:51.154787995 +0100
++++ openjdk/jdk/src/solaris/classes/sun/java2d/jules/IdleTileCache.java	2016-05-03 22:07:39.043957494 +0100
 @@ -0,0 +1,109 @@
 +/*
 + * Copyright 2010 Sun Microsystems, Inc.  All Rights Reserved.
@@ -1549,7 +1549,7 @@
 +}
 diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/java2d/jules/JulesAATileGenerator.java openjdk/jdk/src/solaris/classes/sun/java2d/jules/JulesAATileGenerator.java
 --- openjdk.orig/jdk/src/solaris/classes/sun/java2d/jules/JulesAATileGenerator.java	1970-01-01 01:00:00.000000000 +0100
-+++ openjdk/jdk/src/solaris/classes/sun/java2d/jules/JulesAATileGenerator.java	2013-06-25 02:36:51.154787995 +0100
++++ openjdk/jdk/src/solaris/classes/sun/java2d/jules/JulesAATileGenerator.java	2016-05-03 22:07:39.043957494 +0100
 @@ -0,0 +1,349 @@
 +/*
 + * Copyright 2010 Sun Microsystems, Inc.  All Rights Reserved.
@@ -1902,7 +1902,7 @@
 +}
 diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/java2d/jules/JulesPathBuf.java openjdk/jdk/src/solaris/classes/sun/java2d/jules/JulesPathBuf.java
 --- openjdk.orig/jdk/src/solaris/classes/sun/java2d/jules/JulesPathBuf.java	1970-01-01 01:00:00.000000000 +0100
-+++ openjdk/jdk/src/solaris/classes/sun/java2d/jules/JulesPathBuf.java	2013-06-25 02:36:51.154787995 +0100
++++ openjdk/jdk/src/solaris/classes/sun/java2d/jules/JulesPathBuf.java	2016-05-03 22:07:39.043957494 +0100
 @@ -0,0 +1,271 @@
 +/*
 + * Copyright 2010 Sun Microsystems, Inc.  All Rights Reserved.
@@ -2177,7 +2177,7 @@
 +}
 diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/java2d/jules/JulesRenderingEngine.java openjdk/jdk/src/solaris/classes/sun/java2d/jules/JulesRenderingEngine.java
 --- openjdk.orig/jdk/src/solaris/classes/sun/java2d/jules/JulesRenderingEngine.java	1970-01-01 01:00:00.000000000 +0100
-+++ openjdk/jdk/src/solaris/classes/sun/java2d/jules/JulesRenderingEngine.java	2013-06-25 02:36:51.154787995 +0100
++++ openjdk/jdk/src/solaris/classes/sun/java2d/jules/JulesRenderingEngine.java	2016-05-03 22:07:39.043957494 +0100
 @@ -0,0 +1,54 @@
 +/*
 + * Copyright 2010 Sun Microsystems, Inc.  All Rights Reserved.
@@ -2235,7 +2235,7 @@
 +}
 diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/java2d/jules/JulesShapePipe.java openjdk/jdk/src/solaris/classes/sun/java2d/jules/JulesShapePipe.java
 --- openjdk.orig/jdk/src/solaris/classes/sun/java2d/jules/JulesShapePipe.java	1970-01-01 01:00:00.000000000 +0100
-+++ openjdk/jdk/src/solaris/classes/sun/java2d/jules/JulesShapePipe.java	2013-06-25 02:36:51.154787995 +0100
++++ openjdk/jdk/src/solaris/classes/sun/java2d/jules/JulesShapePipe.java	2016-05-03 22:07:39.043957494 +0100
 @@ -0,0 +1,102 @@
 +/*
 + * Copyright 2010 Sun Microsystems, Inc.  All Rights Reserved.
@@ -2341,7 +2341,7 @@
 +}
 diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/java2d/jules/JulesTile.java openjdk/jdk/src/solaris/classes/sun/java2d/jules/JulesTile.java
 --- openjdk.orig/jdk/src/solaris/classes/sun/java2d/jules/JulesTile.java	1970-01-01 01:00:00.000000000 +0100
-+++ openjdk/jdk/src/solaris/classes/sun/java2d/jules/JulesTile.java	2013-06-25 02:36:51.158788059 +0100
++++ openjdk/jdk/src/solaris/classes/sun/java2d/jules/JulesTile.java	2016-05-03 22:07:39.043957494 +0100
 @@ -0,0 +1,67 @@
 +/*
 + * Copyright 2010 Sun Microsystems, Inc.  All Rights Reserved.
@@ -2412,7 +2412,7 @@
 +}
 diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/java2d/jules/TileWorker.java openjdk/jdk/src/solaris/classes/sun/java2d/jules/TileWorker.java
 --- openjdk.orig/jdk/src/solaris/classes/sun/java2d/jules/TileWorker.java	1970-01-01 01:00:00.000000000 +0100
-+++ openjdk/jdk/src/solaris/classes/sun/java2d/jules/TileWorker.java	2013-06-25 02:36:51.158788059 +0100
++++ openjdk/jdk/src/solaris/classes/sun/java2d/jules/TileWorker.java	2016-05-03 22:07:39.043957494 +0100
 @@ -0,0 +1,146 @@
 +/*
 + * Copyright 2010 Sun Microsystems, Inc.  All Rights Reserved.
@@ -2562,7 +2562,7 @@
 +}
 diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/java2d/jules/TrapezoidList.java openjdk/jdk/src/solaris/classes/sun/java2d/jules/TrapezoidList.java
 --- openjdk.orig/jdk/src/solaris/classes/sun/java2d/jules/TrapezoidList.java	1970-01-01 01:00:00.000000000 +0100
-+++ openjdk/jdk/src/solaris/classes/sun/java2d/jules/TrapezoidList.java	2013-06-25 02:36:51.158788059 +0100
++++ openjdk/jdk/src/solaris/classes/sun/java2d/jules/TrapezoidList.java	2016-05-03 22:07:39.043957494 +0100
 @@ -0,0 +1,110 @@
 +/*
 + * Copyright 2010 Sun Microsystems, Inc.  All Rights Reserved.
@@ -2675,8 +2675,8 @@
 +    }
 +}
 diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/java2d/SurfaceManagerFactory.java openjdk/jdk/src/solaris/classes/sun/java2d/SurfaceManagerFactory.java
---- openjdk.orig/jdk/src/solaris/classes/sun/java2d/SurfaceManagerFactory.java	2011-11-14 22:12:15.000000000 +0000
-+++ openjdk/jdk/src/solaris/classes/sun/java2d/SurfaceManagerFactory.java	2013-06-25 02:36:51.158788059 +0100
+--- openjdk.orig/jdk/src/solaris/classes/sun/java2d/SurfaceManagerFactory.java	2016-01-20 01:42:44.000000000 +0000
++++ openjdk/jdk/src/solaris/classes/sun/java2d/SurfaceManagerFactory.java	2016-05-03 22:07:39.043957494 +0100
 @@ -34,6 +34,8 @@
  import sun.java2d.opengl.GLXGraphicsConfig;
  import sun.java2d.opengl.GLXVolatileSurfaceManager;
@@ -2705,8 +2705,8 @@
              return new X11VolatileSurfaceManager(vImg, context);
          }
 diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/java2d/x11/X11SurfaceData.java openjdk/jdk/src/solaris/classes/sun/java2d/x11/X11SurfaceData.java
---- openjdk.orig/jdk/src/solaris/classes/sun/java2d/x11/X11SurfaceData.java	2013-06-25 02:34:37.168678213 +0100
-+++ openjdk/jdk/src/solaris/classes/sun/java2d/x11/X11SurfaceData.java	2013-06-25 02:36:51.158788059 +0100
+--- openjdk.orig/jdk/src/solaris/classes/sun/java2d/x11/X11SurfaceData.java	2016-05-03 22:04:15.787333069 +0100
++++ openjdk/jdk/src/solaris/classes/sun/java2d/x11/X11SurfaceData.java	2016-05-03 22:07:39.043957494 +0100
 @@ -46,6 +46,7 @@
  import sun.awt.SunToolkit;
  import sun.awt.X11ComponentPeer;
@@ -2797,7 +2797,7 @@
      private Region validatedClip;
 diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/java2d/x11/XSurfaceData.java openjdk/jdk/src/solaris/classes/sun/java2d/x11/XSurfaceData.java
 --- openjdk.orig/jdk/src/solaris/classes/sun/java2d/x11/XSurfaceData.java	1970-01-01 01:00:00.000000000 +0100
-+++ openjdk/jdk/src/solaris/classes/sun/java2d/x11/XSurfaceData.java	2013-06-25 02:36:51.158788059 +0100
++++ openjdk/jdk/src/solaris/classes/sun/java2d/x11/XSurfaceData.java	2016-05-03 22:07:39.043957494 +0100
 @@ -0,0 +1,40 @@
 +package sun.java2d.x11;
 +
@@ -2841,7 +2841,7 @@
 +}
 diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/java2d/xr/DirtyRegion.java openjdk/jdk/src/solaris/classes/sun/java2d/xr/DirtyRegion.java
 --- openjdk.orig/jdk/src/solaris/classes/sun/java2d/xr/DirtyRegion.java	1970-01-01 01:00:00.000000000 +0100
-+++ openjdk/jdk/src/solaris/classes/sun/java2d/xr/DirtyRegion.java	2013-06-25 02:36:51.158788059 +0100
++++ openjdk/jdk/src/solaris/classes/sun/java2d/xr/DirtyRegion.java	2016-05-03 22:07:39.043957494 +0100
 @@ -0,0 +1,133 @@
 +/*
 + * Copyright 2010 Sun Microsystems, Inc.  All Rights Reserved.
@@ -2978,7 +2978,7 @@
 +}
 diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/java2d/xr/GrowableByteArray.java openjdk/jdk/src/solaris/classes/sun/java2d/xr/GrowableByteArray.java
 --- openjdk.orig/jdk/src/solaris/classes/sun/java2d/xr/GrowableByteArray.java	1970-01-01 01:00:00.000000000 +0100
-+++ openjdk/jdk/src/solaris/classes/sun/java2d/xr/GrowableByteArray.java	2013-06-25 02:36:51.158788059 +0100
++++ openjdk/jdk/src/solaris/classes/sun/java2d/xr/GrowableByteArray.java	2016-05-03 22:07:39.047957428 +0100
 @@ -0,0 +1,127 @@
 +/*
 + * Copyright 2010 Sun Microsystems, Inc.  All Rights Reserved.
@@ -3109,7 +3109,7 @@
 +}
 diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/java2d/xr/GrowableEltArray.java openjdk/jdk/src/solaris/classes/sun/java2d/xr/GrowableEltArray.java
 --- openjdk.orig/jdk/src/solaris/classes/sun/java2d/xr/GrowableEltArray.java	1970-01-01 01:00:00.000000000 +0100
-+++ openjdk/jdk/src/solaris/classes/sun/java2d/xr/GrowableEltArray.java	2013-06-25 02:36:51.158788059 +0100
++++ openjdk/jdk/src/solaris/classes/sun/java2d/xr/GrowableEltArray.java	2016-05-03 22:07:39.047957428 +0100
 @@ -0,0 +1,84 @@
 +/*
 + * Copyright 2010 Sun Microsystems, Inc.  All Rights Reserved.
@@ -3197,7 +3197,7 @@
 +}
 diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/java2d/xr/GrowableIntArray.java openjdk/jdk/src/solaris/classes/sun/java2d/xr/GrowableIntArray.java
 --- openjdk.orig/jdk/src/solaris/classes/sun/java2d/xr/GrowableIntArray.java	1970-01-01 01:00:00.000000000 +0100
-+++ openjdk/jdk/src/solaris/classes/sun/java2d/xr/GrowableIntArray.java	2013-06-25 02:36:51.158788059 +0100
++++ openjdk/jdk/src/solaris/classes/sun/java2d/xr/GrowableIntArray.java	2016-05-03 22:07:39.047957428 +0100
 @@ -0,0 +1,114 @@
 +/*
 + * Copyright 2010 Sun Microsystems, Inc.  All Rights Reserved.
@@ -3315,7 +3315,7 @@
 +}
 diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/java2d/xr/GrowablePointArray.java openjdk/jdk/src/solaris/classes/sun/java2d/xr/GrowablePointArray.java
 --- openjdk.orig/jdk/src/solaris/classes/sun/java2d/xr/GrowablePointArray.java	1970-01-01 01:00:00.000000000 +0100
-+++ openjdk/jdk/src/solaris/classes/sun/java2d/xr/GrowablePointArray.java	2013-06-25 02:36:51.158788059 +0100
++++ openjdk/jdk/src/solaris/classes/sun/java2d/xr/GrowablePointArray.java	2016-05-03 22:07:39.047957428 +0100
 @@ -0,0 +1,62 @@
 +/*
 + * Copyright 2010 Sun Microsystems, Inc.  All Rights Reserved.
@@ -3381,7 +3381,7 @@
 +}
 diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/java2d/xr/GrowableRectArray.java openjdk/jdk/src/solaris/classes/sun/java2d/xr/GrowableRectArray.java
 --- openjdk.orig/jdk/src/solaris/classes/sun/java2d/xr/GrowableRectArray.java	1970-01-01 01:00:00.000000000 +0100
-+++ openjdk/jdk/src/solaris/classes/sun/java2d/xr/GrowableRectArray.java	2013-06-25 02:36:51.158788059 +0100
++++ openjdk/jdk/src/solaris/classes/sun/java2d/xr/GrowableRectArray.java	2016-05-03 22:07:39.047957428 +0100
 @@ -0,0 +1,79 @@
 +/*
 + * Copyright 2010 Sun Microsystems, Inc.  All Rights Reserved.
@@ -3464,7 +3464,7 @@
 +}
 diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/java2d/xr/MaskTile.java openjdk/jdk/src/solaris/classes/sun/java2d/xr/MaskTile.java
 --- openjdk.orig/jdk/src/solaris/classes/sun/java2d/xr/MaskTile.java	1970-01-01 01:00:00.000000000 +0100
-+++ openjdk/jdk/src/solaris/classes/sun/java2d/xr/MaskTile.java	2013-06-25 02:36:51.158788059 +0100
++++ openjdk/jdk/src/solaris/classes/sun/java2d/xr/MaskTile.java	2016-05-03 22:07:39.047957428 +0100
 @@ -0,0 +1,166 @@
 +/*
 + * Copyright 2010 Sun Microsystems, Inc.  All Rights Reserved.
@@ -3634,7 +3634,7 @@
 +}
 diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/java2d/xr/MaskTileManager.java openjdk/jdk/src/solaris/classes/sun/java2d/xr/MaskTileManager.java
 --- openjdk.orig/jdk/src/solaris/classes/sun/java2d/xr/MaskTileManager.java	1970-01-01 01:00:00.000000000 +0100
-+++ openjdk/jdk/src/solaris/classes/sun/java2d/xr/MaskTileManager.java	2013-06-25 02:36:51.158788059 +0100
++++ openjdk/jdk/src/solaris/classes/sun/java2d/xr/MaskTileManager.java	2016-05-03 22:07:39.047957428 +0100
 @@ -0,0 +1,327 @@
 +/*
 + * Copyright 2010 Sun Microsystems, Inc.  All Rights Reserved.
@@ -3965,7 +3965,7 @@
 +}
 diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/java2d/xr/MutableInteger.java openjdk/jdk/src/solaris/classes/sun/java2d/xr/MutableInteger.java
 --- openjdk.orig/jdk/src/solaris/classes/sun/java2d/xr/MutableInteger.java	1970-01-01 01:00:00.000000000 +0100
-+++ openjdk/jdk/src/solaris/classes/sun/java2d/xr/MutableInteger.java	2013-06-25 02:36:51.158788059 +0100
++++ openjdk/jdk/src/solaris/classes/sun/java2d/xr/MutableInteger.java	2016-05-03 22:07:39.047957428 +0100
 @@ -0,0 +1,57 @@
 +/*
 + * Copyright 2010 Sun Microsystems, Inc.  All Rights Reserved.
@@ -4026,7 +4026,7 @@
 +}
 diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/java2d/xr/XcbRequestCounter.java openjdk/jdk/src/solaris/classes/sun/java2d/xr/XcbRequestCounter.java
 --- openjdk.orig/jdk/src/solaris/classes/sun/java2d/xr/XcbRequestCounter.java	1970-01-01 01:00:00.000000000 +0100
-+++ openjdk/jdk/src/solaris/classes/sun/java2d/xr/XcbRequestCounter.java	2013-06-25 02:36:51.158788059 +0100
++++ openjdk/jdk/src/solaris/classes/sun/java2d/xr/XcbRequestCounter.java	2016-05-03 22:07:39.047957428 +0100
 @@ -0,0 +1,59 @@
 +/*
 + * Copyright 2010 Sun Microsystems, Inc.  All Rights Reserved.
@@ -4089,7 +4089,7 @@
 +}
 diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/java2d/xr/XIDGenerator.java openjdk/jdk/src/solaris/classes/sun/java2d/xr/XIDGenerator.java
 --- openjdk.orig/jdk/src/solaris/classes/sun/java2d/xr/XIDGenerator.java	1970-01-01 01:00:00.000000000 +0100
-+++ openjdk/jdk/src/solaris/classes/sun/java2d/xr/XIDGenerator.java	2013-06-25 02:36:51.158788059 +0100
++++ openjdk/jdk/src/solaris/classes/sun/java2d/xr/XIDGenerator.java	2016-05-03 22:07:39.047957428 +0100
 @@ -0,0 +1,53 @@
 +/*
 + * Copyright 2010 Sun Microsystems, Inc.  All Rights Reserved.
@@ -4146,7 +4146,7 @@
 +}
 diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/java2d/xr/XRBackend.java openjdk/jdk/src/solaris/classes/sun/java2d/xr/XRBackend.java
 --- openjdk.orig/jdk/src/solaris/classes/sun/java2d/xr/XRBackend.java	1970-01-01 01:00:00.000000000 +0100
-+++ openjdk/jdk/src/solaris/classes/sun/java2d/xr/XRBackend.java	2013-06-25 02:36:51.158788059 +0100
++++ openjdk/jdk/src/solaris/classes/sun/java2d/xr/XRBackend.java	2016-05-03 22:07:39.047957428 +0100
 @@ -0,0 +1,117 @@
 +/*
 + * Copyright 2010 Sun Microsystems, Inc.  All Rights Reserved.
@@ -4267,7 +4267,7 @@
 +}
 diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/java2d/xr/XRBackendNative.java openjdk/jdk/src/solaris/classes/sun/java2d/xr/XRBackendNative.java
 --- openjdk.orig/jdk/src/solaris/classes/sun/java2d/xr/XRBackendNative.java	1970-01-01 01:00:00.000000000 +0100
-+++ openjdk/jdk/src/solaris/classes/sun/java2d/xr/XRBackendNative.java	2013-06-25 02:36:51.158788059 +0100
++++ openjdk/jdk/src/solaris/classes/sun/java2d/xr/XRBackendNative.java	2016-05-03 22:07:39.047957428 +0100
 @@ -0,0 +1,343 @@
 +/*
 + * Copyright 2010 Sun Microsystems, Inc.  All Rights Reserved.
@@ -4614,7 +4614,7 @@
 +}
 diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/java2d/xr/XRColor.java openjdk/jdk/src/solaris/classes/sun/java2d/xr/XRColor.java
 --- openjdk.orig/jdk/src/solaris/classes/sun/java2d/xr/XRColor.java	1970-01-01 01:00:00.000000000 +0100
-+++ openjdk/jdk/src/solaris/classes/sun/java2d/xr/XRColor.java	2013-06-25 02:36:51.158788059 +0100
++++ openjdk/jdk/src/solaris/classes/sun/java2d/xr/XRColor.java	2016-05-03 22:07:39.047957428 +0100
 @@ -0,0 +1,141 @@
 +/*
 + * Copyright 2010 Sun Microsystems, Inc.  All Rights Reserved.
@@ -4759,7 +4759,7 @@
 +}
 diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/java2d/xr/XRCompositeManager.java openjdk/jdk/src/solaris/classes/sun/java2d/xr/XRCompositeManager.java
 --- openjdk.orig/jdk/src/solaris/classes/sun/java2d/xr/XRCompositeManager.java	1970-01-01 01:00:00.000000000 +0100
-+++ openjdk/jdk/src/solaris/classes/sun/java2d/xr/XRCompositeManager.java	2013-06-25 02:36:51.158788059 +0100
++++ openjdk/jdk/src/solaris/classes/sun/java2d/xr/XRCompositeManager.java	2016-05-03 22:07:39.047957428 +0100
 @@ -0,0 +1,334 @@
 +/*
 + * Copyright 2010 Sun Microsystems, Inc.  All Rights Reserved.
@@ -5097,7 +5097,7 @@
 +}
 diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/java2d/xr/XRDrawImage.java openjdk/jdk/src/solaris/classes/sun/java2d/xr/XRDrawImage.java
 --- openjdk.orig/jdk/src/solaris/classes/sun/java2d/xr/XRDrawImage.java	1970-01-01 01:00:00.000000000 +0100
-+++ openjdk/jdk/src/solaris/classes/sun/java2d/xr/XRDrawImage.java	2013-06-25 02:36:51.158788059 +0100
++++ openjdk/jdk/src/solaris/classes/sun/java2d/xr/XRDrawImage.java	2016-05-03 22:07:39.047957428 +0100
 @@ -0,0 +1,67 @@
 +/*
 + * Copyright 2010 Sun Microsystems, Inc.  All Rights Reserved.
@@ -5168,7 +5168,7 @@
 +}
 diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/java2d/xr/XRGraphicsConfig.java openjdk/jdk/src/solaris/classes/sun/java2d/xr/XRGraphicsConfig.java
 --- openjdk.orig/jdk/src/solaris/classes/sun/java2d/xr/XRGraphicsConfig.java	1970-01-01 01:00:00.000000000 +0100
-+++ openjdk/jdk/src/solaris/classes/sun/java2d/xr/XRGraphicsConfig.java	2013-06-25 02:36:51.162788122 +0100
++++ openjdk/jdk/src/solaris/classes/sun/java2d/xr/XRGraphicsConfig.java	2016-05-03 22:07:39.047957428 +0100
 @@ -0,0 +1,61 @@
 +/*
 + * Copyright 2010 Sun Microsystems, Inc.  All Rights Reserved.
@@ -5233,7 +5233,7 @@
 +}
 diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/java2d/xr/XRMaskBlit.java openjdk/jdk/src/solaris/classes/sun/java2d/xr/XRMaskBlit.java
 --- openjdk.orig/jdk/src/solaris/classes/sun/java2d/xr/XRMaskBlit.java	1970-01-01 01:00:00.000000000 +0100
-+++ openjdk/jdk/src/solaris/classes/sun/java2d/xr/XRMaskBlit.java	2013-06-25 02:36:51.162788122 +0100
++++ openjdk/jdk/src/solaris/classes/sun/java2d/xr/XRMaskBlit.java	2016-05-03 22:07:39.047957428 +0100
 @@ -0,0 +1,94 @@
 +/*
 + * Copyright 2010 Sun Microsystems, Inc.  All Rights Reserved.
@@ -5331,7 +5331,7 @@
 +}
 diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/java2d/xr/XRMaskFill.java openjdk/jdk/src/solaris/classes/sun/java2d/xr/XRMaskFill.java
 --- openjdk.orig/jdk/src/solaris/classes/sun/java2d/xr/XRMaskFill.java	1970-01-01 01:00:00.000000000 +0100
-+++ openjdk/jdk/src/solaris/classes/sun/java2d/xr/XRMaskFill.java	2013-06-25 02:36:51.162788122 +0100
++++ openjdk/jdk/src/solaris/classes/sun/java2d/xr/XRMaskFill.java	2016-05-03 22:07:39.047957428 +0100
 @@ -0,0 +1,115 @@
 +/*
 + * Copyright 2010 Sun Microsystems, Inc.  All Rights Reserved.
@@ -5450,7 +5450,7 @@
 +}
 diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/java2d/xr/XRMaskImage.java openjdk/jdk/src/solaris/classes/sun/java2d/xr/XRMaskImage.java
 --- openjdk.orig/jdk/src/solaris/classes/sun/java2d/xr/XRMaskImage.java	1970-01-01 01:00:00.000000000 +0100
-+++ openjdk/jdk/src/solaris/classes/sun/java2d/xr/XRMaskImage.java	2013-06-25 02:36:51.166788185 +0100
++++ openjdk/jdk/src/solaris/classes/sun/java2d/xr/XRMaskImage.java	2016-05-03 22:07:39.047957428 +0100
 @@ -0,0 +1,129 @@
 +/*
 + * Copyright 2010 Sun Microsystems, Inc.  All Rights Reserved.
@@ -5583,7 +5583,7 @@
 +}
 diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/java2d/xr/XRPaints.java openjdk/jdk/src/solaris/classes/sun/java2d/xr/XRPaints.java
 --- openjdk.orig/jdk/src/solaris/classes/sun/java2d/xr/XRPaints.java	1970-01-01 01:00:00.000000000 +0100
-+++ openjdk/jdk/src/solaris/classes/sun/java2d/xr/XRPaints.java	2013-06-25 02:36:51.166788185 +0100
++++ openjdk/jdk/src/solaris/classes/sun/java2d/xr/XRPaints.java	2016-05-03 22:07:39.047957428 +0100
 @@ -0,0 +1,314 @@
 +/*
 + * Copyright 2010 Sun Microsystems, Inc.  All Rights Reserved.
@@ -5901,7 +5901,7 @@
 +}
 diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/java2d/xr/XRPMBlitLoops.java openjdk/jdk/src/solaris/classes/sun/java2d/xr/XRPMBlitLoops.java
 --- openjdk.orig/jdk/src/solaris/classes/sun/java2d/xr/XRPMBlitLoops.java	1970-01-01 01:00:00.000000000 +0100
-+++ openjdk/jdk/src/solaris/classes/sun/java2d/xr/XRPMBlitLoops.java	2013-06-25 02:36:51.166788185 +0100
++++ openjdk/jdk/src/solaris/classes/sun/java2d/xr/XRPMBlitLoops.java	2016-05-03 22:07:39.047957428 +0100
 @@ -0,0 +1,400 @@
 +/*
 + * Copyright 2010 Sun Microsystems, Inc.  All Rights Reserved.
@@ -6305,7 +6305,7 @@
 +}
 diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/java2d/xr/XRRenderer.java openjdk/jdk/src/solaris/classes/sun/java2d/xr/XRRenderer.java
 --- openjdk.orig/jdk/src/solaris/classes/sun/java2d/xr/XRRenderer.java	1970-01-01 01:00:00.000000000 +0100
-+++ openjdk/jdk/src/solaris/classes/sun/java2d/xr/XRRenderer.java	2013-06-25 02:36:51.166788185 +0100
++++ openjdk/jdk/src/solaris/classes/sun/java2d/xr/XRRenderer.java	2016-05-03 22:07:39.047957428 +0100
 @@ -0,0 +1,331 @@
 +/*
 + * Copyright 2010 Sun Microsystems, Inc.  All Rights Reserved.
@@ -6640,7 +6640,7 @@
 +}
 diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/java2d/xr/XRSurfaceData.java openjdk/jdk/src/solaris/classes/sun/java2d/xr/XRSurfaceData.java
 --- openjdk.orig/jdk/src/solaris/classes/sun/java2d/xr/XRSurfaceData.java	1970-01-01 01:00:00.000000000 +0100
-+++ openjdk/jdk/src/solaris/classes/sun/java2d/xr/XRSurfaceData.java	2013-06-25 02:36:51.166788185 +0100
++++ openjdk/jdk/src/solaris/classes/sun/java2d/xr/XRSurfaceData.java	2016-05-03 22:07:39.047957428 +0100
 @@ -0,0 +1,668 @@
 +/*
 + * Copyright 2010 Sun Microsystems, Inc.  All Rights Reserved.
@@ -7312,7 +7312,7 @@
 +}
 diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/java2d/xr/XRSurfaceDataProxy.java openjdk/jdk/src/solaris/classes/sun/java2d/xr/XRSurfaceDataProxy.java
 --- openjdk.orig/jdk/src/solaris/classes/sun/java2d/xr/XRSurfaceDataProxy.java	1970-01-01 01:00:00.000000000 +0100
-+++ openjdk/jdk/src/solaris/classes/sun/java2d/xr/XRSurfaceDataProxy.java	2013-06-25 02:36:51.166788185 +0100
++++ openjdk/jdk/src/solaris/classes/sun/java2d/xr/XRSurfaceDataProxy.java	2016-05-03 22:07:39.047957428 +0100
 @@ -0,0 +1,83 @@
 +/*
 + * Copyright 2010 Sun Microsystems, Inc.  All Rights Reserved.
@@ -7399,7 +7399,7 @@
 +}
 diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/java2d/xr/XRUtils.java openjdk/jdk/src/solaris/classes/sun/java2d/xr/XRUtils.java
 --- openjdk.orig/jdk/src/solaris/classes/sun/java2d/xr/XRUtils.java	1970-01-01 01:00:00.000000000 +0100
-+++ openjdk/jdk/src/solaris/classes/sun/java2d/xr/XRUtils.java	2013-06-25 02:36:51.166788185 +0100
++++ openjdk/jdk/src/solaris/classes/sun/java2d/xr/XRUtils.java	2016-05-03 22:07:39.051957360 +0100
 @@ -0,0 +1,261 @@
 +/*
 + * Copyright 2010 Sun Microsystems, Inc.  All Rights Reserved.
@@ -7664,7 +7664,7 @@
 +}
 diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/java2d/xr/XRVolatileSurfaceManager.java openjdk/jdk/src/solaris/classes/sun/java2d/xr/XRVolatileSurfaceManager.java
 --- openjdk.orig/jdk/src/solaris/classes/sun/java2d/xr/XRVolatileSurfaceManager.java	1970-01-01 01:00:00.000000000 +0100
-+++ openjdk/jdk/src/solaris/classes/sun/java2d/xr/XRVolatileSurfaceManager.java	2013-06-25 02:36:51.166788185 +0100
++++ openjdk/jdk/src/solaris/classes/sun/java2d/xr/XRVolatileSurfaceManager.java	2016-05-03 22:07:39.051957360 +0100
 @@ -0,0 +1,94 @@
 +/*
 + * Copyright 2010 Sun Microsystems, Inc.  All Rights Reserved.
@@ -7761,8 +7761,8 @@
 +    }
 +}
 diff -Nru openjdk.orig/jdk/src/solaris/native/sun/java2d/x11/X11SurfaceData.c openjdk/jdk/src/solaris/native/sun/java2d/x11/X11SurfaceData.c
---- openjdk.orig/jdk/src/solaris/native/sun/java2d/x11/X11SurfaceData.c	2013-06-25 02:34:37.152677961 +0100
-+++ openjdk/jdk/src/solaris/native/sun/java2d/x11/X11SurfaceData.c	2013-06-25 02:40:15.646021517 +0100
+--- openjdk.orig/jdk/src/solaris/native/sun/java2d/x11/X11SurfaceData.c	2016-05-03 22:04:15.775333269 +0100
++++ openjdk/jdk/src/solaris/native/sun/java2d/x11/X11SurfaceData.c	2016-05-03 22:07:39.051957360 +0100
 @@ -71,7 +71,7 @@
  extern AwtGraphicsConfigDataPtr
      getGraphicsConfigFromComponentPeer(JNIEnv *env, jobject this);
@@ -8083,8 +8083,8 @@
  {
  #ifndef HEADLESS
 diff -Nru openjdk.orig/jdk/src/solaris/native/sun/java2d/x11/X11SurfaceData.h openjdk/jdk/src/solaris/native/sun/java2d/x11/X11SurfaceData.h
---- openjdk.orig/jdk/src/solaris/native/sun/java2d/x11/X11SurfaceData.h	2011-11-14 22:12:16.000000000 +0000
-+++ openjdk/jdk/src/solaris/native/sun/java2d/x11/X11SurfaceData.h	2013-06-25 02:36:51.166788185 +0100
+--- openjdk.orig/jdk/src/solaris/native/sun/java2d/x11/X11SurfaceData.h	2016-01-20 01:42:02.000000000 +0000
++++ openjdk/jdk/src/solaris/native/sun/java2d/x11/X11SurfaceData.h	2016-05-03 22:07:39.051957360 +0100
 @@ -30,6 +30,8 @@
  
  #include <jdga.h>
@@ -8114,7 +8114,7 @@
   * for accessing the indicated X11 SurfaceData Java object.  It
 diff -Nru openjdk.orig/jdk/src/solaris/native/sun/java2d/x11/XRBackendNative.c openjdk/jdk/src/solaris/native/sun/java2d/x11/XRBackendNative.c
 --- openjdk.orig/jdk/src/solaris/native/sun/java2d/x11/XRBackendNative.c	1970-01-01 01:00:00.000000000 +0100
-+++ openjdk/jdk/src/solaris/native/sun/java2d/x11/XRBackendNative.c	2013-06-25 02:36:51.166788185 +0100
++++ openjdk/jdk/src/solaris/native/sun/java2d/x11/XRBackendNative.c	2016-05-03 22:07:39.051957360 +0100
 @@ -0,0 +1,784 @@
 +/*
 + * Copyright 2010 Sun Microsystems, Inc.  All Rights Reserved.
@@ -8902,7 +8902,7 @@
 +}
 diff -Nru openjdk.orig/jdk/src/solaris/native/sun/java2d/x11/XRSurfaceData.c openjdk/jdk/src/solaris/native/sun/java2d/x11/XRSurfaceData.c
 --- openjdk.orig/jdk/src/solaris/native/sun/java2d/x11/XRSurfaceData.c	1970-01-01 01:00:00.000000000 +0100
-+++ openjdk/jdk/src/solaris/native/sun/java2d/x11/XRSurfaceData.c	2013-06-25 02:36:51.166788185 +0100
++++ openjdk/jdk/src/solaris/native/sun/java2d/x11/XRSurfaceData.c	2016-05-03 22:07:39.051957360 +0100
 @@ -0,0 +1,116 @@
 +/*
 + * Copyright 2010 Sun Microsystems, Inc.  All Rights Reserved.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/openjdk/6863746-pr2951-no_ct.sym_in_javap.patch	Wed May 04 02:51:07 2016 +0100
@@ -0,0 +1,111 @@
+# HG changeset patch
+# User jjg
+# Date 1248472021 25200
+#      Fri Jul 24 14:47:01 2009 -0700
+# Node ID 6314258404082d265b65fd8dce47de6ad550a50a
+# Parent  49387c1440d088a737f21c332835fcb06fc0d1b2
+6863746: javap should not scan ct.sym by default
+Reviewed-by: mcimadamore
+
+diff -r 49387c1440d0 -r 631425840408 src/share/classes/com/sun/tools/javap/JavapFileManager.java
+--- openjdk/langtools/src/share/classes/com/sun/tools/javap/JavapFileManager.java	Thu Jul 23 14:15:58 2009 -0700
++++ openjdk/langtools/src/share/classes/com/sun/tools/javap/JavapFileManager.java	Fri Jul 24 14:47:01 2009 -0700
+@@ -44,6 +44,7 @@
+ class JavapFileManager extends JavacFileManager {
+     private JavapFileManager(Context context, Charset charset) {
+         super(context, true, charset);
++        setIgnoreSymbolFile(true);
+     }
+ 
+     static JavapFileManager create(final DiagnosticListener<? super JavaFileObject> dl, PrintWriter log, Options options) {
+diff -r 49387c1440d0 -r 631425840408 src/share/classes/com/sun/tools/javap/JavapTask.java
+--- openjdk/langtools/src/share/classes/com/sun/tools/javap/JavapTask.java	Thu Jul 23 14:15:58 2009 -0700
++++ openjdk/langtools/src/share/classes/com/sun/tools/javap/JavapTask.java	Fri Jul 24 14:47:01 2009 -0700
+@@ -235,12 +235,6 @@
+             }
+         },
+ 
+-        new Option(false, "-XDignore.symbol.file") {
+-            void process(JavapTask task, String opt, String arg) {
+-                task.options.ignoreSymbolFile = true;
+-            }
+-        },
+-
+         new Option(false, "-XDdetails") {
+             void process(JavapTask task, String opt, String arg) {
+                 task.options.details = EnumSet.allOf(InstructionDetailWriter.Kind.class);
+@@ -477,9 +471,6 @@
+             throw new BadArgs("err.incompatible.options", sb);
+         }
+ 
+-        if (options.ignoreSymbolFile && fileManager instanceof JavapFileManager)
+-            ((JavapFileManager) fileManager).setIgnoreSymbolFile(true);
+-
+         if ((classes == null || classes.size() == 0) &&
+                 !(noArgs || options.help || options.version || options.fullVersion)) {
+             throw new BadArgs("err.no.classes.specified");
+diff -r 49387c1440d0 -r 631425840408 src/share/classes/com/sun/tools/javap/Options.java
+--- openjdk/langtools/src/share/classes/com/sun/tools/javap/Options.java	Thu Jul 23 14:15:58 2009 -0700
++++ openjdk/langtools/src/share/classes/com/sun/tools/javap/Options.java	Fri Jul 24 14:47:01 2009 -0700
+@@ -88,5 +88,4 @@
+ 
+     public boolean compat;             // bug-for-bug compatibility mode with old javap
+     public boolean jsr277;
+-    public boolean ignoreSymbolFile;   // file manager should ignore ct.sym
+ }
+diff -r 49387c1440d0 -r 631425840408 test/tools/javap/T6863746.java
+--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
++++ openjdk/langtools/test/tools/javap/T6863746.java	Fri Jul 24 14:47:01 2009 -0700
+@@ -0,0 +1,52 @@
++/*
++ * Copyright 2009 Sun Microsystems, Inc.  All Rights Reserved.
++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
++ *
++ * This code is free software; you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License version 2 only, as
++ * published by the Free Software Foundation.
++ *
++ * This code is distributed in the hope that it will be useful, but WITHOUT
++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
++ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
++ * version 2 for more details (a copy is included in the LICENSE file that
++ * accompanied this code).
++ *
++ * You should have received a copy of the GNU General Public License version
++ * 2 along with this work; if not, write to the Free Software Foundation,
++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
++ *
++ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
++ * CA 95054 USA or visit www.sun.com if you need additional information or
++ * have any questions.
++ */
++
++import java.io.*;
++
++/*
++ * @test
++ * @bug 6863746
++ * @summary javap should not scan ct.sym by default
++ */
++
++public class T6863746 {
++    public static void main(String... args) throws Exception{
++        new T6863746().run();
++    }
++
++    public void run() throws Exception {
++        String[] args = { "-c", "java.lang.Object" };
++        StringWriter sw = new StringWriter();
++        PrintWriter pw = new PrintWriter(sw);
++        int rc = com.sun.tools.javap.Main.run(args, pw);
++        pw.close();
++        String out = sw.toString();
++        System.out.println(out);
++        String[] lines = out.split("\n");
++        // If ct.sym is being read, the output does not include
++        // Code attributes, so check for Code attributes as a
++        // way of detecting that ct.sym is not being used.
++        if (lines.length < 50 || out.indexOf("Code:") == -1)
++            throw new Exception("unexpected output from javap");
++    }
++}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/openjdk/8071705-pr2820-menu_misbehaviour.patch	Wed May 04 02:51:07 2016 +0100
@@ -0,0 +1,234 @@
+# HG changeset patch
+# User neugens
+# Date 1425048603 -3600
+#      Fri Feb 27 15:50:03 2015 +0100
+# Node ID 713b03464164219d7bc7e9b0b8b29fc240a9cc27
+# Parent  7f896649cfb657e61f444da0a80b684fb58f9949
+8071705, PR2820, RH1182694: Java application menu misbehaves when running multiple screen stacked vertically
+Summary: JMenu miscalculates the position of the Popup origin when on multiple monitors stacked vertically
+Reviewed-by: alexsch
+
+diff -r 7f896649cfb6 -r 713b03464164 src/share/classes/javax/swing/JMenu.java
+--- openjdk/jdk/src/share/classes/javax/swing/JMenu.java	Fri Oct 03 16:17:36 2014 +0100
++++ openjdk/jdk/src/share/classes/javax/swing/JMenu.java	Fri Feb 27 15:50:03 2015 +0100
+@@ -481,7 +481,8 @@
+             }
+             // Then the y:
+             y = s.height + yOffset;    // Prefer dropping down
+-            if (position.y + y + pmSize.height >= screenBounds.height &&
++            if (position.y + y + pmSize.height >= screenBounds.height
++                                                  + screenBounds.y &&
+                 // popup doesn't fit - place it wherever there's more room
+                 screenBounds.height - s.height < 2*(position.y
+                                                   - screenBounds.y)) {
+diff -r 7f896649cfb6 -r 713b03464164 test/javax/swing/JMenu/8071705/bug8071705.java
+--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
++++ openjdk/jdk/test/javax/swing/JMenu/8071705/bug8071705.java	Fri Feb 27 15:50:03 2015 +0100
+@@ -0,0 +1,207 @@
++/*
++ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
++ *
++ * This code is free software; you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License version 2 only, as
++ * published by the Free Software Foundation.
++ *
++ * This code is distributed in the hope that it will be useful, but WITHOUT
++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
++ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
++ * version 2 for more details (a copy is included in the LICENSE file that
++ * accompanied this code).
++ *
++ * You should have received a copy of the GNU General Public License version
++ * 2 along with this work; if not, write to the Free Software Foundation,
++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
++ *
++ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
++ * or visit www.oracle.com if you need additional information or have any
++ * questions.
++ */
++
++/*
++ * @test
++ * @bug 8071705
++ * @summary  Java application menu misbehaves when running multiple screen stacked vertically
++ * @build bug8071705
++ * @run main/othervm bug8071705
++ */
++
++import java.awt.Dimension;
++import java.awt.GraphicsConfiguration;
++import java.awt.GraphicsDevice;
++import java.awt.GraphicsEnvironment;
++import java.awt.Point;
++import java.awt.Rectangle;
++import java.awt.Toolkit;
++import java.awt.event.ComponentAdapter;
++import java.awt.event.ComponentEvent;
++import java.awt.event.KeyEvent;
++import java.util.concurrent.CountDownLatch;
++
++import javax.swing.JFrame;
++import javax.swing.JMenu;
++import javax.swing.JMenuBar;
++import javax.swing.JMenuItem;
++import javax.swing.JPopupMenu;
++import javax.swing.SwingUtilities;
++import javax.swing.UIManager;
++
++public class bug8071705 {
++
++    public static void main(String[] args) throws Exception {
++
++        final CountDownLatch latch = new CountDownLatch(1);
++        final boolean [] result = new boolean[1];
++
++        SwingUtilities.invokeLater(new Runnable() {
++            @Override
++            public void run() {
++                JFrame frame = createGUI();
++                GraphicsDevice[] devices = checkScreens();
++
++                // check if we have more than one and if they are stacked
++                // vertically
++                GraphicsDevice device = checkConfigs(devices);
++                if (device == null) {
++                    // just pass the test
++                    frame.dispose();
++                    result[0] = true;
++                    latch.countDown();
++                } else {
++                    FrameListener listener =
++                            new FrameListener(device, latch, result);
++                    frame.addComponentListener(listener);
++                    frame.setVisible(true);
++                }
++            }
++        });
++
++        latch.await();
++
++        if (result[0] == false) {
++            throw new RuntimeException("popup menu rendered in wrong position");
++        }
++
++        System.out.println("OK");
++    }
++
++    private static GraphicsDevice[] checkScreens() {
++        GraphicsEnvironment ge =
++            GraphicsEnvironment.getLocalGraphicsEnvironment();
++        return ge.getScreenDevices();
++    }
++
++    private static JFrame createGUI() {
++        JMenuBar menuBar = new JMenuBar();
++        JMenu menu = new JMenu("Some menu");
++        menuBar.add(menu);
++
++        for (int i = 0; i < 10; i++) {
++            menu.add(new JMenuItem("Some menu #" + i));
++        }
++
++        JFrame frame = new JFrame();
++        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
++        frame.setMinimumSize(new Dimension(200, 200));
++        frame.setJMenuBar(menuBar);
++        return frame;
++    }
++
++    private static GraphicsDevice checkConfigs(GraphicsDevice[] devices) {
++
++        GraphicsDevice correctDevice = null;
++        if (devices.length < 2) {
++            return correctDevice;
++        }
++
++        Toolkit toolkit = Toolkit.getDefaultToolkit();
++        Rectangle screenBounds = new Rectangle(toolkit.getScreenSize());
++        int halfScreen = screenBounds.height/2;
++
++        for(int i = 0; i < devices.length; i++) {
++            if(devices[i].getType() == GraphicsDevice.TYPE_RASTER_SCREEN) {
++                GraphicsConfiguration conf =
++                        devices[i].getDefaultConfiguration();
++                Rectangle bounds = conf.getBounds();
++                if (bounds.y >= halfScreen) {
++                    // found
++                    correctDevice = devices[i];
++                    break;
++                }
++            }
++        }
++        return correctDevice;
++    }
++
++    private static class FrameListener extends ComponentAdapter {
++
++        private GraphicsDevice device;
++        private CountDownLatch latch;
++        private boolean [] result;
++        public FrameListener(GraphicsDevice device,
++                             CountDownLatch latch,
++                             boolean [] result)
++        {
++            this.device = device;
++            this.latch = latch;
++            this.result = result;
++        }
++
++        @Override
++        public void componentShown(ComponentEvent e) {
++            JFrame frame = (JFrame) e.getComponent();
++
++            runActualTest(device, latch, frame, result);
++
++            frame.setVisible(false);
++            frame.dispose();
++            latch.countDown();
++        }
++    }
++
++    private static Rectangle setLocation(JFrame frame, GraphicsDevice device) {
++        GraphicsConfiguration conf = device.getDefaultConfiguration();
++        Rectangle bounds = conf.getBounds();
++
++        // put just below half screen
++        int x = bounds.x + bounds.width/2;
++        int y = bounds.y + bounds.height/2;
++        frame.setLocation(x, y);
++
++        return bounds;
++    }
++
++    private static void runActualTest(GraphicsDevice device,
++                                      CountDownLatch latch,
++                                      JFrame frame,
++                                      boolean [] result)
++    {
++        Rectangle screenBounds = setLocation(frame, device);
++        JMenu menu = frame.getJMenuBar().getMenu(0);
++        menu.doClick();
++
++        Point location = menu.getLocationOnScreen();
++        JPopupMenu pm = menu.getPopupMenu();
++        Dimension pmSize = pm.getSize();
++
++        int yOffset = UIManager.getInt("Menu.submenuPopupOffsetY");
++        int height = location.y + yOffset + pmSize.height + menu.getHeight();
++        int available = screenBounds.y + screenBounds.height - height;
++        if (available > 0) {
++            Point origin = pm.getLocationOnScreen();
++            if (origin.y < location.y) {
++                // growing upward, wrong!
++                result[0] = false;
++            } else {
++                // growing downward, ok!
++                result[0] = true;
++            }
++        } else {
++            // there is no space, growing upward would be ok, so we pass
++            result[0] = true;
++        }
++    }
++}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/openjdk/8150954-pr2868-composite_desktop.patch	Wed May 04 02:51:07 2016 +0100
@@ -0,0 +1,79 @@
+# HG changeset patch
+# User andrew
+# Date 1458776818 0
+#      Wed Mar 23 23:46:58 2016 +0000
+# Node ID a8a1f3433cf6221d727d500514d6ec593ad7ac9c
+# Parent  c850c5110affb0dc26cf147af79316a70f891b31
+8150954, PR2868, RH1176206: AWT Robot not compatible with GNOME Shell
+Summary: Use the overlay window rather than the root window when on a composite display.
+
+diff -Nru openjdk.orig/jdk/make/sun/xawt/Makefile openjdk/jdk/make/sun/xawt/Makefile
+--- openjdk.orig/jdk/make/sun/xawt/Makefile	2016-01-20 01:42:04.000000000 +0000
++++ openjdk/jdk/make/sun/xawt/Makefile	2016-05-03 22:01:06.150486940 +0100
+@@ -87,7 +87,7 @@
+ vpath %.c   $(PLATFORM_SRC)/native/sun/java2d/opengl
+ vpath %.c   $(PLATFORM_SRC)/native/sun/java2d/x11
+ 
+-OTHER_LDLIBS = $(LIBM) -lawt -lXext -lX11 -ldl \
++OTHER_LDLIBS = $(LIBM) -lawt -lXext -lX11 -lXcomposite -ldl \
+                    $(LDFLAGS_COMMON) $(AWT_RUNPATH) $(OTHER_LDFLAGS) -lXtst -lXi
+ 
+ ifeq  ($(PLATFORM), solaris)
+diff -Nru openjdk.orig/jdk/src/solaris/native/sun/awt/awt_Robot.c openjdk/jdk/src/solaris/native/sun/awt/awt_Robot.c
+--- openjdk.orig/jdk/src/solaris/native/sun/awt/awt_Robot.c	2016-05-03 21:56:41.430889964 +0100
++++ openjdk/jdk/src/solaris/native/sun/awt/awt_Robot.c	2016-05-03 22:01:48.157788289 +0100
+@@ -39,6 +39,7 @@
+ #include <X11/extensions/XTest.h>
+ #include <X11/extensions/XInput.h>
+ #include <X11/extensions/XI.h>
++#include <X11/extensions/Xcomposite.h>
+ #include <jni.h>
+ #include <sizecalc.h>
+ #include "robot_common.h"
+@@ -131,6 +132,33 @@
+     }
+ }
+ 
++static Bool hasXCompositeOverlayExtension(Display *display) {
++
++    int xoverlay = False;
++    int eventBase, errorBase;
++    if (XCompositeQueryExtension(display, &eventBase, &errorBase)) {
++        int major = 0;
++        int minor = 0;
++
++        XCompositeQueryVersion(display, &major, &minor);
++        if (major > 0 || minor >= 3)
++            xoverlay = True;
++    }
++
++    return xoverlay;
++}
++
++static jboolean isXCompositeDisplay(Display *display, int screenNumber) {
++
++    char NET_WM_CM_Sn[25];
++    snprintf(NET_WM_CM_Sn, sizeof(NET_WM_CM_Sn), "_NET_WM_CM_S%d\0", screenNumber);
++
++    Atom managerSelection = XInternAtom(display, NET_WM_CM_Sn, 0);
++    Window owner = XGetSelectionOwner(display, managerSelection);
++
++    return owner != 0;
++}
++
+ static XImage *getWindowImage(Display * display, Window window,
+                               int32_t x, int32_t y,
+                               int32_t w, int32_t h) {
+@@ -258,6 +286,12 @@
+     DASSERT(adata != NULL);
+ 
+     rootWindow = XRootWindow(awt_display, adata->awt_visInfo.screen);
++    if (isXCompositeDisplay(awt_display, adata->awt_visInfo.screen) &&
++        hasXCompositeOverlayExtension(awt_display))
++    {
++        rootWindow = XCompositeGetOverlayWindow(awt_display, rootWindow);
++    }
++
+     image = getWindowImage(awt_display, rootWindow, x, y, width, height);
+ 
+     /* Array to use to crunch around the pixel values */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/pr2890-system_cacerts.patch	Wed May 04 02:51:07 2016 +0100
@@ -0,0 +1,39 @@
+# HG changeset patch
+# User andrew
+# Date 1460692925 -3600
+#      Fri Apr 15 05:02:05 2016 +0100
+# Node ID 3fc5cbcd46dd9ac3c7a8eae4758e067eb701d129
+# Parent  a8a1f3433cf6221d727d500514d6ec593ad7ac9c
+PR2890: OpenJDK should check for system cacerts database (e.g. /etc/pki/java/cacerts)
+
+diff -r a8a1f3433cf6 -r 3fc5cbcd46dd src/share/classes/sun/security/ssl/TrustManagerFactoryImpl.java
+--- openjdk/jdk/src/share/classes/sun/security/ssl/TrustManagerFactoryImpl.java	Wed Mar 23 23:46:58 2016 +0000
++++ openjdk/jdk/src/share/classes/sun/security/ssl/TrustManagerFactoryImpl.java	Fri Apr 15 05:02:05 2016 +0100
+@@ -170,15 +170,20 @@
+                 storeFile = new File(storeFileName);
+                 fis = getFileInputStream(storeFile);
+             } else {
+-                String javaHome = props.get("javaHome");
+-                storeFile = new File(javaHome + sep + "lib" + sep
+-                                                + "security" + sep +
+-                                                "jssecacerts");
++                /* Check system cacerts DB first; /etc/pki/java/cacerts */
++                storeFile = new File(sep + "etc" + sep + "pki" + sep
++                                     + "java" + sep + "cacerts");
+                 if ((fis = getFileInputStream(storeFile)) == null) {
++                    String javaHome = props.get("javaHome");
+                     storeFile = new File(javaHome + sep + "lib" + sep
+-                                                + "security" + sep +
+-                                                "cacerts");
+-                    fis = getFileInputStream(storeFile);
++                                         + "security" + sep +
++                                         "jssecacerts");
++                    if ((fis = getFileInputStream(storeFile)) == null) {
++                        storeFile = new File(javaHome + sep + "lib" + sep
++                                             + "security" + sep +
++                                             "cacerts");
++                        fis = getFileInputStream(storeFile);
++                    }
+                 }
+             }
+