# HG changeset patch # User Andrew John Hughes # Date 1462314545 -3600 # Node ID 2c71794fd056884c1de723dda494f02d60ef17e6 # Parent e9935e163815dad1191d47ab0a216276beebb947 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 * 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. diff -r e9935e163815 -r 2c71794fd056 ChangeLog --- a/ChangeLog Mon Feb 15 17:48:40 2016 +0000 +++ b/ChangeLog Tue May 03 23:29:05 2016 +0100 @@ -1,3 +1,26 @@ +2016-05-03 Andrew John Hughes + + * 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 + + 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-02-15 Andrew John Hughes PR2849: wget not required when downloading is disabled diff -r e9935e163815 -r 2c71794fd056 INSTALL --- a/INSTALL Mon Feb 15 17:48:40 2016 +0000 +++ b/INSTALL Tue May 03 23:29:05 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 diff -r e9935e163815 -r 2c71794fd056 Makefile.am --- a/Makefile.am Mon Feb 15 17:48:40 2016 +0000 +++ b/Makefile.am Tue May 03 23:29:05 2016 +0100 @@ -650,7 +650,11 @@ patches/openjdk/8140620-pr2711-find_default.sf2.patch \ patches/openjdk/8076221-pr2808-disable_rc4_cipher_suites.patch \ patches/openjdk/8078823-disabledalgorithms_fails_intermittently.patch \ - patches/pr2808-fix_disabled_algorithms_test.patch + patches/pr2808-fix_disabled_algorithms_test.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 += \ diff -r e9935e163815 -r 2c71794fd056 NEWS --- a/NEWS Mon Feb 15 17:48:40 2016 +0000 +++ b/NEWS Tue May 03 23:29:05 2016 +0100 @@ -18,15 +18,19 @@ - S6611637: NullPointerException in sun.font.GlyphLayout$EngineRecord.init - S6727719: Performance of TextLayout.getBounds() - S6745225: Memory leak while drawing Attributed String + - S6863746, PR2951: javap should not scan ct.sym by default - S6904962: GlyphVector.getVisualBounds should not be affected by leading or trailing white space. - S7151089: PS NUMA: NUMA allocator should not attempt to free pages when using SHM large pages - S8013057: Detect mmap() commit failures in Linux and Solaris os::commit_memory() impls and call vm_exit_out_of_memory() - S8026887: Make issues due to failed large pages allocations easier to debug + - S8071705, PR2820, RH1182694: Java application menu misbehaves when running multiple screen stacked vertically - S8076221, PR2808: Disable RC4 cipher suites + - S8150954, PR2868, RH1176206: AWT Robot not compatible with GNOME Shell * Bug fixes - PR1886: IcedTea does not checksum supplied tarballs - PR2083: Add support for building Zero on AArch64 - PR2849: wget not required when downloading is disabled + - PR2890: OpenJDK should check for system cacerts database (e.g. /etc/pki/java/cacerts) New in release 1.13.10 (2016-01-22): diff -r e9935e163815 -r 2c71794fd056 configure.ac --- a/configure.ac Mon Feb 15 17:48:40 2016 +0000 +++ b/configure.ac Tue May 03 23:29:05 2016 +0100 @@ -329,8 +329,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]) @@ -363,6 +363,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]) diff -r e9935e163815 -r 2c71794fd056 patches/openjdk/6307603-xrender-01.patch --- a/patches/openjdk/6307603-xrender-01.patch Mon Feb 15 17:48:40 2016 +0000 +++ b/patches/openjdk/6307603-xrender-01.patch Tue May 03 23:29:05 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 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 @@ -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. diff -r e9935e163815 -r 2c71794fd056 patches/openjdk/6863746-pr2951-no_ct.sym_in_javap.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/openjdk/6863746-pr2951-no_ct.sym_in_javap.patch Tue May 03 23:29:05 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 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"); ++ } ++} diff -r e9935e163815 -r 2c71794fd056 patches/openjdk/8071705-pr2820-menu_misbehaviour.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/openjdk/8071705-pr2820-menu_misbehaviour.patch Tue May 03 23:29:05 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; ++ } ++ } ++} diff -r e9935e163815 -r 2c71794fd056 patches/openjdk/8150954-pr2868-composite_desktop.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/openjdk/8150954-pr2868-composite_desktop.patch Tue May 03 23:29:05 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 + #include + #include ++#include + #include + #include + #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 */ diff -r e9935e163815 -r 2c71794fd056 patches/pr2890-system_cacerts.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/pr2890-system_cacerts.patch Tue May 03 23:29:05 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); ++ } + } + } +