# HG changeset patch # User Andrew John Hughes # Date 1346428785 -3600 # Node ID e067051f7a6e6e22a2c4c8b6b03ea9db671667a5 # Parent f5a3984175d326c21506f20f3acac2c2b230ca4e Add security fixes from 2012/08/30. 2012-08-31 Andrew John Hughes * Makefile.am: (SECURITY_PATCHES): Add 7162476, 7163201 & 7182135. (ICEDTEA_PATCHES): Add 7185678. * patches/nomotif-6706121.patch, * patches/openjdk/6633275-shaped_translucent_windows.patch, * patches/openjdk/6693253-security_warning.patch, * patches/openjdk/6797195-hw_lw_mixing.patch: Regenerated post-security patches. * patches/openjdk/7185678-xmenuitem_peer_npe.patch, * patches/security/20120830/7162476-xmldecoder_via_classfinder.patch, * patches/security/20120830/7163201-simplify_toolkit_internal_references.patch: New patches from 6u35/7u7 security release. * patches/security/20120830/7182135-impossible_to_use_some_editors_directly.patch: Regression fix for 7162476. diff -r f5a3984175d3 -r e067051f7a6e ChangeLog --- a/ChangeLog Wed Jun 13 02:38:51 2012 +0100 +++ b/ChangeLog Fri Aug 31 16:59:45 2012 +0100 @@ -1,3 +1,20 @@ +2012-08-31 Andrew John Hughes + + * Makefile.am: + (SECURITY_PATCHES): Add 7162476, 7163201 & 7182135. + (ICEDTEA_PATCHES): Add 7185678. + * patches/nomotif-6706121.patch, + * patches/openjdk/6633275-shaped_translucent_windows.patch, + * patches/openjdk/6693253-security_warning.patch, + * patches/openjdk/6797195-hw_lw_mixing.patch: + Regenerated post-security patches. + * patches/openjdk/7185678-xmenuitem_peer_npe.patch, + * patches/security/20120830/7162476-xmldecoder_via_classfinder.patch, + * patches/security/20120830/7163201-simplify_toolkit_internal_references.patch: + New patches from 6u35/7u7 security release. + * patches/security/20120830/7182135-impossible_to_use_some_editors_directly.patch: + Regression fix for 7162476. + 2012-06-12 Andrew John Hughes * configure.ac: Bump to 1.10.9pre. diff -r f5a3984175d3 -r e067051f7a6e Makefile.am --- a/Makefile.am Wed Jun 13 02:38:51 2012 +0100 +++ b/Makefile.am Fri Aug 31 16:59:45 2012 +0100 @@ -226,7 +226,10 @@ patches/security/20120612/${HSBUILD}/7152811.patch \ patches/security/20120612/7157609.patch \ patches/security/20120612/7160677.patch \ - patches/security/20120612/7160757.patch + patches/security/20120612/7160757.patch \ + patches/security/20120830/7162476-xmldecoder_via_classfinder.patch \ + patches/security/20120830/7163201-simplify_toolkit_internal_references.patch \ + patches/security/20120830/7182135-impossible_to_use_some_editors_directly.patch SPECIAL_SECURITY_PATCH = patches/security/20120214/7112642.patch @@ -396,7 +399,8 @@ patches/openjdk/$(HSBUILD)/7103224-glibc_name_collision.patch \ patches/openjdk/7140882-dont-return-booleans-from-methods-returning-pointers.patch \ patches/openjdk/remove-mimpure-option-to-gcc.patch \ - patches/coverage-table.patch + patches/coverage-table.patch \ + patches/openjdk/7185678-xmenuitem_peer_npe.patch if WITH_ALT_HSBUILD ICEDTEA_PATCHES += \ diff -r f5a3984175d3 -r e067051f7a6e patches/nomotif-6706121.patch --- a/patches/nomotif-6706121.patch Wed Jun 13 02:38:51 2012 +0100 +++ b/patches/nomotif-6706121.patch Fri Aug 31 16:59:45 2012 +0100 @@ -1,6 +1,6 @@ diff -Nru openjdk.orig/jdk/make/sun/awt/FILES_c_unix.gmk openjdk/jdk/make/sun/awt/FILES_c_unix.gmk ---- openjdk.orig/jdk/make/sun/awt/FILES_c_unix.gmk 2010-05-26 09:32:36.000000000 +0100 -+++ openjdk/jdk/make/sun/awt/FILES_c_unix.gmk 2010-05-26 13:11:21.000000000 +0100 +--- openjdk.orig/jdk/make/sun/awt/FILES_c_unix.gmk 2011-11-14 22:11:40.000000000 +0000 ++++ openjdk/jdk/make/sun/awt/FILES_c_unix.gmk 2012-08-31 12:03:21.902641410 +0100 @@ -142,59 +142,59 @@ # These files rely on motif to be built, and should not be included # in a headless build. @@ -115,9 +115,9 @@ # These files are required to be built, with or without motif. Some of diff -Nru openjdk.orig/jdk/make/sun/awt/FILES_export_unix.gmk openjdk/jdk/make/sun/awt/FILES_export_unix.gmk ---- openjdk.orig/jdk/make/sun/awt/FILES_export_unix.gmk 2010-05-26 09:32:36.000000000 +0100 -+++ openjdk/jdk/make/sun/awt/FILES_export_unix.gmk 2010-05-26 13:11:21.000000000 +0100 -@@ -57,48 +57,15 @@ +--- openjdk.orig/jdk/make/sun/awt/FILES_export_unix.gmk 2012-08-31 12:00:37.508379799 +0100 ++++ openjdk/jdk/make/sun/awt/FILES_export_unix.gmk 2012-08-31 12:03:21.918641631 +0100 +@@ -60,48 +60,15 @@ sun/awt/image/DataBufferNative.java \ \ sun/awt/motif/X11FontMetrics.java \ @@ -166,7 +166,7 @@ sun/awt/X11GraphicsEnvironment.java \ sun/awt/X11GraphicsDevice.java \ sun/awt/X11GraphicsConfig.java \ -@@ -120,7 +87,6 @@ +@@ -124,7 +91,6 @@ sun/java2d/cmm/ColorTransform.java \ sun/awt/datatransfer/DataTransferer.java \ sun/awt/dnd/SunDragSourceContextPeer.java \ @@ -174,7 +174,7 @@ sun/awt/motif/MToolkitThreadBlockedHandler.java \ sun/java2d/opengl/OGLBlitLoops.java \ sun/java2d/opengl/OGLContext.java \ -@@ -216,6 +182,5 @@ +@@ -220,6 +186,5 @@ java/awt/event/NativeLibLoader.java \ java/awt/peer/ComponentPeer.java \ java/awt/dnd/DnDConstants.java \ @@ -183,8 +183,8 @@ + sun/awt/CausedFocusEvent.java 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 2010-05-26 09:32:36.000000000 +0100 -+++ openjdk/jdk/make/sun/awt/mapfile-mawt-vers 2010-05-26 13:11:21.000000000 +0100 +--- openjdk.orig/jdk/make/sun/awt/mapfile-mawt-vers 2012-08-31 12:00:37.800383804 +0100 ++++ openjdk/jdk/make/sun/awt/mapfile-mawt-vers 2012-08-31 12:03:21.918641631 +0100 @@ -31,7 +31,7 @@ global: JNI_OnLoad; @@ -601,7 +601,7 @@ Java_sun_awt_SunToolkit_closeSplashScreen; Java_sun_awt_PlatformFont_initIDs; Java_sun_awt_X11GraphicsConfig_init; -@@ -311,25 +311,25 @@ +@@ -312,25 +312,25 @@ Java_sun_awt_X11GraphicsEnvironment_initGLX; Java_sun_awt_X11GraphicsEnvironment_pRunningXinerama; Java_sun_awt_X11GraphicsEnvironment_getXineramaCenterPoint; @@ -646,7 +646,7 @@ Java_java_awt_AWTEvent_initIDs; Java_java_awt_Button_initIDs; Java_java_awt_Container_initIDs; -@@ -343,39 +343,39 @@ +@@ -344,39 +344,39 @@ Java_java_awt_Insets_initIDs; Java_java_awt_TextField_initIDs; Java_java_awt_Window_initIDs; @@ -717,8 +717,8 @@ Java_sun_awt_motif_MToolkitThreadBlockedHandler_exit; Java_sun_awt_X11GraphicsConfig_init; 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 2010-05-26 09:32:36.000000000 +0100 -+++ openjdk/jdk/make/sun/awt/mapfile-vers-linux 2010-05-26 13:11:21.000000000 +0100 +--- openjdk.orig/jdk/make/sun/awt/mapfile-vers-linux 2012-08-31 12:00:37.800383804 +0100 ++++ openjdk/jdk/make/sun/awt/mapfile-vers-linux 2012-08-31 12:03:21.918641631 +0100 @@ -169,7 +169,7 @@ GrPrim_Sg2dGetPixel; GrPrim_Sg2dGetLCDTextContrast; @@ -1121,7 +1121,7 @@ Java_sun_awt_SunToolkit_closeSplashScreen; Java_sun_awt_PlatformFont_initIDs; Java_sun_awt_X11GraphicsConfig_init; -@@ -441,40 +441,40 @@ +@@ -442,40 +442,40 @@ Java_java_awt_Insets_initIDs; Java_java_awt_TextField_initIDs; Java_java_awt_Window_initIDs; @@ -1192,7 +1192,7 @@ Java_sun_awt_motif_MToolkitThreadBlockedHandler_enter; Java_sun_awt_motif_MToolkitThreadBlockedHandler_exit; Java_sun_awt_X11GraphicsConfig_init; -@@ -502,26 +502,26 @@ +@@ -503,26 +503,26 @@ Java_sun_awt_X11SurfaceData_isDgaAvailable; Java_sun_awt_X11SurfaceData_setInvalid; Java_sun_awt_X11SurfaceData_flushNativeSurface; @@ -1240,8 +1240,8 @@ awt_lock; awt_Lock; diff -Nru openjdk.orig/jdk/make/sun/awt/mawt.gmk openjdk/jdk/make/sun/awt/mawt.gmk ---- openjdk.orig/jdk/make/sun/awt/mawt.gmk 2010-05-26 09:32:36.000000000 +0100 -+++ openjdk/jdk/make/sun/awt/mawt.gmk 2010-05-26 13:11:21.000000000 +0100 +--- openjdk.orig/jdk/make/sun/awt/mawt.gmk 2011-11-14 22:11:40.000000000 +0000 ++++ openjdk/jdk/make/sun/awt/mawt.gmk 2012-08-31 12:03:21.918641631 +0100 @@ -28,14 +28,6 @@ # INIT += $(LIB_LOCATION) @@ -1394,261 +1394,9 @@ endif # !HEADLESS -diff -Nru openjdk.orig/jdk/make/sun/awt/mawt.gmk.orig openjdk/jdk/make/sun/awt/mawt.gmk.orig ---- openjdk.orig/jdk/make/sun/awt/mawt.gmk.orig 1970-01-01 01:00:00.000000000 +0100 -+++ openjdk/jdk/make/sun/awt/mawt.gmk.orig 2010-05-26 09:32:36.000000000 +0100 -@@ -0,0 +1,248 @@ -+# -+# Copyright (c) 2000, 2007, 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. Oracle designates this -+# particular file as subject to the "Classpath" exception as provided -+# by Oracle in the LICENSE file that accompanied this code. -+# -+# 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. -+# -+ -+# -+# to create directory: -+# -+INIT += $(LIB_LOCATION) -+ -+ifndef HEADLESS -+ifeq ($(PLATFORM), linux) -+ifeq ($(STATIC_MOTIF),false) -+INIT += $(LIB_LOCATION)/libXm.so -+endif -+endif -+endif -+ -+# -+# Files -+# -+# mawt.gmk is just used in building X/Motif native code, so -+# this list of java files is no longer included. -+#include FILES_java_unix.gmk -+include $(BUILDDIR)/sun/awt/FILES_c_unix.gmk -+ -+include $(BUILDDIR)/sun/awt/FILES_export_unix.gmk -+ -+# Check which C files should be built. Headless uses only -+# non-motif files. Also, a version-specific motif file is -+# compiled based on the motif version. -+ifdef HEADLESS -+ FILES_c = $(FILES_NO_MOTIF_c) -+else -+ FILES_c = $(FILES_MOTIF_c) $(FILES_NO_MOTIF_c) -+ -+ ifeq ($(MOTIF_VERSION), 2) -+ FILES_c += awt_motif21.c -+ FILES_c += awt_Choice21.c -+ endif -+ -+endif -+ -+ifeq ($(PLATFORM), solaris) -+ ifneq ($(ARCH), amd64) -+ FILES_reorder += reorder-$(ARCH) -+ endif -+endif -+ -+# -+# Rules -+# -+ -+# Class files should be built & clobbered in make/sun/awt -+# If removing this line, also reinclude sun_awt.jmk -+DONT_CLOBBER_CLASSES = true -+ -+ -+ifndef HEADLESS -+ifeq ($(VARIANT), OPT) -+FILES_m = ../awt/mapfile-mawt-vers -+endif -+endif -+ -+# Since this library will be living in a subdirectory below the other libraries -+# we need to add an extra runpath so that libraries in the upper directory -+# are found at runtime. -+LD_RUNPATH_EXTRAS = .. -+ -+include $(BUILDDIR)/common/Mapfile-vers.gmk -+include $(BUILDDIR)/common/Library.gmk -+ -+$(LIB_LOCATION): -+ $(MKDIR) -p $@ -+ -+ifeq ($(PLATFORM), linux) -+ifeq ($(STATIC_MOTIF),false) -+$(LIB_LOCATION)/libXm.so: -+ $(CP) $(MOTIF_LIB)/libXm.so $(LIB_LOCATION)/libXm.so -+# Automounter problem makes the link fail on Redhat 6.1. -+# $(LN) -s $(MOTIF_LIB)/libXm.so $(LIB_LOCATION)/libXm.so -+endif -+endif -+ -+clean:: -+ -+# -+# Add to the ambient vpath to pick up files in subdirectories -+# -+vpath %.c $(SHARE_SRC)/native/$(PKGDIR)/alphacomposite -+vpath %.c $(SHARE_SRC)/native/$(PKGDIR)/image -+vpath %.c $(SHARE_SRC)/native/$(PKGDIR)/image/gif -+vpath %.c $(SHARE_SRC)/native/$(PKGDIR)/image/cvutils -+vpath %.c $(SHARE_SRC)/native/$(PKGDIR)/shell -+vpath %.c $(SHARE_SRC)/native/$(PKGDIR)/medialib -+vpath %.c $(SHARE_SRC)/native/$(PKGDIR)/../java2d/opengl -+vpath %.c $(PLATFORM_SRC)/native/$(PKGDIR)/../java2d/opengl -+vpath %.c $(PLATFORM_SRC)/native/$(PKGDIR)/../java2d/x11 -+vpath %.c $(SHARE_SRC)/native/$(PKGDIR)/debug -+vpath %.c $(SHARE_SRC)/native/$(PKGDIR)/../font -+vpath %.c $(SHARE_SRC)/native/$(PKGDIR)/../java2d -+vpath %.c $(SHARE_SRC)/native/$(PKGDIR)/../java2d/loops -+vpath %.c $(SHARE_SRC)/native/$(PKGDIR)/../java2d/pipe -+vpath %.cpp $(SHARE_SRC)/native/$(PKGDIR)/image -+vpath %.c $(PLATFORM_SRC)/native/$(PKGDIR)/robot_child -+ -+# -+# Libraries to link in. -+# -+ -+ -+ifeq ($(DEBUG_BINARIES), true) -+ CFLAGS += -g -+endif -+ifeq ($(HEADLESS),true) -+CFLAGS += -DHEADLESS=$(HEADLESS) -+CPPFLAGS += -DHEADLESS=$(HEADLESS) -+OTHER_LDLIBS = -+else -+CFLAGS += -DMOTIF_VERSION=$(MOTIF_VERSION) -+ -+ifeq ($(STATIC_MOTIF),true) -+ LIBXM = $(MOTIF_LIB)/libXm.a -lXp -lXmu -+ ifeq ($(PLATFORM), linux) -+ ifeq ($(ARCH_DATA_MODEL), 64) -+ LIBXT = -lXt -+ else -+ # Allows for builds on Debian GNU Linux, X11 is in a different place -+ LIBXT = $(firstword $(wildcard /usr/X11R6/lib/libXt.a) \ -+ $(wildcard /usr/lib/libXt.a)) -+ LIBSM = $(firstword $(wildcard /usr/X11R6/lib/libSM.a) \ -+ $(wildcard /usr/lib/libSM.a)) -+ LIBICE = $(firstword $(wildcard /usr/X11R6/lib/libICE.a) \ -+ $(wildcard /usr/lib/libICE.a)) -+ endif -+ endif -+else -+ LIBXM = -L$(MOTIF_LIB) -lXm -lXp -+ ifeq ($(PLATFORM), linux) -+ LIBXT = -lXt -+ LIBSM = -+ LIBICE = -+ endif -+endif -+ -+LIBXTST = -lXtst -+ -+# Use -lXmu for EditRes support -+LIBXMU_DBG = -lXmu -+LIBXMU_OPT = -+LIBXMU = $(LIBXMU_$(VARIANT)) -+ -+ifeq ($(PLATFORM), solaris) -+OTHER_LDLIBS = $(LIBXM) -lXt -lXext $(LIBXTST) $(LIBXMU) -lX11 -lXi -+endif -+ -+ifeq ($(PLATFORM), linux) -+OTHER_CFLAGS += -DMLIB_NO_LIBSUNMATH -+OTHER_CFLAGS += -DMOTIF_VERSION=2 -+OTHER_CFLAGS += -DXMSTRINGDEFINES=1 -+OTHER_LDLIBS = $(LIBXM) $(LIBXMU) $(LIBXTST) -lXext $(LIBXT) $(LIBSM) $(LIBICE) -lX11 -lXi -+endif -+ -+endif -+# !HEADLESS -+ -+OTHER_LDLIBS += $(JVMLIB) $(LIBCXX) \ -+ -lawt $(LIBM) -ldl -+ -+# -+# Sun CC with -Xa misdefines __STDC__ to 0 (zero). -+# The following will force checking of X11 prototypes. -+# -+ifneq ($(CC_VERSION),gcc) -+CPPFLAGS += -DFUNCPROTO=15 -+endif -+ -+# -+# Other extra flags needed for compiling. -+# -+CPPFLAGS += -I$(CUPS_HEADERS_PATH) -+ -+ifndef HEADLESS -+CPPFLAGS += -I$(MOTIF_DIR)/include \ -+ -I$(OPENWIN_HOME)/include -+LDFLAGS += -L$(MOTIF_LIB) -L$(OPENWIN_LIB) -+ -+endif # !HEADLESS -+ -+CPPFLAGS += -I$(SHARE_SRC)/native/$(PKGDIR)/debug \ -+ -I$(SHARE_SRC)/native/$(PKGDIR)/../font \ -+ -I$(PLATFORM_SRC)/native/$(PKGDIR)/../font \ -+ -I$(SHARE_SRC)/native/$(PKGDIR)/image \ -+ -I$(SHARE_SRC)/native/$(PKGDIR)/image/cvutils \ -+ -I$(SHARE_SRC)/native/$(PKGDIR)/shell \ -+ -I$(SHARE_SRC)/native/$(PKGDIR)/alphacomposite \ -+ -I$(SHARE_SRC)/native/$(PKGDIR)/medialib \ -+ -I$(PLATFORM_SRC)/native/$(PKGDIR)/medialib \ -+ -I$(SHARE_SRC)/native/$(PKGDIR)/../java2d \ -+ -I$(PLATFORM_SRC)/native/$(PKGDIR)/../java2d \ -+ -I$(SHARE_SRC)/native/$(PKGDIR)/../java2d/loops \ -+ -I$(SHARE_SRC)/native/$(PKGDIR)/../java2d/pipe \ -+ -I$(SHARE_SRC)/native/$(PKGDIR)/../java2d/opengl \ -+ -I$(PLATFORM_SRC)/native/$(PKGDIR)/../java2d/opengl \ -+ -I$(PLATFORM_SRC)/native/$(PKGDIR)/../java2d/x11 \ -+ -I$(SHARE_SRC)/native/$(PKGDIR)/../dc/doe \ -+ -I$(SHARE_SRC)/native/$(PKGDIR)/../dc/path \ -+ -I$(PLATFORM_SRC)/native/$(PKGDIR)/../jdga \ -+ -I$(PLATFORM_SRC)/native/$(PKGDIR) \ -+ $(EVENT_MODEL) -+ -+ifeq ($(PLATFORM), linux) -+# Checking for the X11/extensions headers at the additional location -+ CPPFLAGS += -I/X11R6/include/X11/extensions \ -+ -I/usr/include/X11/extensions -+endif -+ -+ifeq ($(PLATFORM), solaris) -+ CPPFLAGS += -I$(OPENWIN_HOME)/include/X11/extensions -+endif -+ -+ -+LDFLAGS += -L$(LIBDIR)/$(LIBARCH)/$(TSOBJDIR) \ -+ $(AWT_RUNPATH) -+ -+CLASSES.export += java.io.InputStream \ -+ java.lang.ThreadGroup -+ diff -Nru openjdk.orig/jdk/make/sun/jawt/Makefile openjdk/jdk/make/sun/jawt/Makefile ---- openjdk.orig/jdk/make/sun/jawt/Makefile 2010-05-26 09:32:36.000000000 +0100 -+++ openjdk/jdk/make/sun/jawt/Makefile 2010-05-26 13:11:21.000000000 +0100 +--- openjdk.orig/jdk/make/sun/jawt/Makefile 2011-11-14 22:11:41.000000000 +0000 ++++ openjdk/jdk/make/sun/jawt/Makefile 2012-08-31 12:03:21.922641686 +0100 @@ -99,7 +99,6 @@ # Other extra flags needed for compiling. # @@ -1657,174 +1405,8 @@ -I$(SHARE_SRC)/native/$(PKGDIR)/debug \ -I$(SHARE_SRC)/native/$(PKGDIR)/image \ -I$(SHARE_SRC)/native/$(PKGDIR)/image/cvutils \ -diff -Nru openjdk.orig/jdk/make/sun/jawt/Makefile.orig openjdk/jdk/make/sun/jawt/Makefile.orig ---- openjdk.orig/jdk/make/sun/jawt/Makefile.orig 1970-01-01 01:00:00.000000000 +0100 -+++ openjdk/jdk/make/sun/jawt/Makefile.orig 2010-05-26 09:32:36.000000000 +0100 -@@ -0,0 +1,162 @@ -+# -+# Copyright (c) 1999, 2006, 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. Oracle designates this -+# particular file as subject to the "Classpath" exception as provided -+# by Oracle in the LICENSE file that accompanied this code. -+# -+# 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. -+# -+ -+BUILDDIR = ../.. -+PACKAGE = sun.awt -+LIBRARY = jawt -+PRODUCT = sun -+ -+include $(BUILDDIR)/common/Defs.gmk -+ -+# -+# Files -+# -+ifeq ($(PLATFORM), windows) -+FILES_cpp = jawt.cpp -+else # PLATFORM -+FILES_c = jawt.c -+endif # PLATFORM -+ -+FILES_h = $(INCLUDEDIR)/jawt.h \ -+ $(PLATFORM_INCLUDE)/jawt_md.h -+ -+# -+# Use mapfile -+# -+FILES_m = mapfile-vers -+include $(BUILDDIR)/common/Mapfile-vers.gmk -+ -+ -+ifeq ($(PLATFORM), windows) -+# -+# Extra C flags. -+# -+ -+OTHER_CXXFLAGS += $(GX_OPTION) -DUNICODE -D_UNICODE -+ -+# -+# Other extra flags needed for compiling. -+# -+CPPFLAGS += -I$(SHARE_SRC)/native/common \ -+ -I$(DXSDK_INCLUDE_PATH) \ -+ -I$(PLATFORM_SRC)/native/sun/windows \ -+ -I$(CLASSHDRDIR)/../../awt/CClassHeaders \ -+ -I$(SHARE_SRC)/native/sun/awt/debug \ -+ -I$(SHARE_SRC)/native/sun/font \ -+ -I$(SHARE_SRC)/native/sun/java2d \ -+ -I$(SHARE_SRC)/native/sun/java2d/loops \ -+ -I$(SHARE_SRC)/native/sun/java2d/pipe \ -+ -I$(PLATFORM_SRC)/native/sun/java2d \ -+ -I$(PLATFORM_SRC)/native/sun/java2d/windows \ -+ -I$(PLATFORM_SRC)/native/sun/java2d/d3d \ -+ -I$(SHARE_SRC)/native/$(PKGDIR)/image/cvutils \ -+ -I$(SHARE_SRC)/javavm/export \ -+ -I$(PLATFORM_SRC)/javavm/export -+INSTALL_DOT_LIB = true -+ -+vpath %.cpp $(PLATFORM_SRC)/native/sun/windows -+ -+# -+# Libraries to link in. -+# -+ifeq ($(ARCH_DATA_MODEL), 64) -+OTHER_LDLIBS = $(OBJDIR)/../../awt/$(OBJDIRNAME)/awt.lib -+else -+OTHER_LDLIBS = /nod:kernel32.lib /nod:advapi32.lib /nod:user32.lib \ -+ /nod:gdi32.lib /nod:shell32.lib /nod:comdlg32.lib \ -+ /nod:version.lib /nod:mpr.lib /nod:rasapi32.lib \ -+ /nod:winmm.lib /nod:winspool.lib /nod:vfw32.lib \ -+ /nod:secur32.lib /nod:oleacc.lib /nod:oledlg.lib \ -+ /nod:sensapi.lib \ -+ $(UNICOWS_LIB_PATH)/unicows.lib kernel32.lib \ -+ $(OBJDIR)/../../awt/$(OBJDIRNAME)/awt.lib -+endif -+else # PLATFORM -+ -+# -+# Other extra flags needed for compiling. -+# -+CPPFLAGS += -I$(OPENWIN_HOME)/include \ -+ -I$(MOTIF_DIR)/include \ -+ -I$(SHARE_SRC)/native/$(PKGDIR)/debug \ -+ -I$(SHARE_SRC)/native/$(PKGDIR)/image \ -+ -I$(SHARE_SRC)/native/$(PKGDIR)/image/cvutils \ -+ -I$(SHARE_SRC)/native/$(PKGDIR)/alphacomposite \ -+ -I$(SHARE_SRC)/native/$(PKGDIR)/medialib \ -+ -I$(PLATFORM_SRC)/native/$(PKGDIR)/medialib \ -+ -I$(SHARE_SRC)/native/$(PKGDIR)/../java2d/loops \ -+ -I$(SHARE_SRC)/native/$(PKGDIR)/../java2d/pipe \ -+ -I$(SHARE_SRC)/native/$(PKGDIR)/../java2d/opengl \ -+ -I$(PLATFORM_SRC)/native/$(PKGDIR)/../java2d/opengl \ -+ -I$(PLATFORM_SRC)/native/$(PKGDIR)/../java2d/x11 \ -+ -I$(SHARE_SRC)/native/$(PKGDIR)/../dc/doe \ -+ -I$(SHARE_SRC)/native/$(PKGDIR)/../dc/path \ -+ -I$(PLATFORM_SRC)/native/$(PKGDIR)/../jdga \ -+ $(EVENT_MODEL) -+# -+# Libraries to link in. -+# -+ifeq ($(PLATFORM), solaris) -+OTHER_LDLIBS = -L$(LIBDIR)/$(LIBARCH) -L$(OPENWIN_LIB) -L$(LIBDIR)/$(LIBARCH)/xawt -lmawt -+endif # PLATFORM -+ -+ifeq ($(PLATFORM), linux) -+OTHER_LDLIBS = -L$(LIBDIR)/$(LIBARCH) -lawt -L$(LIBDIR)/$(LIBARCH)/xawt -lmawt -+endif # PLATFORM -+ -+endif # PLATFORM -+ -+ -+# -+# Lets not remove any class files. -+# -+DONT_CLOBBER_CLASSES = true -+ -+# -+# Rules -+# -+include $(BUILDDIR)/common/Library.gmk -+ -+build: $(FILES_h) -+ -+ifeq ($(PLATFORM), windows) -+include make.depend -+endif -+ -+# -+# Install header files. -+# -+$(INCLUDEDIR)/%.h: $(SHARE_SRC)/javavm/export/%.h -+ $(install-file) -+$(PLATFORM_INCLUDE)/%.h: $(PLATFORM_SRC)/javavm/export/%.h -+ $(install-file) -+ -+ -+# -+# Extra clean rule. -+# -+clean clobber:: -+ $(RM) $(FILES_h) -+ diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MButtonPeer.java openjdk/jdk/src/solaris/classes/sun/awt/motif/MButtonPeer.java ---- openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MButtonPeer.java 2010-05-26 09:32:50.000000000 +0100 +--- openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MButtonPeer.java 2011-11-14 22:12:14.000000000 +0000 +++ openjdk/jdk/src/solaris/classes/sun/awt/motif/MButtonPeer.java 1970-01-01 01:00:00.000000000 +0100 @@ -1,97 +0,0 @@ -/* @@ -1925,7 +1507,7 @@ - -} diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MCanvasPeer.java openjdk/jdk/src/solaris/classes/sun/awt/motif/MCanvasPeer.java ---- openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MCanvasPeer.java 2010-05-26 09:32:50.000000000 +0100 +--- openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MCanvasPeer.java 2011-11-14 22:12:14.000000000 +0000 +++ openjdk/jdk/src/solaris/classes/sun/awt/motif/MCanvasPeer.java 1970-01-01 01:00:00.000000000 +0100 @@ -1,113 +0,0 @@ -/* @@ -2042,7 +1624,7 @@ - } -} diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MCheckboxMenuItemPeer.java openjdk/jdk/src/solaris/classes/sun/awt/motif/MCheckboxMenuItemPeer.java ---- openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MCheckboxMenuItemPeer.java 2010-05-26 09:32:50.000000000 +0100 +--- openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MCheckboxMenuItemPeer.java 2011-11-14 22:12:14.000000000 +0000 +++ openjdk/jdk/src/solaris/classes/sun/awt/motif/MCheckboxMenuItemPeer.java 1970-01-01 01:00:00.000000000 +0100 @@ -1,93 +0,0 @@ -/* @@ -2139,7 +1721,7 @@ - } // action() -} // class MCheckboxMenuItemPeer diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MCheckboxPeer.java openjdk/jdk/src/solaris/classes/sun/awt/motif/MCheckboxPeer.java ---- openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MCheckboxPeer.java 2010-05-26 09:32:50.000000000 +0100 +--- openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MCheckboxPeer.java 2011-11-14 22:12:14.000000000 +0000 +++ openjdk/jdk/src/solaris/classes/sun/awt/motif/MCheckboxPeer.java 1970-01-01 01:00:00.000000000 +0100 @@ -1,187 +0,0 @@ -/* @@ -2330,7 +1912,7 @@ - -} diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MChoicePeer.java openjdk/jdk/src/solaris/classes/sun/awt/motif/MChoicePeer.java ---- openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MChoicePeer.java 2010-05-26 09:32:50.000000000 +0100 +--- openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MChoicePeer.java 2011-11-14 22:12:14.000000000 +0000 +++ openjdk/jdk/src/solaris/classes/sun/awt/motif/MChoicePeer.java 1970-01-01 01:00:00.000000000 +0100 @@ -1,177 +0,0 @@ -/* @@ -2511,9 +2093,9 @@ - private native void freeNativeData(); -} diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MComponentPeer.java openjdk/jdk/src/solaris/classes/sun/awt/motif/MComponentPeer.java ---- openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MComponentPeer.java 2010-05-26 09:32:50.000000000 +0100 +--- openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MComponentPeer.java 2012-08-31 12:00:36.988372667 +0100 +++ openjdk/jdk/src/solaris/classes/sun/awt/motif/MComponentPeer.java 1970-01-01 01:00:00.000000000 +0100 -@@ -1,1182 +0,0 @@ +@@ -1,1171 +0,0 @@ -/* - * Copyright (c) 1995, 2007, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. @@ -2913,19 +2495,8 @@ - } - } - -- static Method requestFocusWithCause; -- - static void callRequestFocusInWindow(Component target, CausedFocusEvent.Cause cause) { -- if (requestFocusWithCause == null) { -- requestFocusWithCause = SunToolkit.getMethod(Component.class, "requestFocusInWindow", new Class[] {CausedFocusEvent.Cause.class}); -- } -- if (requestFocusWithCause != null) { -- try { -- requestFocusWithCause.invoke(target, new Object[] {cause}); -- } catch (Exception e) { -- e.printStackTrace(); -- } -- } +- AWTAccessor.getComponentAccessor().requestFocusInWindow(target, cause); - } - - public void handleEvent(AWTEvent e) { @@ -3697,7 +3268,7 @@ - -} diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MCustomCursor.java openjdk/jdk/src/solaris/classes/sun/awt/motif/MCustomCursor.java ---- openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MCustomCursor.java 2010-05-26 09:32:50.000000000 +0100 +--- openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MCustomCursor.java 2011-11-14 22:12:14.000000000 +0000 +++ openjdk/jdk/src/solaris/classes/sun/awt/motif/MCustomCursor.java 1970-01-01 01:00:00.000000000 +0100 @@ -1,68 +0,0 @@ -/* @@ -3769,7 +3340,7 @@ - private native static void cacheInit(); -} diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MDataTransferer.java openjdk/jdk/src/solaris/classes/sun/awt/motif/MDataTransferer.java ---- openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MDataTransferer.java 2010-05-26 09:32:50.000000000 +0100 +--- openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MDataTransferer.java 2011-11-14 22:12:14.000000000 +0000 +++ openjdk/jdk/src/solaris/classes/sun/awt/motif/MDataTransferer.java 1970-01-01 01:00:00.000000000 +0100 @@ -1,386 +0,0 @@ -/* @@ -4159,7 +3730,7 @@ - protected native String[] dragQueryFile(byte[] bytes); -} diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MDialogPeer.java openjdk/jdk/src/solaris/classes/sun/awt/motif/MDialogPeer.java ---- openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MDialogPeer.java 2010-05-26 09:32:50.000000000 +0100 +--- openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MDialogPeer.java 2011-11-14 22:12:14.000000000 +0000 +++ openjdk/jdk/src/solaris/classes/sun/awt/motif/MDialogPeer.java 1970-01-01 01:00:00.000000000 +0100 @@ -1,110 +0,0 @@ -/* @@ -4273,7 +3844,7 @@ - } -} diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MDragSourceContextPeer.java openjdk/jdk/src/solaris/classes/sun/awt/motif/MDragSourceContextPeer.java ---- openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MDragSourceContextPeer.java 2010-05-26 09:32:50.000000000 +0100 +--- openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MDragSourceContextPeer.java 2011-11-14 22:12:14.000000000 +0000 +++ openjdk/jdk/src/solaris/classes/sun/awt/motif/MDragSourceContextPeer.java 1970-01-01 01:00:00.000000000 +0100 @@ -1,120 +0,0 @@ -/* @@ -4397,7 +3968,7 @@ - -} diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MDropTargetContextPeer.java openjdk/jdk/src/solaris/classes/sun/awt/motif/MDropTargetContextPeer.java ---- openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MDropTargetContextPeer.java 2010-05-26 09:32:50.000000000 +0100 +--- openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MDropTargetContextPeer.java 2011-11-14 22:12:14.000000000 +0000 +++ openjdk/jdk/src/solaris/classes/sun/awt/motif/MDropTargetContextPeer.java 1970-01-01 01:00:00.000000000 +0100 @@ -1,147 +0,0 @@ -/* @@ -4548,7 +4119,7 @@ - boolean localTx, boolean success, int dropAction); -} diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MEmbedCanvasPeer.java openjdk/jdk/src/solaris/classes/sun/awt/motif/MEmbedCanvasPeer.java ---- openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MEmbedCanvasPeer.java 2010-05-26 09:32:50.000000000 +0100 +--- openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MEmbedCanvasPeer.java 2011-11-14 22:12:14.000000000 +0000 +++ openjdk/jdk/src/solaris/classes/sun/awt/motif/MEmbedCanvasPeer.java 1970-01-01 01:00:00.000000000 +0100 @@ -1,584 +0,0 @@ -/* @@ -5136,7 +4707,7 @@ - } -} diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MEmbeddedFrame.java openjdk/jdk/src/solaris/classes/sun/awt/motif/MEmbeddedFrame.java ---- openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MEmbeddedFrame.java 2010-05-26 09:32:50.000000000 +0100 +--- openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MEmbeddedFrame.java 2011-11-14 22:12:14.000000000 +0000 +++ openjdk/jdk/src/solaris/classes/sun/awt/motif/MEmbeddedFrame.java 1970-01-01 01:00:00.000000000 +0100 @@ -1,141 +0,0 @@ -/* @@ -5281,7 +4852,7 @@ - } -} diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MEmbeddedFramePeer.java openjdk/jdk/src/solaris/classes/sun/awt/motif/MEmbeddedFramePeer.java ---- openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MEmbeddedFramePeer.java 2010-05-26 09:32:50.000000000 +0100 +--- openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MEmbeddedFramePeer.java 2011-11-14 22:12:14.000000000 +0000 +++ openjdk/jdk/src/solaris/classes/sun/awt/motif/MEmbeddedFramePeer.java 1970-01-01 01:00:00.000000000 +0100 @@ -1,213 +0,0 @@ -/* @@ -5498,7 +5069,7 @@ - } -} diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MFileDialogPeer.java openjdk/jdk/src/solaris/classes/sun/awt/motif/MFileDialogPeer.java ---- openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MFileDialogPeer.java 2010-05-26 09:32:50.000000000 +0100 +--- openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MFileDialogPeer.java 2011-11-14 22:12:14.000000000 +0000 +++ openjdk/jdk/src/solaris/classes/sun/awt/motif/MFileDialogPeer.java 1970-01-01 01:00:00.000000000 +0100 @@ -1,300 +0,0 @@ -/* @@ -5802,7 +5373,7 @@ - } -} diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MFramePeer.java openjdk/jdk/src/solaris/classes/sun/awt/motif/MFramePeer.java ---- openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MFramePeer.java 2010-05-26 09:32:50.000000000 +0100 +--- openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MFramePeer.java 2011-11-14 22:12:14.000000000 +0000 +++ openjdk/jdk/src/solaris/classes/sun/awt/motif/MFramePeer.java 1970-01-01 01:00:00.000000000 +0100 @@ -1,511 +0,0 @@ -/* @@ -6317,7 +5888,7 @@ - } -} diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MGlobalCursorManager.java openjdk/jdk/src/solaris/classes/sun/awt/motif/MGlobalCursorManager.java ---- openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MGlobalCursorManager.java 2010-05-26 09:32:50.000000000 +0100 +--- openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MGlobalCursorManager.java 2011-11-14 22:12:14.000000000 +0000 +++ openjdk/jdk/src/solaris/classes/sun/awt/motif/MGlobalCursorManager.java 1970-01-01 01:00:00.000000000 +0100 @@ -1,118 +0,0 @@ -/* @@ -6439,7 +6010,7 @@ - } -} diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MInputMethodControl.java openjdk/jdk/src/solaris/classes/sun/awt/motif/MInputMethodControl.java ---- openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MInputMethodControl.java 2010-05-26 09:32:50.000000000 +0100 +--- openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MInputMethodControl.java 2011-11-14 22:12:14.000000000 +0000 +++ openjdk/jdk/src/solaris/classes/sun/awt/motif/MInputMethodControl.java 1970-01-01 01:00:00.000000000 +0100 @@ -1,73 +0,0 @@ -/* @@ -6516,7 +6087,7 @@ - void removeInputMethod(MInputMethod inputMethod); -} diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MInputMethodDescriptor.java openjdk/jdk/src/solaris/classes/sun/awt/motif/MInputMethodDescriptor.java ---- openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MInputMethodDescriptor.java 2010-05-26 09:32:50.000000000 +0100 +--- openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MInputMethodDescriptor.java 2011-11-14 22:12:14.000000000 +0000 +++ openjdk/jdk/src/solaris/classes/sun/awt/motif/MInputMethodDescriptor.java 1970-01-01 01:00:00.000000000 +0100 @@ -1,48 +0,0 @@ -/* @@ -6568,7 +6139,7 @@ - } -} diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MInputMethod.java openjdk/jdk/src/solaris/classes/sun/awt/motif/MInputMethod.java ---- openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MInputMethod.java 2010-05-26 09:32:50.000000000 +0100 +--- openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MInputMethod.java 2011-11-14 22:12:14.000000000 +0000 +++ openjdk/jdk/src/solaris/classes/sun/awt/motif/MInputMethod.java 1970-01-01 01:00:00.000000000 +0100 @@ -1,177 +0,0 @@ -/* @@ -6749,7 +6320,7 @@ - boolean value, boolean active); -} diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MLabelPeer.java openjdk/jdk/src/solaris/classes/sun/awt/motif/MLabelPeer.java ---- openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MLabelPeer.java 2010-05-26 09:32:50.000000000 +0100 +--- openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MLabelPeer.java 2011-11-14 22:12:14.000000000 +0000 +++ openjdk/jdk/src/solaris/classes/sun/awt/motif/MLabelPeer.java 1970-01-01 01:00:00.000000000 +0100 @@ -1,104 +0,0 @@ -/* @@ -6857,7 +6428,7 @@ - -} diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MListPeer.java openjdk/jdk/src/solaris/classes/sun/awt/motif/MListPeer.java ---- openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MListPeer.java 2010-05-26 09:32:50.000000000 +0100 +--- openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MListPeer.java 2011-11-14 22:12:14.000000000 +0000 +++ openjdk/jdk/src/solaris/classes/sun/awt/motif/MListPeer.java 1970-01-01 01:00:00.000000000 +0100 @@ -1,390 +0,0 @@ -/* @@ -7251,7 +6822,7 @@ - int wheelRotation); -} diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MMenuBarPeer.java openjdk/jdk/src/solaris/classes/sun/awt/motif/MMenuBarPeer.java ---- openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MMenuBarPeer.java 2010-05-26 09:32:50.000000000 +0100 +--- openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MMenuBarPeer.java 2011-11-14 22:12:14.000000000 +0000 +++ openjdk/jdk/src/solaris/classes/sun/awt/motif/MMenuBarPeer.java 1970-01-01 01:00:00.000000000 +0100 @@ -1,192 +0,0 @@ -/* @@ -7447,7 +7018,7 @@ - } -} diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MMenuItemPeer.java openjdk/jdk/src/solaris/classes/sun/awt/motif/MMenuItemPeer.java ---- openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MMenuItemPeer.java 2010-05-26 09:32:50.000000000 +0100 +--- openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MMenuItemPeer.java 2011-11-14 22:12:14.000000000 +0000 +++ openjdk/jdk/src/solaris/classes/sun/awt/motif/MMenuItemPeer.java 1970-01-01 01:00:00.000000000 +0100 @@ -1,190 +0,0 @@ -/* @@ -7641,7 +7212,7 @@ - } -} diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MMenuPeer.java openjdk/jdk/src/solaris/classes/sun/awt/motif/MMenuPeer.java ---- openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MMenuPeer.java 2010-05-26 09:32:50.000000000 +0100 +--- openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MMenuPeer.java 2011-11-14 22:12:14.000000000 +0000 +++ openjdk/jdk/src/solaris/classes/sun/awt/motif/MMenuPeer.java 1970-01-01 01:00:00.000000000 +0100 @@ -1,83 +0,0 @@ -/* @@ -7728,7 +7299,7 @@ - native void pDispose(); -} diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MMouseDragGestureRecognizer.java openjdk/jdk/src/solaris/classes/sun/awt/motif/MMouseDragGestureRecognizer.java ---- openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MMouseDragGestureRecognizer.java 2010-05-26 09:32:50.000000000 +0100 +--- openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MMouseDragGestureRecognizer.java 2011-11-14 22:12:14.000000000 +0000 +++ openjdk/jdk/src/solaris/classes/sun/awt/motif/MMouseDragGestureRecognizer.java 1970-01-01 01:00:00.000000000 +0100 @@ -1,233 +0,0 @@ -/* @@ -7965,7 +7536,7 @@ - } -} diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MPanelPeer.java openjdk/jdk/src/solaris/classes/sun/awt/motif/MPanelPeer.java ---- openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MPanelPeer.java 2010-05-26 09:32:50.000000000 +0100 +--- openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MPanelPeer.java 2011-11-14 22:12:14.000000000 +0000 +++ openjdk/jdk/src/solaris/classes/sun/awt/motif/MPanelPeer.java 1970-01-01 01:00:00.000000000 +0100 @@ -1,201 +0,0 @@ -/* @@ -8170,7 +7741,7 @@ - } -} diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MPopupMenuPeer.java openjdk/jdk/src/solaris/classes/sun/awt/motif/MPopupMenuPeer.java ---- openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MPopupMenuPeer.java 2010-05-26 09:32:50.000000000 +0100 +--- openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MPopupMenuPeer.java 2011-11-14 22:12:14.000000000 +0000 +++ openjdk/jdk/src/solaris/classes/sun/awt/motif/MPopupMenuPeer.java 1970-01-01 01:00:00.000000000 +0100 @@ -1,132 +0,0 @@ -/* @@ -8306,7 +7877,7 @@ - native void pDispose(); -} // class MPopupMenuPeer diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MRobotPeer.java openjdk/jdk/src/solaris/classes/sun/awt/motif/MRobotPeer.java ---- openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MRobotPeer.java 2010-05-26 09:32:50.000000000 +0100 +--- openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MRobotPeer.java 2011-11-14 22:12:14.000000000 +0000 +++ openjdk/jdk/src/solaris/classes/sun/awt/motif/MRobotPeer.java 1970-01-01 01:00:00.000000000 +0100 @@ -1,96 +0,0 @@ -/* @@ -8406,7 +7977,7 @@ - private static native synchronized void getRGBPixelsImpl(X11GraphicsConfig xgc, int x, int y, int width, int height, int pixelArray[]); -} diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MScrollbarPeer.java openjdk/jdk/src/solaris/classes/sun/awt/motif/MScrollbarPeer.java ---- openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MScrollbarPeer.java 2010-05-26 09:32:50.000000000 +0100 +--- openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MScrollbarPeer.java 2011-11-14 22:12:14.000000000 +0000 +++ openjdk/jdk/src/solaris/classes/sun/awt/motif/MScrollbarPeer.java 1970-01-01 01:00:00.000000000 +0100 @@ -1,187 +0,0 @@ -/* @@ -8597,7 +8168,7 @@ - } -} diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MScrollPanePeer.java openjdk/jdk/src/solaris/classes/sun/awt/motif/MScrollPanePeer.java ---- openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MScrollPanePeer.java 2010-05-26 09:32:50.000000000 +0100 +--- openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MScrollPanePeer.java 2011-11-14 22:12:14.000000000 +0000 +++ openjdk/jdk/src/solaris/classes/sun/awt/motif/MScrollPanePeer.java 1970-01-01 01:00:00.000000000 +0100 @@ -1,411 +0,0 @@ -/* @@ -9012,7 +8583,7 @@ - } -} diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MTextAreaPeer.java openjdk/jdk/src/solaris/classes/sun/awt/motif/MTextAreaPeer.java ---- openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MTextAreaPeer.java 2010-05-26 09:32:50.000000000 +0100 +--- openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MTextAreaPeer.java 2011-11-14 22:12:14.000000000 +0000 +++ openjdk/jdk/src/solaris/classes/sun/awt/motif/MTextAreaPeer.java 1970-01-01 01:00:00.000000000 +0100 @@ -1,555 +0,0 @@ -/* @@ -9571,7 +9142,7 @@ - int pos; -} diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MTextFieldPeer.java openjdk/jdk/src/solaris/classes/sun/awt/motif/MTextFieldPeer.java ---- openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MTextFieldPeer.java 2010-05-26 09:32:50.000000000 +0100 +--- openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MTextFieldPeer.java 2011-11-14 22:12:14.000000000 +0000 +++ openjdk/jdk/src/solaris/classes/sun/awt/motif/MTextFieldPeer.java 1970-01-01 01:00:00.000000000 +0100 @@ -1,356 +0,0 @@ -/* @@ -9931,8 +9502,8 @@ - -} diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MToolkit.java openjdk/jdk/src/solaris/classes/sun/awt/motif/MToolkit.java ---- openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MToolkit.java 2010-05-26 09:32:50.000000000 +0100 -+++ openjdk/jdk/src/solaris/classes/sun/awt/motif/MToolkit.java 2010-05-26 13:11:21.000000000 +0100 +--- openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MToolkit.java 2011-11-14 22:12:14.000000000 +0000 ++++ openjdk/jdk/src/solaris/classes/sun/awt/motif/MToolkit.java 2012-08-31 12:03:21.930641797 +0100 @@ -60,12 +60,12 @@ import java.awt.dnd.InvalidDnDOperationException; import java.awt.dnd.peer.DragSourceContextPeer; @@ -10327,7 +9898,7 @@ static boolean useMotifDnD() { diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MWindowPeer.java openjdk/jdk/src/solaris/classes/sun/awt/motif/MWindowPeer.java ---- openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MWindowPeer.java 2010-05-26 09:32:50.000000000 +0100 +--- openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MWindowPeer.java 2011-11-14 22:12:14.000000000 +0000 +++ openjdk/jdk/src/solaris/classes/sun/awt/motif/MWindowPeer.java 1970-01-01 01:00:00.000000000 +0100 @@ -1,602 +0,0 @@ -/* @@ -10933,7 +10504,7 @@ - -} diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/X11Clipboard.java openjdk/jdk/src/solaris/classes/sun/awt/motif/X11Clipboard.java ---- openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/X11Clipboard.java 2010-05-26 09:32:50.000000000 +0100 +--- openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/X11Clipboard.java 2011-11-14 22:12:14.000000000 +0000 +++ openjdk/jdk/src/solaris/classes/sun/awt/motif/X11Clipboard.java 1970-01-01 01:00:00.000000000 +0100 @@ -1,151 +0,0 @@ -/* @@ -11088,7 +10659,7 @@ - -} diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/X11DragSourceContextPeer.java openjdk/jdk/src/solaris/classes/sun/awt/motif/X11DragSourceContextPeer.java ---- openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/X11DragSourceContextPeer.java 2010-05-26 09:32:50.000000000 +0100 +--- openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/X11DragSourceContextPeer.java 2011-11-14 22:12:14.000000000 +0000 +++ openjdk/jdk/src/solaris/classes/sun/awt/motif/X11DragSourceContextPeer.java 1970-01-01 01:00:00.000000000 +0100 @@ -1,131 +0,0 @@ -/* @@ -11223,7 +10794,7 @@ - -} diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/X11DropTargetContextPeer.java openjdk/jdk/src/solaris/classes/sun/awt/motif/X11DropTargetContextPeer.java ---- openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/X11DropTargetContextPeer.java 2010-05-26 09:32:50.000000000 +0100 +--- openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/X11DropTargetContextPeer.java 2011-11-14 22:12:14.000000000 +0000 +++ openjdk/jdk/src/solaris/classes/sun/awt/motif/X11DropTargetContextPeer.java 1970-01-01 01:00:00.000000000 +0100 @@ -1,167 +0,0 @@ -/* @@ -11394,7 +10965,7 @@ - private native Object getData(long nativeCtxt, long format); -} diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/X11SelectionHolder.java openjdk/jdk/src/solaris/classes/sun/awt/motif/X11SelectionHolder.java ---- openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/X11SelectionHolder.java 2010-05-26 09:32:50.000000000 +0100 +--- openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/X11SelectionHolder.java 2011-11-14 22:12:14.000000000 +0000 +++ openjdk/jdk/src/solaris/classes/sun/awt/motif/X11SelectionHolder.java 1970-01-01 01:00:00.000000000 +0100 @@ -1,33 +0,0 @@ -/* @@ -11431,7 +11002,7 @@ - public void lostSelectionOwnership(); -} diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/X11Selection.java openjdk/jdk/src/solaris/classes/sun/awt/motif/X11Selection.java ---- openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/X11Selection.java 2010-05-26 09:32:50.000000000 +0100 +--- openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/X11Selection.java 2011-11-14 22:12:14.000000000 +0000 +++ openjdk/jdk/src/solaris/classes/sun/awt/motif/X11Selection.java 1970-01-01 01:00:00.000000000 +0100 @@ -1,203 +0,0 @@ -/* @@ -11638,7 +11209,7 @@ - } -} diff -Nru openjdk.orig/jdk/src/solaris/native/sun/awt/awt_Button.c openjdk/jdk/src/solaris/native/sun/awt/awt_Button.c ---- openjdk.orig/jdk/src/solaris/native/sun/awt/awt_Button.c 2010-05-26 09:32:51.000000000 +0100 +--- openjdk.orig/jdk/src/solaris/native/sun/awt/awt_Button.c 2011-11-14 22:12:15.000000000 +0000 +++ openjdk/jdk/src/solaris/native/sun/awt/awt_Button.c 1970-01-01 01:00:00.000000000 +0100 @@ -1,276 +0,0 @@ -/* @@ -11918,7 +11489,7 @@ - AWT_FLUSH_UNLOCK (); -} diff -Nru openjdk.orig/jdk/src/solaris/native/sun/awt/awt_Canvas.c openjdk/jdk/src/solaris/native/sun/awt/awt_Canvas.c ---- openjdk.orig/jdk/src/solaris/native/sun/awt/awt_Canvas.c 2010-05-26 09:32:51.000000000 +0100 +--- openjdk.orig/jdk/src/solaris/native/sun/awt/awt_Canvas.c 2011-11-14 22:12:15.000000000 +0000 +++ openjdk/jdk/src/solaris/native/sun/awt/awt_Canvas.c 1970-01-01 01:00:00.000000000 +0100 @@ -1,130 +0,0 @@ -/* @@ -12052,7 +11623,7 @@ - DASSERT(mCanvasIDs.setGCFromPeerMID); -} diff -Nru openjdk.orig/jdk/src/solaris/native/sun/awt/awt_Checkbox.c openjdk/jdk/src/solaris/native/sun/awt/awt_Checkbox.c ---- openjdk.orig/jdk/src/solaris/native/sun/awt/awt_Checkbox.c 2010-05-26 09:32:51.000000000 +0100 +--- openjdk.orig/jdk/src/solaris/native/sun/awt/awt_Checkbox.c 2011-11-14 22:12:15.000000000 +0000 +++ openjdk/jdk/src/solaris/native/sun/awt/awt_Checkbox.c 1970-01-01 01:00:00.000000000 +0100 @@ -1,428 +0,0 @@ -/* @@ -12484,7 +12055,7 @@ - return dim; -} diff -Nru openjdk.orig/jdk/src/solaris/native/sun/awt/awt_Choice12.c openjdk/jdk/src/solaris/native/sun/awt/awt_Choice12.c ---- openjdk.orig/jdk/src/solaris/native/sun/awt/awt_Choice12.c 2010-05-26 09:32:51.000000000 +0100 +--- openjdk.orig/jdk/src/solaris/native/sun/awt/awt_Choice12.c 2011-11-14 22:12:15.000000000 +0000 +++ openjdk/jdk/src/solaris/native/sun/awt/awt_Choice12.c 1970-01-01 01:00:00.000000000 +0100 @@ -1,843 +0,0 @@ -/* @@ -13331,7 +12902,7 @@ - AWT_UNLOCK(); -} diff -Nru openjdk.orig/jdk/src/solaris/native/sun/awt/awt_Choice21.c openjdk/jdk/src/solaris/native/sun/awt/awt_Choice21.c ---- openjdk.orig/jdk/src/solaris/native/sun/awt/awt_Choice21.c 2010-05-26 09:32:51.000000000 +0100 +--- openjdk.orig/jdk/src/solaris/native/sun/awt/awt_Choice21.c 2011-11-14 22:12:15.000000000 +0000 +++ openjdk/jdk/src/solaris/native/sun/awt/awt_Choice21.c 1970-01-01 01:00:00.000000000 +0100 @@ -1,764 +0,0 @@ -/* @@ -14099,7 +13670,7 @@ - AWT_UNLOCK(); -} diff -Nru openjdk.orig/jdk/src/solaris/native/sun/awt/awt_Component.c openjdk/jdk/src/solaris/native/sun/awt/awt_Component.c ---- openjdk.orig/jdk/src/solaris/native/sun/awt/awt_Component.c 2010-05-26 09:32:51.000000000 +0100 +--- openjdk.orig/jdk/src/solaris/native/sun/awt/awt_Component.c 2011-11-14 22:12:15.000000000 +0000 +++ openjdk/jdk/src/solaris/native/sun/awt/awt_Component.c 1970-01-01 01:00:00.000000000 +0100 @@ -1,1656 +0,0 @@ -/* @@ -15759,7 +15330,7 @@ - AWT_UNLOCK(); -} diff -Nru openjdk.orig/jdk/src/solaris/native/sun/awt/awt_Cursor.c openjdk/jdk/src/solaris/native/sun/awt/awt_Cursor.c ---- openjdk.orig/jdk/src/solaris/native/sun/awt/awt_Cursor.c 2010-05-26 09:32:51.000000000 +0100 +--- openjdk.orig/jdk/src/solaris/native/sun/awt/awt_Cursor.c 2011-11-14 22:12:15.000000000 +0000 +++ openjdk/jdk/src/solaris/native/sun/awt/awt_Cursor.c 1970-01-01 01:00:00.000000000 +0100 @@ -1,216 +0,0 @@ -/* @@ -15979,7 +15550,7 @@ - return (*env)->NewLocalRef(env, curComp); -} diff -Nru openjdk.orig/jdk/src/solaris/native/sun/awt/awt_DataTransferer.c openjdk/jdk/src/solaris/native/sun/awt/awt_DataTransferer.c ---- openjdk.orig/jdk/src/solaris/native/sun/awt/awt_DataTransferer.c 2010-05-26 09:32:51.000000000 +0100 +--- openjdk.orig/jdk/src/solaris/native/sun/awt/awt_DataTransferer.c 2011-11-14 22:12:15.000000000 +0000 +++ openjdk/jdk/src/solaris/native/sun/awt/awt_DataTransferer.c 1970-01-01 01:00:00.000000000 +0100 @@ -1,1068 +0,0 @@ -/* @@ -17051,7 +16622,7 @@ - AWT_NOTIFY_ALL(); -} diff -Nru openjdk.orig/jdk/src/solaris/native/sun/awt/awt_DataTransferer.h openjdk/jdk/src/solaris/native/sun/awt/awt_DataTransferer.h ---- openjdk.orig/jdk/src/solaris/native/sun/awt/awt_DataTransferer.h 2010-05-26 09:32:51.000000000 +0100 +--- openjdk.orig/jdk/src/solaris/native/sun/awt/awt_DataTransferer.h 2011-11-14 22:12:15.000000000 +0000 +++ openjdk/jdk/src/solaris/native/sun/awt/awt_DataTransferer.h 1970-01-01 01:00:00.000000000 +0100 @@ -1,275 +0,0 @@ -/* @@ -17330,7 +16901,7 @@ - -#endif /* AWT_DATATRANSFERER_H */ diff -Nru openjdk.orig/jdk/src/solaris/native/sun/awt/awt_dnd.c openjdk/jdk/src/solaris/native/sun/awt/awt_dnd.c ---- openjdk.orig/jdk/src/solaris/native/sun/awt/awt_dnd.c 2010-05-26 09:32:51.000000000 +0100 +--- openjdk.orig/jdk/src/solaris/native/sun/awt/awt_dnd.c 2011-11-14 22:12:16.000000000 +0000 +++ openjdk/jdk/src/solaris/native/sun/awt/awt_dnd.c 1970-01-01 01:00:00.000000000 +0100 @@ -1,887 +0,0 @@ -/* @@ -18221,7 +17792,7 @@ - return ret; -} diff -Nru openjdk.orig/jdk/src/solaris/native/sun/awt/awt_dnd_ds.c openjdk/jdk/src/solaris/native/sun/awt/awt_dnd_ds.c ---- openjdk.orig/jdk/src/solaris/native/sun/awt/awt_dnd_ds.c 2010-05-26 09:32:51.000000000 +0100 +--- openjdk.orig/jdk/src/solaris/native/sun/awt/awt_dnd_ds.c 2011-11-14 22:12:16.000000000 +0000 +++ openjdk/jdk/src/solaris/native/sun/awt/awt_dnd_ds.c 1970-01-01 01:00:00.000000000 +0100 @@ -1,1796 +0,0 @@ -/* @@ -20021,7 +19592,7 @@ - CurrentTime); -} diff -Nru openjdk.orig/jdk/src/solaris/native/sun/awt/awt_dnd_dt.c openjdk/jdk/src/solaris/native/sun/awt/awt_dnd_dt.c ---- openjdk.orig/jdk/src/solaris/native/sun/awt/awt_dnd_dt.c 2010-05-26 09:32:51.000000000 +0100 +--- openjdk.orig/jdk/src/solaris/native/sun/awt/awt_dnd_dt.c 2011-11-14 22:12:16.000000000 +0000 +++ openjdk/jdk/src/solaris/native/sun/awt/awt_dnd_dt.c 1970-01-01 01:00:00.000000000 +0100 @@ -1,3700 +0,0 @@ -/* @@ -23725,7 +23296,7 @@ - return get_selection_data(env, selection, target, time_stamp); -} diff -Nru openjdk.orig/jdk/src/solaris/native/sun/awt/awt_dnd.h openjdk/jdk/src/solaris/native/sun/awt/awt_dnd.h ---- openjdk.orig/jdk/src/solaris/native/sun/awt/awt_dnd.h 2010-05-26 09:32:51.000000000 +0100 +--- openjdk.orig/jdk/src/solaris/native/sun/awt/awt_dnd.h 2011-11-14 22:12:16.000000000 +0000 +++ openjdk/jdk/src/solaris/native/sun/awt/awt_dnd.h 1970-01-01 01:00:00.000000000 +0100 @@ -1,242 +0,0 @@ -/* @@ -23971,8 +23542,8 @@ -void set_proxy_mode_source_window(Window window); -/******************************************************************************/ diff -Nru openjdk.orig/jdk/src/solaris/native/sun/awt/awt_DrawingSurface.c openjdk/jdk/src/solaris/native/sun/awt/awt_DrawingSurface.c ---- openjdk.orig/jdk/src/solaris/native/sun/awt/awt_DrawingSurface.c 2010-05-26 09:32:51.000000000 +0100 -+++ openjdk/jdk/src/solaris/native/sun/awt/awt_DrawingSurface.c 2010-05-26 13:11:21.000000000 +0100 +--- openjdk.orig/jdk/src/solaris/native/sun/awt/awt_DrawingSurface.c 2011-11-14 22:12:15.000000000 +0000 ++++ openjdk/jdk/src/solaris/native/sun/awt/awt_DrawingSurface.c 2012-08-31 12:03:21.938641907 +0100 @@ -29,7 +29,7 @@ #include "awt_p.h" @@ -23983,7 +23554,7 @@ #include "awt_Component.h" diff -Nru openjdk.orig/jdk/src/solaris/native/sun/awt/awt_FileDialog.c openjdk/jdk/src/solaris/native/sun/awt/awt_FileDialog.c ---- openjdk.orig/jdk/src/solaris/native/sun/awt/awt_FileDialog.c 2010-05-26 09:32:51.000000000 +0100 +--- openjdk.orig/jdk/src/solaris/native/sun/awt/awt_FileDialog.c 2011-11-14 22:12:15.000000000 +0000 +++ openjdk/jdk/src/solaris/native/sun/awt/awt_FileDialog.c 1970-01-01 01:00:00.000000000 +0100 @@ -1,925 +0,0 @@ -/* @@ -24912,7 +24483,7 @@ - AWT_FLUSH_UNLOCK(); -} diff -Nru openjdk.orig/jdk/src/solaris/native/sun/awt/awt_GlobalCursorManager.c openjdk/jdk/src/solaris/native/sun/awt/awt_GlobalCursorManager.c ---- openjdk.orig/jdk/src/solaris/native/sun/awt/awt_GlobalCursorManager.c 2010-05-26 09:32:51.000000000 +0100 +--- openjdk.orig/jdk/src/solaris/native/sun/awt/awt_GlobalCursorManager.c 2011-11-14 22:12:15.000000000 +0000 +++ openjdk/jdk/src/solaris/native/sun/awt/awt_GlobalCursorManager.c 1970-01-01 01:00:00.000000000 +0100 @@ -1,127 +0,0 @@ -/* @@ -25043,7 +24614,7 @@ - return component; -} diff -Nru openjdk.orig/jdk/src/solaris/native/sun/awt/awt_KeyboardFocusManager.c openjdk/jdk/src/solaris/native/sun/awt/awt_KeyboardFocusManager.c ---- openjdk.orig/jdk/src/solaris/native/sun/awt/awt_KeyboardFocusManager.c 2010-05-26 09:32:51.000000000 +0100 +--- openjdk.orig/jdk/src/solaris/native/sun/awt/awt_KeyboardFocusManager.c 2011-11-14 22:12:15.000000000 +0000 +++ openjdk/jdk/src/solaris/native/sun/awt/awt_KeyboardFocusManager.c 1970-01-01 01:00:00.000000000 +0100 @@ -1,175 +0,0 @@ -/* @@ -25222,7 +24793,7 @@ - AWT_UNLOCK(); -} diff -Nru openjdk.orig/jdk/src/solaris/native/sun/awt/awt_Label.c openjdk/jdk/src/solaris/native/sun/awt/awt_Label.c ---- openjdk.orig/jdk/src/solaris/native/sun/awt/awt_Label.c 2010-05-26 09:32:51.000000000 +0100 +--- openjdk.orig/jdk/src/solaris/native/sun/awt/awt_Label.c 2011-11-14 22:12:15.000000000 +0000 +++ openjdk/jdk/src/solaris/native/sun/awt/awt_Label.c 1970-01-01 01:00:00.000000000 +0100 @@ -1,212 +0,0 @@ -/* @@ -25438,7 +25009,7 @@ - AWT_FLUSH_UNLOCK(); -} diff -Nru openjdk.orig/jdk/src/solaris/native/sun/awt/awt_List.c openjdk/jdk/src/solaris/native/sun/awt/awt_List.c ---- openjdk.orig/jdk/src/solaris/native/sun/awt/awt_List.c 2010-05-26 09:32:51.000000000 +0100 +--- openjdk.orig/jdk/src/solaris/native/sun/awt/awt_List.c 2011-11-14 22:12:15.000000000 +0000 +++ openjdk/jdk/src/solaris/native/sun/awt/awt_List.c 1970-01-01 01:00:00.000000000 +0100 @@ -1,600 +0,0 @@ -/* @@ -26042,7 +25613,7 @@ - AWT_UNLOCK(); -} diff -Nru openjdk.orig/jdk/src/solaris/native/sun/awt/awt_MenuBar.c openjdk/jdk/src/solaris/native/sun/awt/awt_MenuBar.c ---- openjdk.orig/jdk/src/solaris/native/sun/awt/awt_MenuBar.c 2010-05-26 09:32:51.000000000 +0100 +--- openjdk.orig/jdk/src/solaris/native/sun/awt/awt_MenuBar.c 2011-11-14 22:12:15.000000000 +0000 +++ openjdk/jdk/src/solaris/native/sun/awt/awt_MenuBar.c 1970-01-01 01:00:00.000000000 +0100 @@ -1,198 +0,0 @@ -/* @@ -26244,7 +25815,7 @@ - AWT_UNLOCK(); -} diff -Nru openjdk.orig/jdk/src/solaris/native/sun/awt/awt_MenuBar.h openjdk/jdk/src/solaris/native/sun/awt/awt_MenuBar.h ---- openjdk.orig/jdk/src/solaris/native/sun/awt/awt_MenuBar.h 2010-05-26 09:32:51.000000000 +0100 +--- openjdk.orig/jdk/src/solaris/native/sun/awt/awt_MenuBar.h 2011-11-14 22:12:15.000000000 +0000 +++ openjdk/jdk/src/solaris/native/sun/awt/awt_MenuBar.h 1970-01-01 01:00:00.000000000 +0100 @@ -1,30 +0,0 @@ -/* @@ -26278,7 +25849,7 @@ - jfieldID graphicsConfig; -}; diff -Nru openjdk.orig/jdk/src/solaris/native/sun/awt/awt_Menu.c openjdk/jdk/src/solaris/native/sun/awt/awt_Menu.c ---- openjdk.orig/jdk/src/solaris/native/sun/awt/awt_Menu.c 2010-05-26 09:32:51.000000000 +0100 +--- openjdk.orig/jdk/src/solaris/native/sun/awt/awt_Menu.c 2011-11-14 22:12:15.000000000 +0000 +++ openjdk/jdk/src/solaris/native/sun/awt/awt_Menu.c 1970-01-01 01:00:00.000000000 +0100 @@ -1,407 +0,0 @@ -/* @@ -26689,7 +26260,7 @@ - AWT_UNLOCK(); -} diff -Nru openjdk.orig/jdk/src/solaris/native/sun/awt/awt_MenuComponent.c openjdk/jdk/src/solaris/native/sun/awt/awt_MenuComponent.c ---- openjdk.orig/jdk/src/solaris/native/sun/awt/awt_MenuComponent.c 2010-05-26 09:32:51.000000000 +0100 +--- openjdk.orig/jdk/src/solaris/native/sun/awt/awt_MenuComponent.c 2011-11-14 22:12:15.000000000 +0000 +++ openjdk/jdk/src/solaris/native/sun/awt/awt_MenuComponent.c 1970-01-01 01:00:00.000000000 +0100 @@ -1,48 +0,0 @@ -/* @@ -26741,7 +26312,7 @@ - env, cls, "getParent_NoClientCode", "()Ljava/awt/MenuContainer;"); -} diff -Nru openjdk.orig/jdk/src/solaris/native/sun/awt/awt_Menu.h openjdk/jdk/src/solaris/native/sun/awt/awt_Menu.h ---- openjdk.orig/jdk/src/solaris/native/sun/awt/awt_Menu.h 2010-05-26 09:32:51.000000000 +0100 +--- openjdk.orig/jdk/src/solaris/native/sun/awt/awt_Menu.h 2011-11-14 22:12:15.000000000 +0000 +++ openjdk/jdk/src/solaris/native/sun/awt/awt_Menu.h 1970-01-01 01:00:00.000000000 +0100 @@ -1,32 +0,0 @@ -/* @@ -26777,7 +26348,7 @@ - jfieldID isHelpMenu; -}; diff -Nru openjdk.orig/jdk/src/solaris/native/sun/awt/awt_MenuItem.c openjdk/jdk/src/solaris/native/sun/awt/awt_MenuItem.c ---- openjdk.orig/jdk/src/solaris/native/sun/awt/awt_MenuItem.c 2010-05-26 09:32:51.000000000 +0100 +--- openjdk.orig/jdk/src/solaris/native/sun/awt/awt_MenuItem.c 2011-11-14 22:12:15.000000000 +0000 +++ openjdk/jdk/src/solaris/native/sun/awt/awt_MenuItem.c 1970-01-01 01:00:00.000000000 +0100 @@ -1,654 +0,0 @@ -/* @@ -27435,7 +27006,7 @@ - return ((state) ? JNI_TRUE : JNI_FALSE); -} diff -Nru openjdk.orig/jdk/src/solaris/native/sun/awt/awt_motif12.c openjdk/jdk/src/solaris/native/sun/awt/awt_motif12.c ---- openjdk.orig/jdk/src/solaris/native/sun/awt/awt_motif12.c 2010-05-26 09:32:51.000000000 +0100 +--- openjdk.orig/jdk/src/solaris/native/sun/awt/awt_motif12.c 2011-11-14 22:12:16.000000000 +0000 +++ openjdk/jdk/src/solaris/native/sun/awt/awt_motif12.c 1970-01-01 01:00:00.000000000 +0100 @@ -1,435 +0,0 @@ -/* @@ -27874,7 +27445,7 @@ - xmDragContextClassRec.drag_class.start = (XmDragStartProc)CheckedDragStart; -} diff -Nru openjdk.orig/jdk/src/solaris/native/sun/awt/awt_motif21.c openjdk/jdk/src/solaris/native/sun/awt/awt_motif21.c ---- openjdk.orig/jdk/src/solaris/native/sun/awt/awt_motif21.c 2010-05-26 09:32:51.000000000 +0100 +--- openjdk.orig/jdk/src/solaris/native/sun/awt/awt_motif21.c 2011-11-14 22:12:16.000000000 +0000 +++ openjdk/jdk/src/solaris/native/sun/awt/awt_motif21.c 1970-01-01 01:00:00.000000000 +0100 @@ -1,234 +0,0 @@ -/* @@ -28112,7 +27683,7 @@ - (XtPointer)w); -} diff -Nru openjdk.orig/jdk/src/solaris/native/sun/awt/awt_motif.c openjdk/jdk/src/solaris/native/sun/awt/awt_motif.c ---- openjdk.orig/jdk/src/solaris/native/sun/awt/awt_motif.c 2010-05-26 09:32:51.000000000 +0100 +--- openjdk.orig/jdk/src/solaris/native/sun/awt/awt_motif.c 2011-11-14 22:12:16.000000000 +0000 +++ openjdk/jdk/src/solaris/native/sun/awt/awt_motif.c 1970-01-01 01:00:00.000000000 +0100 @@ -1,58 +0,0 @@ -/* @@ -28174,8 +27745,8 @@ - } -} diff -Nru openjdk.orig/jdk/src/solaris/native/sun/awt/awt_MToolkit.c openjdk/jdk/src/solaris/native/sun/awt/awt_MToolkit.c ---- openjdk.orig/jdk/src/solaris/native/sun/awt/awt_MToolkit.c 2010-05-26 09:32:51.000000000 +0100 -+++ openjdk/jdk/src/solaris/native/sun/awt/awt_MToolkit.c 2010-05-26 13:11:21.000000000 +0100 +--- openjdk.orig/jdk/src/solaris/native/sun/awt/awt_MToolkit.c 2011-11-14 22:12:15.000000000 +0000 ++++ openjdk/jdk/src/solaris/native/sun/awt/awt_MToolkit.c 2012-08-31 12:03:21.942641962 +0100 @@ -48,7 +48,7 @@ /* JNI field and method ids */ @@ -28186,8 +27757,8 @@ #include "awt_TopLevel.h" #include "canvas.h" diff -Nru openjdk.orig/jdk/src/solaris/native/sun/awt/awt_p.h openjdk/jdk/src/solaris/native/sun/awt/awt_p.h ---- openjdk.orig/jdk/src/solaris/native/sun/awt/awt_p.h 2010-05-26 09:32:51.000000000 +0100 -+++ openjdk/jdk/src/solaris/native/sun/awt/awt_p.h 2010-05-26 13:11:21.000000000 +0100 +--- openjdk.orig/jdk/src/solaris/native/sun/awt/awt_p.h 2012-08-31 12:00:37.836384297 +0100 ++++ openjdk/jdk/src/solaris/native/sun/awt/awt_p.h 2012-08-31 12:03:21.942641962 +0100 @@ -79,7 +79,7 @@ #ifndef XAWT @@ -28198,7 +27769,7 @@ #ifndef HEADLESS diff -Nru openjdk.orig/jdk/src/solaris/native/sun/awt/awt_PopupMenu.c openjdk/jdk/src/solaris/native/sun/awt/awt_PopupMenu.c ---- openjdk.orig/jdk/src/solaris/native/sun/awt/awt_PopupMenu.c 2010-05-26 09:32:51.000000000 +0100 +--- openjdk.orig/jdk/src/solaris/native/sun/awt/awt_PopupMenu.c 2011-11-14 22:12:15.000000000 +0000 +++ openjdk/jdk/src/solaris/native/sun/awt/awt_PopupMenu.c 1970-01-01 01:00:00.000000000 +0100 @@ -1,491 +0,0 @@ -/* @@ -28693,8 +28264,8 @@ - AWT_UNLOCK(); -} 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 2010-05-26 09:32:51.000000000 +0100 -+++ openjdk/jdk/src/solaris/native/sun/awt/awt_Robot.c 2010-05-26 13:11:21.000000000 +0100 +--- openjdk.orig/jdk/src/solaris/native/sun/awt/awt_Robot.c 2011-11-14 22:12:15.000000000 +0000 ++++ openjdk/jdk/src/solaris/native/sun/awt/awt_Robot.c 2012-08-31 12:03:21.942641962 +0100 @@ -204,14 +204,8 @@ /*********************************************************************************************/ @@ -28775,7 +28346,7 @@ jint wheelAmt) { /* Mouse wheel is implemented as a button press of button 4 and 5, so it */ diff -Nru openjdk.orig/jdk/src/solaris/native/sun/awt/awt_Scrollbar.c openjdk/jdk/src/solaris/native/sun/awt/awt_Scrollbar.c ---- openjdk.orig/jdk/src/solaris/native/sun/awt/awt_Scrollbar.c 2010-05-26 09:32:51.000000000 +0100 +--- openjdk.orig/jdk/src/solaris/native/sun/awt/awt_Scrollbar.c 2011-11-14 22:12:15.000000000 +0000 +++ openjdk/jdk/src/solaris/native/sun/awt/awt_Scrollbar.c 1970-01-01 01:00:00.000000000 +0100 @@ -1,440 +0,0 @@ -/* @@ -29219,7 +28790,7 @@ - AWT_FLUSH_UNLOCK(); -} diff -Nru openjdk.orig/jdk/src/solaris/native/sun/awt/awt_ScrollPane.c openjdk/jdk/src/solaris/native/sun/awt/awt_ScrollPane.c ---- openjdk.orig/jdk/src/solaris/native/sun/awt/awt_ScrollPane.c 2010-05-26 09:32:51.000000000 +0100 +--- openjdk.orig/jdk/src/solaris/native/sun/awt/awt_ScrollPane.c 2011-11-14 22:12:15.000000000 +0000 +++ openjdk/jdk/src/solaris/native/sun/awt/awt_ScrollPane.c 1970-01-01 01:00:00.000000000 +0100 @@ -1,927 +0,0 @@ -/* @@ -30150,7 +29721,7 @@ - (*env)->CallVoidMethod(env, adjustable, setTypedValueMID, value, type); -} diff -Nru openjdk.orig/jdk/src/solaris/native/sun/awt/awt_Selection.c openjdk/jdk/src/solaris/native/sun/awt/awt_Selection.c ---- openjdk.orig/jdk/src/solaris/native/sun/awt/awt_Selection.c 2010-05-26 09:32:51.000000000 +0100 +--- openjdk.orig/jdk/src/solaris/native/sun/awt/awt_Selection.c 2011-11-14 22:12:15.000000000 +0000 +++ openjdk/jdk/src/solaris/native/sun/awt/awt_Selection.c 1970-01-01 01:00:00.000000000 +0100 @@ -1,508 +0,0 @@ -/* @@ -30662,7 +30233,7 @@ - return get_selection_data(env, selectionAtom, format, time_stamp); -} diff -Nru openjdk.orig/jdk/src/solaris/native/sun/awt/awt_TextArea.c openjdk/jdk/src/solaris/native/sun/awt/awt_TextArea.c ---- openjdk.orig/jdk/src/solaris/native/sun/awt/awt_TextArea.c 2010-05-26 09:32:51.000000000 +0100 +--- openjdk.orig/jdk/src/solaris/native/sun/awt/awt_TextArea.c 2011-11-14 22:12:15.000000000 +0000 +++ openjdk/jdk/src/solaris/native/sun/awt/awt_TextArea.c 1970-01-01 01:00:00.000000000 +0100 @@ -1,1003 +0,0 @@ -/* @@ -31669,7 +31240,7 @@ -} -*/ diff -Nru openjdk.orig/jdk/src/solaris/native/sun/awt/awt_TextArea.h openjdk/jdk/src/solaris/native/sun/awt/awt_TextArea.h ---- openjdk.orig/jdk/src/solaris/native/sun/awt/awt_TextArea.h 2010-05-26 09:32:51.000000000 +0100 +--- openjdk.orig/jdk/src/solaris/native/sun/awt/awt_TextArea.h 2011-11-14 22:12:15.000000000 +0000 +++ openjdk/jdk/src/solaris/native/sun/awt/awt_TextArea.h 1970-01-01 01:00:00.000000000 +0100 @@ -1,36 +0,0 @@ -/* @@ -31709,7 +31280,7 @@ - jfieldID firstChangeSkipped; -}; diff -Nru openjdk.orig/jdk/src/solaris/native/sun/awt/awt_TextField.c openjdk/jdk/src/solaris/native/sun/awt/awt_TextField.c ---- openjdk.orig/jdk/src/solaris/native/sun/awt/awt_TextField.c 2010-05-26 09:32:51.000000000 +0100 +--- openjdk.orig/jdk/src/solaris/native/sun/awt/awt_TextField.c 2011-11-14 22:12:15.000000000 +0000 +++ openjdk/jdk/src/solaris/native/sun/awt/awt_TextField.c 1970-01-01 01:00:00.000000000 +0100 @@ -1,989 +0,0 @@ -/* @@ -32702,7 +32273,7 @@ -} -*/ diff -Nru openjdk.orig/jdk/src/solaris/native/sun/awt/awt_TextField.h openjdk/jdk/src/solaris/native/sun/awt/awt_TextField.h ---- openjdk.orig/jdk/src/solaris/native/sun/awt/awt_TextField.h 2010-05-26 09:32:51.000000000 +0100 +--- openjdk.orig/jdk/src/solaris/native/sun/awt/awt_TextField.h 2011-11-14 22:12:15.000000000 +0000 +++ openjdk/jdk/src/solaris/native/sun/awt/awt_TextField.h 1970-01-01 01:00:00.000000000 +0100 @@ -1,36 +0,0 @@ -/* @@ -32742,7 +32313,7 @@ - jfieldID firstChangeSkipped; -}; diff -Nru openjdk.orig/jdk/src/solaris/native/sun/awt/awt_TopLevel.c openjdk/jdk/src/solaris/native/sun/awt/awt_TopLevel.c ---- openjdk.orig/jdk/src/solaris/native/sun/awt/awt_TopLevel.c 2010-05-26 09:32:51.000000000 +0100 +--- openjdk.orig/jdk/src/solaris/native/sun/awt/awt_TopLevel.c 2011-11-14 22:12:16.000000000 +0000 +++ openjdk/jdk/src/solaris/native/sun/awt/awt_TopLevel.c 1970-01-01 01:00:00.000000000 +0100 @@ -1,5095 +0,0 @@ -/* @@ -37841,7 +37412,7 @@ -{ -} diff -Nru openjdk.orig/jdk/src/solaris/native/sun/awt/awt_xembed.c openjdk/jdk/src/solaris/native/sun/awt/awt_xembed.c ---- openjdk.orig/jdk/src/solaris/native/sun/awt/awt_xembed.c 2010-05-26 09:32:51.000000000 +0100 +--- openjdk.orig/jdk/src/solaris/native/sun/awt/awt_xembed.c 2011-11-14 22:12:16.000000000 +0000 +++ openjdk/jdk/src/solaris/native/sun/awt/awt_xembed.c 1970-01-01 01:00:00.000000000 +0100 @@ -1,430 +0,0 @@ -/* @@ -38275,7 +37846,7 @@ - sendMessage(data->embedder, (direction == JNI_TRUE)?XEMBED_FOCUS_NEXT:XEMBED_FOCUS_PREV); -} diff -Nru openjdk.orig/jdk/src/solaris/native/sun/awt/awt_XmDnD.c openjdk/jdk/src/solaris/native/sun/awt/awt_XmDnD.c ---- openjdk.orig/jdk/src/solaris/native/sun/awt/awt_XmDnD.c 2010-05-26 09:32:51.000000000 +0100 +--- openjdk.orig/jdk/src/solaris/native/sun/awt/awt_XmDnD.c 2011-11-14 22:12:16.000000000 +0000 +++ openjdk/jdk/src/solaris/native/sun/awt/awt_XmDnD.c 1970-01-01 01:00:00.000000000 +0100 @@ -1,2282 +0,0 @@ -/* @@ -40561,7 +40132,7 @@ - awt_cleanupConvertDataContext(env, MOTIF_DROP_ATOM); -} diff -Nru openjdk.orig/jdk/src/solaris/native/sun/awt/awt_XmDnD.h openjdk/jdk/src/solaris/native/sun/awt/awt_XmDnD.h ---- openjdk.orig/jdk/src/solaris/native/sun/awt/awt_XmDnD.h 2010-05-26 09:32:51.000000000 +0100 +--- openjdk.orig/jdk/src/solaris/native/sun/awt/awt_XmDnD.h 2011-11-14 22:12:16.000000000 +0000 +++ openjdk/jdk/src/solaris/native/sun/awt/awt_XmDnD.h 1970-01-01 01:00:00.000000000 +0100 @@ -1,41 +0,0 @@ -/* @@ -40606,7 +40177,7 @@ - uint32_t dsCnt; -} DropSiteInfo; diff -Nru openjdk.orig/jdk/src/solaris/native/sun/awt/canvas.c openjdk/jdk/src/solaris/native/sun/awt/canvas.c ---- openjdk.orig/jdk/src/solaris/native/sun/awt/canvas.c 2010-05-26 09:32:51.000000000 +0100 +--- openjdk.orig/jdk/src/solaris/native/sun/awt/canvas.c 2011-11-14 22:12:16.000000000 +0000 +++ openjdk/jdk/src/solaris/native/sun/awt/canvas.c 1970-01-01 01:00:00.000000000 +0100 @@ -1,3227 +0,0 @@ -/* @@ -43837,7 +43408,7 @@ - (*env)->PopLocalFrame(env, 0); -} diff -Nru openjdk.orig/jdk/src/solaris/native/sun/awt/cursor.c openjdk/jdk/src/solaris/native/sun/awt/cursor.c ---- openjdk.orig/jdk/src/solaris/native/sun/awt/cursor.c 2010-05-26 09:32:51.000000000 +0100 +--- openjdk.orig/jdk/src/solaris/native/sun/awt/cursor.c 2011-11-14 22:12:16.000000000 +0000 +++ openjdk/jdk/src/solaris/native/sun/awt/cursor.c 1970-01-01 01:00:00.000000000 +0100 @@ -1,132 +0,0 @@ -/* @@ -43973,8 +43544,8 @@ - AWT_FLUSH_UNLOCK(); -} diff -Nru openjdk.orig/jdk/src/solaris/native/sun/awt/initIDs.c openjdk/jdk/src/solaris/native/sun/awt/initIDs.c ---- openjdk.orig/jdk/src/solaris/native/sun/awt/initIDs.c 2010-05-26 09:32:51.000000000 +0100 -+++ openjdk/jdk/src/solaris/native/sun/awt/initIDs.c 2010-05-26 13:11:21.000000000 +0100 +--- openjdk.orig/jdk/src/solaris/native/sun/awt/initIDs.c 2011-11-14 22:12:16.000000000 +0000 ++++ openjdk/jdk/src/solaris/native/sun/awt/initIDs.c 2012-08-31 12:03:21.954642128 +0100 @@ -26,7 +26,7 @@ #include "java_awt_Color.h" #include "java_awt_Dimension.h" @@ -43985,8 +43556,8 @@ #include "java_awt_event_MouseEvent.h" #include "java_awt_Rectangle.h" diff -Nru openjdk.orig/jdk/src/solaris/native/sun/awt/multi_font.c openjdk/jdk/src/solaris/native/sun/awt/multi_font.c ---- openjdk.orig/jdk/src/solaris/native/sun/awt/multi_font.c 2010-05-26 09:32:51.000000000 +0100 -+++ openjdk/jdk/src/solaris/native/sun/awt/multi_font.c 2010-05-26 13:11:21.000000000 +0100 +--- openjdk.orig/jdk/src/solaris/native/sun/awt/multi_font.c 2011-11-14 22:12:16.000000000 +0000 ++++ openjdk/jdk/src/solaris/native/sun/awt/multi_font.c 2012-08-31 12:03:21.954642128 +0100 @@ -52,8 +52,8 @@ extern XFontStruct *loadFont(Display *, char *, int32_t); diff -r f5a3984175d3 -r e067051f7a6e patches/openjdk/6633275-shaped_translucent_windows.patch --- a/patches/openjdk/6633275-shaped_translucent_windows.patch Wed Jun 13 02:38:51 2012 +0100 +++ b/patches/openjdk/6633275-shaped_translucent_windows.patch Fri Aug 31 16:59:45 2012 +0100 @@ -1,6 +1,6 @@ diff -Nru openjdk.orig/jdk/make/sun/awt/FILES_c_windows.gmk openjdk/jdk/make/sun/awt/FILES_c_windows.gmk ---- openjdk.orig/jdk/make/sun/awt/FILES_c_windows.gmk 2011-02-16 00:40:21.000000000 +0000 -+++ openjdk/jdk/make/sun/awt/FILES_c_windows.gmk 2011-02-16 01:27:24.988327481 +0000 +--- openjdk.orig/jdk/make/sun/awt/FILES_c_windows.gmk 2012-08-31 15:38:09.796380858 +0100 ++++ openjdk/jdk/make/sun/awt/FILES_c_windows.gmk 2012-08-31 15:38:50.733238691 +0100 @@ -1,5 +1,5 @@ # -# Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved. @@ -19,8 +19,8 @@ FILES_cpp = \ CmdIDList.cpp \ diff -Nru openjdk.orig/jdk/make/sun/awt/make.depend openjdk/jdk/make/sun/awt/make.depend ---- openjdk.orig/jdk/make/sun/awt/make.depend 2011-02-16 00:40:21.000000000 +0000 -+++ openjdk/jdk/make/sun/awt/make.depend 2011-02-16 01:27:25.000326551 +0000 +--- openjdk.orig/jdk/make/sun/awt/make.depend 2012-08-31 15:38:09.804381026 +0100 ++++ openjdk/jdk/make/sun/awt/make.depend 2012-08-31 15:38:50.749239026 +0100 @@ -16,7 +16,7 @@ $(OBJDIR)/awt_AWTEvent.obj:: $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_AWTEvent.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h @@ -107,8 +107,8 @@ $(OBJDIR)/UnicowsLoader.obj:: ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h diff -Nru openjdk.orig/jdk/make/sun/awt/Makefile openjdk/jdk/make/sun/awt/Makefile ---- openjdk.orig/jdk/make/sun/awt/Makefile 2011-02-16 00:40:21.000000000 +0000 -+++ openjdk/jdk/make/sun/awt/Makefile 2011-02-16 01:27:24.996326861 +0000 +--- openjdk.orig/jdk/make/sun/awt/Makefile 2012-08-31 15:38:09.796380858 +0100 ++++ openjdk/jdk/make/sun/awt/Makefile 2012-08-31 15:38:50.749239026 +0100 @@ -1,5 +1,5 @@ # -# Copyright (c) 1995, 2008, Oracle and/or its affiliates. All rights reserved. @@ -125,8 +125,8 @@ vpath %.c $(SHARE_SRC)/native/$(PKGDIR)/../java2d/loops vpath %.c $(SHARE_SRC)/native/$(PKGDIR)/../java2d/pipe 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 2011-02-16 00:40:21.000000000 +0000 -+++ openjdk/jdk/make/sun/awt/mapfile-mawt-vers 2011-02-16 01:27:25.000326551 +0000 +--- openjdk.orig/jdk/make/sun/awt/mapfile-mawt-vers 2012-08-31 15:38:09.808381110 +0100 ++++ openjdk/jdk/make/sun/awt/mapfile-mawt-vers 2012-08-31 15:38:50.749239026 +0100 @@ -291,6 +291,7 @@ Java_sun_awt_X11GraphicsConfig_createBackBuffer; Java_sun_awt_X11GraphicsConfig_destroyBackBuffer; @@ -136,8 +136,8 @@ Java_sun_awt_X11GraphicsDevice_getDisplay; Java_sun_awt_X11GraphicsDevice_getDoubleBufferVisuals; 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 2011-02-16 00:40:21.000000000 +0000 -+++ openjdk/jdk/make/sun/awt/mapfile-vers-linux 2011-02-16 01:27:25.000326551 +0000 +--- openjdk.orig/jdk/make/sun/awt/mapfile-vers-linux 2012-08-31 15:38:09.808381110 +0100 ++++ openjdk/jdk/make/sun/awt/mapfile-vers-linux 2012-08-31 15:38:50.749239026 +0100 @@ -406,6 +406,7 @@ Java_sun_awt_X11GraphicsConfig_getNumColors; Java_sun_awt_X11GraphicsConfig_getXResolution; @@ -147,8 +147,8 @@ Java_sun_awt_X11GraphicsDevice_getDisplay; Java_sun_awt_X11GraphicsDevice_getDoubleBufferVisuals; 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 2011-02-16 00:40:21.000000000 +0000 -+++ openjdk/jdk/make/sun/xawt/mapfile-vers 2011-02-16 01:27:25.000326551 +0000 +--- openjdk.orig/jdk/make/sun/xawt/mapfile-vers 2012-08-31 15:38:09.808381110 +0100 ++++ openjdk/jdk/make/sun/xawt/mapfile-vers 2012-08-31 15:38:50.749239026 +0100 @@ -216,6 +216,7 @@ Java_sun_awt_X11GraphicsConfig_createBackBuffer; Java_sun_awt_X11GraphicsConfig_destroyBackBuffer; @@ -158,8 +158,8 @@ Java_java_awt_KeyboardFocusManager_initIDs; Java_java_awt_Font_initIDs; diff -Nru openjdk.orig/jdk/src/share/classes/com/sun/awt/AWTUtilities.java openjdk/jdk/src/share/classes/com/sun/awt/AWTUtilities.java ---- openjdk.orig/jdk/src/share/classes/com/sun/awt/AWTUtilities.java 2011-02-16 00:40:21.000000000 +0000 -+++ openjdk/jdk/src/share/classes/com/sun/awt/AWTUtilities.java 2011-02-16 01:27:25.000326551 +0000 +--- openjdk.orig/jdk/src/share/classes/com/sun/awt/AWTUtilities.java 2012-08-31 15:38:02.916236574 +0100 ++++ openjdk/jdk/src/share/classes/com/sun/awt/AWTUtilities.java 2012-08-31 15:38:50.749239026 +0100 @@ -26,17 +26,37 @@ package com.sun.awt; @@ -545,8 +545,8 @@ * Sets a 'mixing-cutout' shape for the given component. * diff -Nru openjdk.orig/jdk/src/share/classes/java/awt/Component.java openjdk/jdk/src/share/classes/java/awt/Component.java ---- openjdk.orig/jdk/src/share/classes/java/awt/Component.java 2011-02-16 00:40:21.000000000 +0000 -+++ openjdk/jdk/src/share/classes/java/awt/Component.java 2011-02-16 02:00:18.147235768 +0000 +--- openjdk.orig/jdk/src/share/classes/java/awt/Component.java 2012-08-31 15:38:09.812381194 +0100 ++++ openjdk/jdk/src/share/classes/java/awt/Component.java 2012-08-31 15:46:44.263082657 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1995, 2007, Oracle and/or its affiliates. All rights reserved. @@ -554,31 +554,30 @@ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it -@@ -806,18 +806,27 @@ +@@ -806,6 +806,13 @@ } } -- static { -- AWTAccessor.setComponentAccessor(new AWTAccessor.ComponentAccessor() { -- public AccessControlContext getAccessControlContext(Component comp) { -- return comp.getAccessControlContext(); -- } -- -- }); -- } -- + // Whether this Component has had the background erase flag + // specified via SunToolkit.disableBackgroundErase(). This is + // needed in order to make this function work on X11 platforms, + // where currently there is no chance to interpose on the creation + // of the peer and therefore the call to XSetBackground. + transient boolean backgroundEraseDisabled; - ++ static { AWTAccessor.setComponentAccessor(new AWTAccessor.ComponentAccessor() { -+ public AccessControlContext getAccessControlContext(Component comp) { -+ return comp.getAccessControlContext(); -+ } + public void setX(Component comp, int x) { +@@ -931,12 +938,15 @@ + public AppContext getAppContext(Component comp) { + return comp.appContext; + } +- }); +- } +- +- +- static { +- AWTAccessor.setComponentAccessor(new AWTAccessor.ComponentAccessor() { + public void setBackgroundEraseDisabled(Component comp, boolean disabled) { + comp.backgroundEraseDisabled = disabled; + } @@ -591,7 +590,7 @@ public void setMixingCutoutShape(Component comp, Shape shape) { Region region = shape == null ? null : Region.getInstance(shape, null); -@@ -7454,7 +7463,7 @@ +@@ -7573,7 +7583,7 @@ // sometimes most recent focus owner may be null, but focus owner is not // e.g. we reset most recent focus owner if user removes focus owner focusOwner = KeyboardFocusManager.getCurrentKeyboardFocusManager().getFocusOwner(); @@ -600,13 +599,12 @@ focusOwner = null; } } -@@ -8685,30 +8694,8 @@ +@@ -8808,31 +8818,9 @@ * null, if component is not a part of window hierarchy */ Window getContainingWindow() { - return getContainingWindow(this); -+ return SunToolkit.getContainingWindow(this); - } +- } - /** - * Returns the Window ancestor of the component comp. - * @return Window ancestor of the component or component by itself if it is Window; @@ -618,7 +616,9 @@ - } - - return (Window)comp; -- } ++ return SunToolkit.getContainingWindow(this); + } + - - - @@ -629,10 +629,10 @@ - - - - /** * Initialize JNI field and method IDs -@@ -9823,4 +9810,29 @@ + */ +@@ -9946,4 +9934,29 @@ } // ****************** END OF MIXING CODE ******************************** @@ -663,8 +663,8 @@ + } } diff -Nru openjdk.orig/jdk/src/share/classes/java/awt/Container.java openjdk/jdk/src/share/classes/java/awt/Container.java ---- openjdk.orig/jdk/src/share/classes/java/awt/Container.java 2011-02-16 00:40:21.000000000 +0000 -+++ openjdk/jdk/src/share/classes/java/awt/Container.java 2011-02-16 01:27:25.004326241 +0000 +--- openjdk.orig/jdk/src/share/classes/java/awt/Container.java 2012-08-31 15:38:02.924236743 +0100 ++++ openjdk/jdk/src/share/classes/java/awt/Container.java 2012-08-31 15:38:50.753239109 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1995, 2008, Oracle and/or its affiliates. All rights reserved. @@ -683,9 +683,9 @@ * JDK 1.1 serialVersionUID */ diff -Nru openjdk.orig/jdk/src/share/classes/java/awt/DefaultKeyboardFocusManager.java openjdk/jdk/src/share/classes/java/awt/DefaultKeyboardFocusManager.java ---- openjdk.orig/jdk/src/share/classes/java/awt/DefaultKeyboardFocusManager.java 2011-02-16 00:40:21.000000000 +0000 -+++ openjdk/jdk/src/share/classes/java/awt/DefaultKeyboardFocusManager.java 2011-02-16 01:27:25.004326241 +0000 -@@ -480,7 +480,7 @@ +--- openjdk.orig/jdk/src/share/classes/java/awt/DefaultKeyboardFocusManager.java 2012-08-31 15:38:02.688231792 +0100 ++++ openjdk/jdk/src/share/classes/java/awt/DefaultKeyboardFocusManager.java 2012-08-31 15:38:50.753239109 +0100 +@@ -490,7 +490,7 @@ // that a Component outside of the focused Window receives a // FOCUS_GAINED event. We synthesize a WINDOW_GAINED_FOCUS // event in that case. @@ -695,8 +695,8 @@ if (newFocusedWindow != null && newFocusedWindow != currentFocusedWindow) diff -Nru openjdk.orig/jdk/src/share/classes/java/awt/GraphicsConfiguration.java openjdk/jdk/src/share/classes/java/awt/GraphicsConfiguration.java ---- openjdk.orig/jdk/src/share/classes/java/awt/GraphicsConfiguration.java 2011-01-20 23:54:13.000000000 +0000 -+++ openjdk/jdk/src/share/classes/java/awt/GraphicsConfiguration.java 2011-02-16 01:27:25.004326241 +0000 +--- openjdk.orig/jdk/src/share/classes/java/awt/GraphicsConfiguration.java 2011-02-28 16:06:20.000000000 +0000 ++++ openjdk/jdk/src/share/classes/java/awt/GraphicsConfiguration.java 2012-08-31 15:38:50.753239109 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved. @@ -726,8 +726,8 @@ } +} diff -Nru openjdk.orig/jdk/src/share/classes/java/awt/GraphicsDevice.java openjdk/jdk/src/share/classes/java/awt/GraphicsDevice.java ---- openjdk.orig/jdk/src/share/classes/java/awt/GraphicsDevice.java 2011-02-16 00:40:21.000000000 +0000 -+++ openjdk/jdk/src/share/classes/java/awt/GraphicsDevice.java 2011-02-16 01:27:25.004326241 +0000 +--- openjdk.orig/jdk/src/share/classes/java/awt/GraphicsDevice.java 2012-08-31 15:38:09.816381278 +0100 ++++ openjdk/jdk/src/share/classes/java/awt/GraphicsDevice.java 2012-08-31 15:38:50.753239109 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved. @@ -896,9 +896,9 @@ + } } diff -Nru openjdk.orig/jdk/src/share/classes/java/awt/KeyboardFocusManager.java openjdk/jdk/src/share/classes/java/awt/KeyboardFocusManager.java ---- openjdk.orig/jdk/src/share/classes/java/awt/KeyboardFocusManager.java 2011-02-16 00:40:21.000000000 +0000 -+++ openjdk/jdk/src/share/classes/java/awt/KeyboardFocusManager.java 2011-02-16 01:27:25.004326241 +0000 -@@ -2210,7 +2210,7 @@ +--- openjdk.orig/jdk/src/share/classes/java/awt/KeyboardFocusManager.java 2012-08-31 15:38:02.656231121 +0100 ++++ openjdk/jdk/src/share/classes/java/awt/KeyboardFocusManager.java 2012-08-31 15:38:50.753239109 +0100 +@@ -2224,7 +2224,7 @@ boolean temporary, boolean focusedWindowChangeAllowed, long time) { @@ -907,7 +907,7 @@ if (parentWindow == null || !parentWindow.syncLWRequests) { return false; } -@@ -2544,7 +2544,7 @@ +@@ -2558,7 +2558,7 @@ (HeavyweightFocusRequest.CLEAR_GLOBAL_FOCUS_OWNER); Component activeWindow = ((hwFocusRequest != null) @@ -916,7 +916,7 @@ : nativeFocusedWindow); while (activeWindow != null && !((activeWindow instanceof Frame) || -@@ -3015,8 +3015,8 @@ +@@ -3029,8 +3029,8 @@ } private static boolean focusedWindowChanged(Component to, Component from) { @@ -927,7 +927,7 @@ if (wto == null && wfrom == null) { return true; } -@@ -3030,8 +3030,8 @@ +@@ -3044,8 +3044,8 @@ } private static boolean isTemporary(Component to, Component from) { @@ -939,8 +939,8 @@ return false; } diff -Nru openjdk.orig/jdk/src/share/classes/java/awt/peer/WindowPeer.java openjdk/jdk/src/share/classes/java/awt/peer/WindowPeer.java ---- openjdk.orig/jdk/src/share/classes/java/awt/peer/WindowPeer.java 2011-01-20 23:54:15.000000000 +0000 -+++ openjdk/jdk/src/share/classes/java/awt/peer/WindowPeer.java 2011-02-16 01:27:25.004326241 +0000 +--- openjdk.orig/jdk/src/share/classes/java/awt/peer/WindowPeer.java 2011-02-28 16:06:21.000000000 +0000 ++++ openjdk/jdk/src/share/classes/java/awt/peer/WindowPeer.java 2012-08-31 15:38:50.753239109 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1995, 2007, Oracle and/or its affiliates. All rights reserved. @@ -985,8 +985,8 @@ + void updateWindow(BufferedImage backBuffer); } diff -Nru openjdk.orig/jdk/src/share/classes/java/awt/Window.java openjdk/jdk/src/share/classes/java/awt/Window.java ---- openjdk.orig/jdk/src/share/classes/java/awt/Window.java 2011-01-20 23:54:14.000000000 +0000 -+++ openjdk/jdk/src/share/classes/java/awt/Window.java 2011-02-16 01:27:25.004326241 +0000 +--- openjdk.orig/jdk/src/share/classes/java/awt/Window.java 2012-08-31 15:38:02.692231877 +0100 ++++ openjdk/jdk/src/share/classes/java/awt/Window.java 2012-08-31 15:44:01.691718943 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1995, 2007, Oracle and/or its affiliates. All rights reserved. @@ -1002,15 +1002,7 @@ import java.awt.peer.ComponentPeer; import java.awt.peer.WindowPeer; import java.beans.PropertyChangeListener; -@@ -50,6 +51,7 @@ - import java.util.logging.Logger; - import java.util.concurrent.atomic.AtomicBoolean; - import javax.accessibility.*; -+import sun.awt.AWTAccessor; - import sun.awt.AppContext; - import sun.awt.CausedFocusEvent; - import sun.awt.SunToolkit; -@@ -291,6 +293,25 @@ +@@ -292,6 +293,25 @@ */ transient boolean isInShow = false; @@ -1036,7 +1028,7 @@ private static final String base = "win"; private static int nameCounter = 0; -@@ -661,9 +682,9 @@ +@@ -662,9 +682,9 @@ } if (peer == null) { peer = getToolkit().createWindow(this); @@ -1049,7 +1041,7 @@ } super.addNotify(); } -@@ -2765,6 +2786,8 @@ +@@ -2766,6 +2786,8 @@ if(aot) { setAlwaysOnTop(aot); // since 1.5; subject to permission check } @@ -1058,7 +1050,7 @@ deserializeResources(s); } -@@ -3184,6 +3207,225 @@ +@@ -3183,6 +3205,225 @@ } @@ -1284,12 +1276,10 @@ // ************************** MIXING CODE ******************************* // A window has a parent, but it does NOT have a container -@@ -3221,6 +3463,42 @@ - - // ****************** END OF MIXING CODE ******************************** - -+ static { -+ AWTAccessor.setWindowAccessor(new AWTAccessor.WindowAccessor() { +@@ -3222,6 +3463,37 @@ + + static { + AWTAccessor.setWindowAccessor(new AWTAccessor.WindowAccessor() { + public float getOpacity(Window window) { + return window.opacity; + } @@ -1321,15 +1311,12 @@ + public void updateWindow(Window window, BufferedImage backBuffer) { + window.updateWindow(backBuffer); + } -+ }); // WindowAccessor -+ } // static -+ - } // class Window - - + public void setLWRequestStatus(Window changed, boolean status) { + changed.syncLWRequests = status; + } diff -Nru openjdk.orig/jdk/src/share/classes/javax/swing/RepaintManager.java openjdk/jdk/src/share/classes/javax/swing/RepaintManager.java ---- openjdk.orig/jdk/src/share/classes/javax/swing/RepaintManager.java 2011-01-20 23:54:21.000000000 +0000 -+++ openjdk/jdk/src/share/classes/javax/swing/RepaintManager.java 2011-02-16 01:27:25.008325931 +0000 +--- openjdk.orig/jdk/src/share/classes/javax/swing/RepaintManager.java 2011-02-28 16:06:28.000000000 +0000 ++++ openjdk/jdk/src/share/classes/javax/swing/RepaintManager.java 2012-08-31 15:38:50.753239109 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved. @@ -1402,9 +1389,17 @@ for (Component dirty : tmpDirtyComponents.keySet()) { diff -Nru openjdk.orig/jdk/src/share/classes/sun/awt/AWTAccessor.java openjdk/jdk/src/share/classes/sun/awt/AWTAccessor.java ---- openjdk.orig/jdk/src/share/classes/sun/awt/AWTAccessor.java 2011-02-16 00:40:21.000000000 +0000 -+++ openjdk/jdk/src/share/classes/sun/awt/AWTAccessor.java 2011-02-16 01:43:59.459209438 +0000 -@@ -59,10 +59,29 @@ +--- openjdk.orig/jdk/src/share/classes/sun/awt/AWTAccessor.java 2012-08-31 15:38:02.928236826 +0100 ++++ openjdk/jdk/src/share/classes/sun/awt/AWTAccessor.java 2012-08-31 15:44:57.488875244 +0100 +@@ -29,6 +29,7 @@ + import java.awt.event.InputEvent; + import java.awt.event.KeyEvent; + import java.awt.geom.Point2D; ++import java.awt.image.BufferedImage; + + import sun.misc.Unsafe; + import java.awt.peer.ComponentPeer; +@@ -62,10 +63,29 @@ * An interface of accessor for the java.awt.Component class. */ public interface ComponentAccessor { @@ -1436,14 +1431,11 @@ + * See 6797587, 6776743, 6768307, and 6768332 for details */ void setMixingCutoutShape(Component comp, Shape shape); - /* -@@ -72,6 +91,41 @@ - } - - /* -+ * An interface of accessor for java.awt.Window class. -+ */ -+ public interface WindowAccessor { + /** +@@ -229,6 +249,36 @@ + * An interface of accessor for java.awt.Window class. + */ + public interface WindowAccessor { + /* + * Get opacity level of the given window. + */ @@ -1473,53 +1465,28 @@ + * Update the image of a non-opaque (translucent) window. + */ + void updateWindow(Window window, BufferedImage backBuffer); -+ } -+ -+ /* - * An accessor for the AWTEvent class. ++ + /** Sets the synchronous status of focus requests on lightweight + * components in the specified window to the specified value. + */ +@@ -533,8 +583,14 @@ */ - public interface AWTEventAccessor { -@@ -101,6 +155,14 @@ - /* The java.awt.Component class accessor object. - */ - private static ComponentAccessor componentAccessor; + private static KeyboardFocusManagerAccessor kfmAccessor; + + /* + * The java.awt.Window class accessor object. + */ -+ private static WindowAccessor windowAccessor; -+ + private static WindowAccessor windowAccessor; + + /* + * The java.awt.AWTEvent class accessor object. + */ private static AWTEventAccessor awtEventAccessor; - /* -@@ -137,4 +199,22 @@ - } - return awtEventAccessor; - } -+ -+ /* -+ * Set an accessor object for the java.awt.Window class. -+ */ -+ public static void setWindowAccessor(WindowAccessor wa) { -+ windowAccessor = wa; -+ } -+ -+ /* -+ * Retrieve the accessor object for the java.awt.Window class. -+ */ -+ public static WindowAccessor getWindowAccessor() { -+ if (windowAccessor == null) { -+ unsafe.ensureClassInitialized(Window.class); -+ } -+ return windowAccessor; -+ } -+ - } + private static MenuComponentAccessor menuComponentAccessor; diff -Nru openjdk.orig/jdk/src/share/classes/sun/awt/EmbeddedFrame.java openjdk/jdk/src/share/classes/sun/awt/EmbeddedFrame.java ---- openjdk.orig/jdk/src/share/classes/sun/awt/EmbeddedFrame.java 2011-01-20 23:54:24.000000000 +0000 -+++ openjdk/jdk/src/share/classes/sun/awt/EmbeddedFrame.java 2011-02-16 01:27:25.008325931 +0000 +--- openjdk.orig/jdk/src/share/classes/sun/awt/EmbeddedFrame.java 2012-08-31 15:38:02.500227849 +0100 ++++ openjdk/jdk/src/share/classes/sun/awt/EmbeddedFrame.java 2012-08-31 15:38:50.753239109 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1996, 2006, Oracle and/or its affiliates. All rights reserved. @@ -1527,7 +1494,7 @@ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it -@@ -579,5 +579,12 @@ +@@ -516,5 +516,12 @@ } public void updateMinimumSize() { } @@ -1542,8 +1509,8 @@ + } } // class EmbeddedFrame diff -Nru openjdk.orig/jdk/src/share/classes/sun/awt/SunToolkit.java openjdk/jdk/src/share/classes/sun/awt/SunToolkit.java ---- openjdk.orig/jdk/src/share/classes/sun/awt/SunToolkit.java 2011-02-16 00:40:21.000000000 +0000 -+++ openjdk/jdk/src/share/classes/sun/awt/SunToolkit.java 2011-02-16 01:27:25.008325931 +0000 +--- openjdk.orig/jdk/src/share/classes/sun/awt/SunToolkit.java 2012-08-31 15:38:02.928236826 +0100 ++++ openjdk/jdk/src/share/classes/sun/awt/SunToolkit.java 2012-08-31 15:40:06.614825827 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved. @@ -1551,7 +1518,7 @@ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it -@@ -32,14 +32,10 @@ +@@ -32,15 +32,11 @@ import java.awt.peer.*; import java.awt.event.WindowEvent; import java.awt.event.KeyEvent; @@ -1560,13 +1527,14 @@ -import java.awt.geom.AffineTransform; import java.awt.TrayIcon; import java.awt.SystemTray; + import java.lang.reflect.Constructor; -import java.io.*; import java.net.URL; -import java.net.JarURLConnection; import java.util.*; import java.util.concurrent.TimeUnit; import java.util.concurrent.locks.Condition; -@@ -49,7 +45,6 @@ +@@ -50,7 +46,6 @@ import sun.misc.SoftCache; import sun.font.FontDesignMetrics; import sun.awt.im.InputContext; @@ -1574,7 +1542,7 @@ import sun.awt.image.*; import sun.security.action.GetPropertyAction; import sun.security.action.GetBooleanAction; -@@ -825,16 +820,31 @@ +@@ -706,16 +701,31 @@ } /** @@ -1614,7 +1582,7 @@ } /** -@@ -1973,6 +1983,18 @@ +@@ -1811,6 +1821,18 @@ AWTAutoShutdown.getInstance().dumpPeers(aLog); } @@ -1633,7 +1601,7 @@ private static Boolean sunAwtDisableMixing = null; /** -@@ -1996,6 +2018,73 @@ +@@ -1834,6 +1856,73 @@ public boolean isNativeGTKAvailable() { return false; } @@ -1709,7 +1677,7 @@ diff -Nru openjdk.orig/jdk/src/share/native/sun/awt/utility/rect.c openjdk/jdk/src/share/native/sun/awt/utility/rect.c --- openjdk.orig/jdk/src/share/native/sun/awt/utility/rect.c 1970-01-01 01:00:00.000000000 +0100 -+++ openjdk/jdk/src/share/native/sun/awt/utility/rect.c 2011-02-16 01:27:25.008325931 +0000 ++++ openjdk/jdk/src/share/native/sun/awt/utility/rect.c 2012-08-31 15:38:50.769239444 +0100 @@ -0,0 +1,102 @@ +/* + * Copyright (c) 2008, 2009, Oracle and/or its affiliates. All rights reserved. @@ -1814,8 +1782,8 @@ +} +#endif diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/generator/WrapperGenerator.java openjdk/jdk/src/solaris/classes/sun/awt/X11/generator/WrapperGenerator.java ---- openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/generator/WrapperGenerator.java 2011-01-20 23:54:40.000000000 +0000 -+++ openjdk/jdk/src/solaris/classes/sun/awt/X11/generator/WrapperGenerator.java 2011-02-16 01:27:25.008325931 +0000 +--- openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/generator/WrapperGenerator.java 2011-02-28 16:06:48.000000000 +0000 ++++ openjdk/jdk/src/solaris/classes/sun/awt/X11/generator/WrapperGenerator.java 2012-08-31 15:38:50.769239444 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved. @@ -1841,8 +1809,8 @@ pw.println("\t\tlog.finest(\"Creating\");"); } diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/generator/xlibtypes.txt openjdk/jdk/src/solaris/classes/sun/awt/X11/generator/xlibtypes.txt ---- openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/generator/xlibtypes.txt 2011-01-20 23:54:40.000000000 +0000 -+++ openjdk/jdk/src/solaris/classes/sun/awt/X11/generator/xlibtypes.txt 2011-02-16 01:27:25.008325931 +0000 +--- openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/generator/xlibtypes.txt 2011-02-28 16:06:48.000000000 +0000 ++++ openjdk/jdk/src/solaris/classes/sun/awt/X11/generator/xlibtypes.txt 2012-08-31 15:38:50.769239444 +0100 @@ -750,6 +750,7 @@ pixelStride int color_data pointer ColorData @@ -1852,8 +1820,8 @@ AwtScreenData numConfigs int diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XNETProtocol.java openjdk/jdk/src/solaris/classes/sun/awt/X11/XNETProtocol.java ---- openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XNETProtocol.java 2011-01-20 23:54:40.000000000 +0000 -+++ openjdk/jdk/src/solaris/classes/sun/awt/X11/XNETProtocol.java 2011-02-16 01:27:25.008325931 +0000 +--- openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XNETProtocol.java 2011-02-28 16:06:48.000000000 +0000 ++++ openjdk/jdk/src/solaris/classes/sun/awt/X11/XNETProtocol.java 2012-08-31 15:38:50.769239444 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved. @@ -1884,9 +1852,9 @@ if (!active()) { return false; diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XToolkit.java openjdk/jdk/src/solaris/classes/sun/awt/X11/XToolkit.java ---- openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XToolkit.java 2011-01-20 23:54:40.000000000 +0000 -+++ openjdk/jdk/src/solaris/classes/sun/awt/X11/XToolkit.java 2011-02-16 01:27:25.008325931 +0000 -@@ -2181,4 +2181,35 @@ +--- openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XToolkit.java 2012-08-31 15:38:02.516228184 +0100 ++++ openjdk/jdk/src/solaris/classes/sun/awt/X11/XToolkit.java 2012-08-31 15:38:50.773239528 +0100 +@@ -2166,4 +2166,35 @@ return new XDesktopPeer(); } @@ -1923,8 +1891,8 @@ + } } diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XWindowPeer.java openjdk/jdk/src/solaris/classes/sun/awt/X11/XWindowPeer.java ---- openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XWindowPeer.java 2011-01-20 23:54:40.000000000 +0000 -+++ openjdk/jdk/src/solaris/classes/sun/awt/X11/XWindowPeer.java 2011-02-16 01:27:25.008325931 +0000 +--- openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XWindowPeer.java 2011-02-28 16:06:48.000000000 +0000 ++++ openjdk/jdk/src/solaris/classes/sun/awt/X11/XWindowPeer.java 2012-08-31 15:38:50.773239528 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2007, Oracle and/or its affiliates. All rights reserved. @@ -2038,8 +2006,8 @@ + } } diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/awt/X11GraphicsConfig.java openjdk/jdk/src/solaris/classes/sun/awt/X11GraphicsConfig.java ---- openjdk.orig/jdk/src/solaris/classes/sun/awt/X11GraphicsConfig.java 2011-02-16 00:40:21.000000000 +0000 -+++ openjdk/jdk/src/solaris/classes/sun/awt/X11GraphicsConfig.java 2011-02-16 01:27:25.008325931 +0000 +--- openjdk.orig/jdk/src/solaris/classes/sun/awt/X11GraphicsConfig.java 2012-08-31 15:38:09.852382034 +0100 ++++ openjdk/jdk/src/solaris/classes/sun/awt/X11GraphicsConfig.java 2012-08-31 15:38:50.773239528 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved. @@ -2062,8 +2030,8 @@ + private native boolean isTranslucencyCapable(long x11ConfigData); } diff -Nru openjdk.orig/jdk/src/solaris/native/sun/awt/awt_GraphicsEnv.c openjdk/jdk/src/solaris/native/sun/awt/awt_GraphicsEnv.c ---- openjdk.orig/jdk/src/solaris/native/sun/awt/awt_GraphicsEnv.c 2011-01-20 23:54:42.000000000 +0000 -+++ openjdk/jdk/src/solaris/native/sun/awt/awt_GraphicsEnv.c 2011-02-16 01:27:25.008325931 +0000 +--- openjdk.orig/jdk/src/solaris/native/sun/awt/awt_GraphicsEnv.c 2011-02-28 16:06:49.000000000 +0000 ++++ openjdk/jdk/src/solaris/native/sun/awt/awt_GraphicsEnv.c 2012-08-31 15:38:50.773239528 +0100 @@ -323,6 +323,48 @@ return NULL; } @@ -2200,8 +2168,8 @@ * Method: isDBESupported * Signature: ()Z diff -Nru openjdk.orig/jdk/src/solaris/native/sun/awt/awt_p.h openjdk/jdk/src/solaris/native/sun/awt/awt_p.h ---- openjdk.orig/jdk/src/solaris/native/sun/awt/awt_p.h 2011-01-20 23:54:42.000000000 +0000 -+++ openjdk/jdk/src/solaris/native/sun/awt/awt_p.h 2011-02-16 01:27:25.008325931 +0000 +--- openjdk.orig/jdk/src/solaris/native/sun/awt/awt_p.h 2011-02-28 16:06:50.000000000 +0000 ++++ openjdk/jdk/src/solaris/native/sun/awt/awt_p.h 2012-08-31 15:38:50.773239528 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1995, 2005, Oracle and/or its affiliates. All rights reserved. @@ -2218,8 +2186,8 @@ typedef AwtGraphicsConfigData* AwtGraphicsConfigDataPtr; diff -Nru openjdk.orig/jdk/src/windows/classes/sun/awt/Win32GraphicsConfig.java openjdk/jdk/src/windows/classes/sun/awt/Win32GraphicsConfig.java ---- openjdk.orig/jdk/src/windows/classes/sun/awt/Win32GraphicsConfig.java 2011-02-16 00:40:21.000000000 +0000 -+++ openjdk/jdk/src/windows/classes/sun/awt/Win32GraphicsConfig.java 2011-02-16 01:27:25.008325931 +0000 +--- openjdk.orig/jdk/src/windows/classes/sun/awt/Win32GraphicsConfig.java 2012-08-31 15:38:09.856382117 +0100 ++++ openjdk/jdk/src/windows/classes/sun/awt/Win32GraphicsConfig.java 2012-08-31 15:38:50.773239528 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved. @@ -2241,8 +2209,8 @@ + } } diff -Nru openjdk.orig/jdk/src/windows/classes/sun/awt/Win32GraphicsEnvironment.java openjdk/jdk/src/windows/classes/sun/awt/Win32GraphicsEnvironment.java ---- openjdk.orig/jdk/src/windows/classes/sun/awt/Win32GraphicsEnvironment.java 2011-02-16 00:40:21.000000000 +0000 -+++ openjdk/jdk/src/windows/classes/sun/awt/Win32GraphicsEnvironment.java 2011-02-16 01:27:25.012325621 +0000 +--- openjdk.orig/jdk/src/windows/classes/sun/awt/Win32GraphicsEnvironment.java 2012-08-31 15:38:09.856382117 +0100 ++++ openjdk/jdk/src/windows/classes/sun/awt/Win32GraphicsEnvironment.java 2012-08-31 15:38:50.773239528 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved. @@ -2264,7 +2232,7 @@ } diff -Nru openjdk.orig/jdk/src/windows/classes/sun/awt/windows/TranslucentWindowPainter.java openjdk/jdk/src/windows/classes/sun/awt/windows/TranslucentWindowPainter.java --- openjdk.orig/jdk/src/windows/classes/sun/awt/windows/TranslucentWindowPainter.java 1970-01-01 01:00:00.000000000 +0100 -+++ openjdk/jdk/src/windows/classes/sun/awt/windows/TranslucentWindowPainter.java 2011-02-16 01:27:25.012325621 +0000 ++++ openjdk/jdk/src/windows/classes/sun/awt/windows/TranslucentWindowPainter.java 2012-08-31 15:38:50.773239528 +0100 @@ -0,0 +1,398 @@ +/* + * Copyright (c) 2008, 2009, Oracle and/or its affiliates. All rights reserved. @@ -2665,8 +2633,8 @@ + } +} diff -Nru openjdk.orig/jdk/src/windows/classes/sun/awt/windows/WCanvasPeer.java openjdk/jdk/src/windows/classes/sun/awt/windows/WCanvasPeer.java ---- openjdk.orig/jdk/src/windows/classes/sun/awt/windows/WCanvasPeer.java 2011-01-20 23:54:43.000000000 +0000 -+++ openjdk/jdk/src/windows/classes/sun/awt/windows/WCanvasPeer.java 2011-02-16 01:27:25.012325621 +0000 +--- openjdk.orig/jdk/src/windows/classes/sun/awt/windows/WCanvasPeer.java 2012-08-31 15:38:02.516228184 +0100 ++++ openjdk/jdk/src/windows/classes/sun/awt/windows/WCanvasPeer.java 2012-08-31 15:39:33.278129029 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1996, 2007, Oracle and/or its affiliates. All rights reserved. @@ -2674,15 +2642,15 @@ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it -@@ -28,6 +28,7 @@ +@@ -27,6 +27,7 @@ + import java.awt.*; import java.awt.peer.*; import java.lang.ref.WeakReference; - import java.lang.reflect.Method; +import sun.awt.AWTAccessor; import sun.awt.ComponentAccessor; import sun.awt.SunToolkit; import sun.awt.Win32GraphicsDevice; -@@ -110,16 +111,20 @@ +@@ -109,16 +110,20 @@ } public void print(Graphics g) { @@ -2714,8 +2682,8 @@ super.print(g); } diff -Nru openjdk.orig/jdk/src/windows/classes/sun/awt/windows/WComponentPeer.java openjdk/jdk/src/windows/classes/sun/awt/windows/WComponentPeer.java ---- openjdk.orig/jdk/src/windows/classes/sun/awt/windows/WComponentPeer.java 2011-02-16 00:40:21.000000000 +0000 -+++ openjdk/jdk/src/windows/classes/sun/awt/windows/WComponentPeer.java 2011-02-16 01:27:25.012325621 +0000 +--- openjdk.orig/jdk/src/windows/classes/sun/awt/windows/WComponentPeer.java 2012-08-31 15:38:09.856382117 +0100 ++++ openjdk/jdk/src/windows/classes/sun/awt/windows/WComponentPeer.java 2012-08-31 15:38:50.773239528 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1996, 2008, Oracle and/or its affiliates. All rights reserved. @@ -2842,8 +2810,8 @@ shapeLog.finer( "*** INFO: Setting shape: PEER: " + this diff -Nru openjdk.orig/jdk/src/windows/classes/sun/awt/windows/WFileDialogPeer.java openjdk/jdk/src/windows/classes/sun/awt/windows/WFileDialogPeer.java ---- openjdk.orig/jdk/src/windows/classes/sun/awt/windows/WFileDialogPeer.java 2011-01-20 23:54:43.000000000 +0000 -+++ openjdk/jdk/src/windows/classes/sun/awt/windows/WFileDialogPeer.java 2011-02-16 01:27:25.012325621 +0000 +--- openjdk.orig/jdk/src/windows/classes/sun/awt/windows/WFileDialogPeer.java 2011-02-28 16:06:51.000000000 +0000 ++++ openjdk/jdk/src/windows/classes/sun/awt/windows/WFileDialogPeer.java 2012-08-31 15:38:50.773239528 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1996, 2007, Oracle and/or its affiliates. All rights reserved. @@ -2863,8 +2831,8 @@ + public void updateWindow(java.awt.image.BufferedImage backBuffer) {} } diff -Nru openjdk.orig/jdk/src/windows/classes/sun/awt/windows/WPrintDialogPeer.java openjdk/jdk/src/windows/classes/sun/awt/windows/WPrintDialogPeer.java ---- openjdk.orig/jdk/src/windows/classes/sun/awt/windows/WPrintDialogPeer.java 2011-01-20 23:54:43.000000000 +0000 -+++ openjdk/jdk/src/windows/classes/sun/awt/windows/WPrintDialogPeer.java 2011-02-16 01:27:25.012325621 +0000 +--- openjdk.orig/jdk/src/windows/classes/sun/awt/windows/WPrintDialogPeer.java 2011-02-28 16:06:51.000000000 +0000 ++++ openjdk/jdk/src/windows/classes/sun/awt/windows/WPrintDialogPeer.java 2012-08-31 15:38:50.773239528 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2007, Oracle and/or its affiliates. All rights reserved. @@ -2884,8 +2852,8 @@ + public void updateWindow(java.awt.image.BufferedImage backBuffer) {} } diff -Nru openjdk.orig/jdk/src/windows/classes/sun/awt/windows/WToolkit.java openjdk/jdk/src/windows/classes/sun/awt/windows/WToolkit.java ---- openjdk.orig/jdk/src/windows/classes/sun/awt/windows/WToolkit.java 2011-02-16 00:40:21.000000000 +0000 -+++ openjdk/jdk/src/windows/classes/sun/awt/windows/WToolkit.java 2011-02-16 01:27:25.012325621 +0000 +--- openjdk.orig/jdk/src/windows/classes/sun/awt/windows/WToolkit.java 2012-08-31 15:38:09.856382117 +0100 ++++ openjdk/jdk/src/windows/classes/sun/awt/windows/WToolkit.java 2012-08-31 15:38:50.773239528 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1996, 2008, Oracle and/or its affiliates. All rights reserved. @@ -2929,8 +2897,8 @@ + } } diff -Nru openjdk.orig/jdk/src/windows/classes/sun/awt/windows/WWindowPeer.java openjdk/jdk/src/windows/classes/sun/awt/windows/WWindowPeer.java ---- openjdk.orig/jdk/src/windows/classes/sun/awt/windows/WWindowPeer.java 2011-01-20 23:54:43.000000000 +0000 -+++ openjdk/jdk/src/windows/classes/sun/awt/windows/WWindowPeer.java 2011-02-16 01:27:25.012325621 +0000 +--- openjdk.orig/jdk/src/windows/classes/sun/awt/windows/WWindowPeer.java 2012-08-31 15:38:02.520228268 +0100 ++++ openjdk/jdk/src/windows/classes/sun/awt/windows/WWindowPeer.java 2012-08-31 15:39:20.073852831 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1996, 2007, Oracle and/or its affiliates. All rights reserved. @@ -2938,15 +2906,12 @@ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it -@@ -31,17 +31,15 @@ - +@@ -32,14 +32,14 @@ import java.beans.*; --import java.lang.ref.*; - import java.lang.reflect.*; - + import java.lang.ref.*; -import java.security.*; -- + import java.util.*; import java.util.List; import java.util.logging.*; @@ -2958,7 +2923,7 @@ public class WWindowPeer extends WPanelPeer implements WindowPeer { -@@ -52,6 +50,10 @@ +@@ -50,6 +50,10 @@ // extends WWindowPeer, not WDialogPeer private WWindowPeer modalBlocker = null; @@ -2969,7 +2934,7 @@ /* * A key used for storing a list of active windows in AppContext. The value * is a list of windows, sorted by the time of activation: later a window is -@@ -90,9 +92,18 @@ +@@ -88,9 +92,18 @@ l.remove(this); } } @@ -2988,7 +2953,7 @@ super.disposeImpl(); } -@@ -164,6 +175,10 @@ +@@ -162,6 +175,10 @@ } updateIconImages(); @@ -2999,7 +2964,7 @@ } native void createAwtWindow(WComponentPeer parent); -@@ -197,6 +212,8 @@ +@@ -195,6 +212,8 @@ if (((Window)target).isAlwaysOnTopSupported() && alwaysOnTop) { setAlwaysOnTop(alwaysOnTop); } @@ -3008,7 +2973,7 @@ } // Synchronize the insets members (here & in helper) with actual window -@@ -279,6 +296,31 @@ +@@ -277,6 +296,31 @@ } } @@ -3040,7 +3005,7 @@ native void setMinSize(int width, int height); /* -@@ -531,6 +573,135 @@ +@@ -529,6 +573,135 @@ super.setBounds(newBounds.x, newBounds.y, newBounds.width, newBounds.height, op); } @@ -3177,8 +3142,8 @@ * Static inner class, listens for 'activeWindow' KFM property changes and * updates the list of active windows per AppContext, so the latest active diff -Nru openjdk.orig/jdk/src/windows/classes/sun/java2d/opengl/WGLSurfaceData.java openjdk/jdk/src/windows/classes/sun/java2d/opengl/WGLSurfaceData.java ---- openjdk.orig/jdk/src/windows/classes/sun/java2d/opengl/WGLSurfaceData.java 2011-02-16 00:40:21.000000000 +0000 -+++ openjdk/jdk/src/windows/classes/sun/java2d/opengl/WGLSurfaceData.java 2011-02-16 01:27:25.012325621 +0000 +--- openjdk.orig/jdk/src/windows/classes/sun/java2d/opengl/WGLSurfaceData.java 2012-08-31 15:38:09.876382536 +0100 ++++ openjdk/jdk/src/windows/classes/sun/java2d/opengl/WGLSurfaceData.java 2012-08-31 15:38:50.777239612 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2004, 2008, Oracle and/or its affiliates. All rights reserved. @@ -3211,8 +3176,8 @@ return null; } diff -Nru openjdk.orig/jdk/src/windows/native/sun/awt/utility/rect.h openjdk/jdk/src/windows/native/sun/awt/utility/rect.h ---- openjdk.orig/jdk/src/windows/native/sun/awt/utility/rect.h 2011-01-20 23:54:44.000000000 +0000 -+++ openjdk/jdk/src/windows/native/sun/awt/utility/rect.h 2011-02-16 01:27:25.012325621 +0000 +--- openjdk.orig/jdk/src/windows/native/sun/awt/utility/rect.h 2011-02-28 16:06:51.000000000 +0000 ++++ openjdk/jdk/src/windows/native/sun/awt/utility/rect.h 2012-08-31 15:38:50.777239612 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, Oracle and/or its affiliates. All rights reserved. @@ -3237,8 +3202,8 @@ #endif // _AWT_RECT_H diff -Nru openjdk.orig/jdk/src/windows/native/sun/java2d/d3d/D3DSurfaceData.cpp openjdk/jdk/src/windows/native/sun/java2d/d3d/D3DSurfaceData.cpp ---- openjdk.orig/jdk/src/windows/native/sun/java2d/d3d/D3DSurfaceData.cpp 2011-02-16 00:40:21.000000000 +0000 -+++ openjdk/jdk/src/windows/native/sun/java2d/d3d/D3DSurfaceData.cpp 2011-02-16 01:27:25.012325621 +0000 +--- openjdk.orig/jdk/src/windows/native/sun/java2d/d3d/D3DSurfaceData.cpp 2012-08-31 15:38:09.964384381 +0100 ++++ openjdk/jdk/src/windows/native/sun/java2d/d3d/D3DSurfaceData.cpp 2012-08-31 15:38:50.777239612 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, 2008, Oracle and/or its affiliates. All rights reserved. @@ -3270,8 +3235,8 @@ // hBitmap is released in UpdateWindow diff -Nru openjdk.orig/jdk/src/windows/native/sun/java2d/opengl/WGLSurfaceData.c openjdk/jdk/src/windows/native/sun/java2d/opengl/WGLSurfaceData.c ---- openjdk.orig/jdk/src/windows/native/sun/java2d/opengl/WGLSurfaceData.c 2011-02-16 00:40:21.000000000 +0000 -+++ openjdk/jdk/src/windows/native/sun/java2d/opengl/WGLSurfaceData.c 2011-02-16 01:27:25.012325621 +0000 +--- openjdk.orig/jdk/src/windows/native/sun/java2d/opengl/WGLSurfaceData.c 2012-08-31 15:38:09.968384465 +0100 ++++ openjdk/jdk/src/windows/native/sun/java2d/opengl/WGLSurfaceData.c 2012-08-31 15:38:50.777239612 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2004, 2008, Oracle and/or its affiliates. All rights reserved. @@ -3301,8 +3266,8 @@ // hBitmap is released in UpdateWindow diff -Nru openjdk.orig/jdk/src/windows/native/sun/windows/awt_BitmapUtil.cpp openjdk/jdk/src/windows/native/sun/windows/awt_BitmapUtil.cpp ---- openjdk.orig/jdk/src/windows/native/sun/windows/awt_BitmapUtil.cpp 2011-01-20 23:54:44.000000000 +0000 -+++ openjdk/jdk/src/windows/native/sun/windows/awt_BitmapUtil.cpp 2011-02-16 01:27:25.012325621 +0000 +--- openjdk.orig/jdk/src/windows/native/sun/windows/awt_BitmapUtil.cpp 2011-02-28 16:06:52.000000000 +0000 ++++ openjdk/jdk/src/windows/native/sun/windows/awt_BitmapUtil.cpp 2012-08-31 15:38:50.777239612 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved. @@ -3549,8 +3514,8 @@ + bitmapBitsPtr, NULL, 0); +} diff -Nru openjdk.orig/jdk/src/windows/native/sun/windows/awt_BitmapUtil.h openjdk/jdk/src/windows/native/sun/windows/awt_BitmapUtil.h ---- openjdk.orig/jdk/src/windows/native/sun/windows/awt_BitmapUtil.h 2011-01-20 23:54:44.000000000 +0000 -+++ openjdk/jdk/src/windows/native/sun/windows/awt_BitmapUtil.h 2011-02-16 01:27:25.012325621 +0000 +--- openjdk.orig/jdk/src/windows/native/sun/windows/awt_BitmapUtil.h 2011-02-28 16:06:52.000000000 +0000 ++++ openjdk/jdk/src/windows/native/sun/windows/awt_BitmapUtil.h 2012-08-31 15:38:50.777239612 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved. @@ -3592,8 +3557,8 @@ #endif diff -Nru openjdk.orig/jdk/src/windows/native/sun/windows/awt_Component.cpp openjdk/jdk/src/windows/native/sun/windows/awt_Component.cpp ---- openjdk.orig/jdk/src/windows/native/sun/windows/awt_Component.cpp 2011-02-16 00:40:21.000000000 +0000 -+++ openjdk/jdk/src/windows/native/sun/windows/awt_Component.cpp 2011-02-16 01:27:25.012325621 +0000 +--- openjdk.orig/jdk/src/windows/native/sun/windows/awt_Component.cpp 2012-08-31 15:38:10.024385639 +0100 ++++ openjdk/jdk/src/windows/native/sun/windows/awt_Component.cpp 2012-08-31 15:38:50.777239612 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1996, 2007, Oracle and/or its affiliates. All rights reserved. @@ -3637,7 +3602,7 @@ jintArray AwtComponent::CreatePrintedPixels(SIZE &loc, SIZE &size) { JNIEnv *env = (JNIEnv *)JNU_GetEnv(jvm, JNI_VERSION_1_2); -@@ -6276,15 +6292,12 @@ +@@ -6282,15 +6298,12 @@ AwtComponent *c = NULL; @@ -3656,8 +3621,8 @@ // If all the params are zeros, the shape must be simply reset. // Otherwise, convert it into a region. diff -Nru openjdk.orig/jdk/src/windows/native/sun/windows/awt_Component.h openjdk/jdk/src/windows/native/sun/windows/awt_Component.h ---- openjdk.orig/jdk/src/windows/native/sun/windows/awt_Component.h 2011-02-16 00:40:21.000000000 +0000 -+++ openjdk/jdk/src/windows/native/sun/windows/awt_Component.h 2011-02-16 01:27:25.016325311 +0000 +--- openjdk.orig/jdk/src/windows/native/sun/windows/awt_Component.h 2012-08-31 15:38:10.024385639 +0100 ++++ openjdk/jdk/src/windows/native/sun/windows/awt_Component.h 2012-08-31 15:38:50.777239612 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1996, 2008, Oracle and/or its affiliates. All rights reserved. @@ -3689,8 +3654,8 @@ private: BOOL m_bSubclassed; diff -Nru openjdk.orig/jdk/src/windows/native/sun/windows/awt_Window.cpp openjdk/jdk/src/windows/native/sun/windows/awt_Window.cpp ---- openjdk.orig/jdk/src/windows/native/sun/windows/awt_Window.cpp 2011-02-16 00:40:21.000000000 +0000 -+++ openjdk/jdk/src/windows/native/sun/windows/awt_Window.cpp 2011-02-16 01:27:25.016325311 +0000 +--- openjdk.orig/jdk/src/windows/native/sun/windows/awt_Window.cpp 2012-08-31 15:38:10.032385807 +0100 ++++ openjdk/jdk/src/windows/native/sun/windows/awt_Window.cpp 2012-08-31 15:38:50.777239612 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1996, 2007, Oracle and/or its affiliates. All rights reserved. @@ -3748,7 +3713,7 @@ /************************************************************************ * AwtWindow fields */ -@@ -164,6 +182,11 @@ +@@ -161,6 +179,11 @@ ::SetWindowsHookEx(WH_CBT, (HOOKPROC)AwtWindow::CBTFilter, 0, AwtToolkit::MainThread()); } @@ -3760,7 +3725,7 @@ } AwtWindow::~AwtWindow() -@@ -1870,6 +1893,216 @@ +@@ -1863,6 +1886,216 @@ //Does nothing for windows, is overriden for frames and dialogs } @@ -3977,7 +3942,7 @@ void AwtWindow::_SetIconImagesData(void * param) { JNIEnv *env = (JNIEnv *)JNU_GetEnv(jvm, JNI_VERSION_1_2); -@@ -2042,36 +2275,68 @@ +@@ -2035,36 +2268,68 @@ env->DeleteGlobalRef(self); } @@ -4068,7 +4033,7 @@ extern "C" { /* -@@ -2526,5 +2791,94 @@ +@@ -2519,5 +2784,94 @@ CATCH_BAD_ALLOC; } @@ -4164,8 +4129,8 @@ } /* extern "C" */ diff -Nru openjdk.orig/jdk/src/windows/native/sun/windows/awt_Window.h openjdk/jdk/src/windows/native/sun/windows/awt_Window.h ---- openjdk.orig/jdk/src/windows/native/sun/windows/awt_Window.h 2011-02-16 00:40:21.000000000 +0000 -+++ openjdk/jdk/src/windows/native/sun/windows/awt_Window.h 2011-02-16 01:27:25.016325311 +0000 +--- openjdk.orig/jdk/src/windows/native/sun/windows/awt_Window.h 2012-08-31 15:38:10.032385807 +0100 ++++ openjdk/jdk/src/windows/native/sun/windows/awt_Window.h 2012-08-31 15:38:50.777239612 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1996, 2007, Oracle and/or its affiliates. All rights reserved. @@ -4173,7 +4138,7 @@ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it -@@ -188,6 +188,9 @@ +@@ -182,6 +182,9 @@ void moveToDefaultLocation(); /* moves Window to X,Y specified by Window Manger */ @@ -4183,7 +4148,7 @@ INLINE virtual BOOL IsTopLevel() { return TRUE; } static AwtWindow * GetGrabbedWindow() { return m_grabbedWindow; } -@@ -210,6 +213,9 @@ +@@ -204,6 +207,9 @@ static void _SetModalExcludedNativeProp(void *param); static void _ModalDisable(void *param); static void _ModalEnable(void *param); @@ -4193,7 +4158,7 @@ inline static BOOL IsResizing() { return sm_resizing; -@@ -234,6 +240,32 @@ +@@ -228,6 +234,32 @@ // from its hierarchy when shown. Currently applied to instances of // javax/swing/Popup$HeavyWeightWindow class. @@ -4226,7 +4191,7 @@ protected: BOOL m_isResizable; static AwtWindow* m_grabbedWindow; // Current grabbing window -@@ -242,6 +274,10 @@ +@@ -236,6 +268,10 @@ BOOL m_iconInherited; /* TRUE if icon is inherited from the owner */ BOOL m_filterFocusAndActivation; /* Used in the WH_CBT hook */ @@ -4239,7 +4204,7 @@ int m_screenNum; diff -Nru openjdk.orig/jdk/test/com/sun/awt/Translucency/TranslucentJAppletTest/TranslucentJAppletTest.java openjdk/jdk/test/com/sun/awt/Translucency/TranslucentJAppletTest/TranslucentJAppletTest.java --- openjdk.orig/jdk/test/com/sun/awt/Translucency/TranslucentJAppletTest/TranslucentJAppletTest.java 1970-01-01 01:00:00.000000000 +0100 -+++ openjdk/jdk/test/com/sun/awt/Translucency/TranslucentJAppletTest/TranslucentJAppletTest.java 2011-02-16 01:27:25.016325311 +0000 ++++ openjdk/jdk/test/com/sun/awt/Translucency/TranslucentJAppletTest/TranslucentJAppletTest.java 2012-08-31 15:38:50.781239696 +0100 @@ -0,0 +1,103 @@ +/* + * Copyright (c) 2008, 2009, Oracle and/or its affiliates. All rights reserved. @@ -4346,7 +4311,7 @@ +} diff -Nru openjdk.orig/jdk/test/com/sun/awt/Translucency/TranslucentShapedFrameTest/TranslucentShapedFrameTest.form openjdk/jdk/test/com/sun/awt/Translucency/TranslucentShapedFrameTest/TranslucentShapedFrameTest.form --- openjdk.orig/jdk/test/com/sun/awt/Translucency/TranslucentShapedFrameTest/TranslucentShapedFrameTest.form 1970-01-01 01:00:00.000000000 +0100 -+++ openjdk/jdk/test/com/sun/awt/Translucency/TranslucentShapedFrameTest/TranslucentShapedFrameTest.form 2011-02-16 01:27:25.016325311 +0000 ++++ openjdk/jdk/test/com/sun/awt/Translucency/TranslucentShapedFrameTest/TranslucentShapedFrameTest.form 2012-08-31 15:38:50.781239696 +0100 @@ -0,0 +1,230 @@ + + @@ -4580,7 +4545,7 @@ + diff -Nru openjdk.orig/jdk/test/com/sun/awt/Translucency/TranslucentShapedFrameTest/TranslucentShapedFrameTest.java openjdk/jdk/test/com/sun/awt/Translucency/TranslucentShapedFrameTest/TranslucentShapedFrameTest.java --- openjdk.orig/jdk/test/com/sun/awt/Translucency/TranslucentShapedFrameTest/TranslucentShapedFrameTest.java 1970-01-01 01:00:00.000000000 +0100 -+++ openjdk/jdk/test/com/sun/awt/Translucency/TranslucentShapedFrameTest/TranslucentShapedFrameTest.java 2011-02-16 01:27:25.016325311 +0000 ++++ openjdk/jdk/test/com/sun/awt/Translucency/TranslucentShapedFrameTest/TranslucentShapedFrameTest.java 2012-08-31 15:38:50.781239696 +0100 @@ -0,0 +1,359 @@ +/* + * Copyright (c) 2008, 2009, Oracle and/or its affiliates. All rights reserved. @@ -4943,7 +4908,7 @@ +} diff -Nru openjdk.orig/jdk/test/com/sun/awt/Translucency/TranslucentShapedFrameTest/TSFrame.java openjdk/jdk/test/com/sun/awt/Translucency/TranslucentShapedFrameTest/TSFrame.java --- openjdk.orig/jdk/test/com/sun/awt/Translucency/TranslucentShapedFrameTest/TSFrame.java 1970-01-01 01:00:00.000000000 +0100 -+++ openjdk/jdk/test/com/sun/awt/Translucency/TranslucentShapedFrameTest/TSFrame.java 2011-02-16 01:27:25.016325311 +0000 ++++ openjdk/jdk/test/com/sun/awt/Translucency/TranslucentShapedFrameTest/TSFrame.java 2012-08-31 15:38:50.781239696 +0100 @@ -0,0 +1,306 @@ +/* + * Copyright (c) 2008, 2009, Oracle and/or its affiliates. All rights reserved. @@ -5253,7 +5218,7 @@ +} diff -Nru openjdk.orig/jdk/test/com/sun/awt/Translucency/WindowOpacity.java openjdk/jdk/test/com/sun/awt/Translucency/WindowOpacity.java --- openjdk.orig/jdk/test/com/sun/awt/Translucency/WindowOpacity.java 1970-01-01 01:00:00.000000000 +0100 -+++ openjdk/jdk/test/com/sun/awt/Translucency/WindowOpacity.java 2011-02-16 01:27:25.016325311 +0000 ++++ openjdk/jdk/test/com/sun/awt/Translucency/WindowOpacity.java 2012-08-31 15:38:50.781239696 +0100 @@ -0,0 +1,461 @@ +/* + * Copyright (c) 2008, 2009, Oracle and/or its affiliates. All rights reserved. @@ -5718,7 +5683,7 @@ +}// TestDialog class diff -Nru openjdk.orig/jdk/test/sun/java2d/pipe/RegionOps.java openjdk/jdk/test/sun/java2d/pipe/RegionOps.java --- openjdk.orig/jdk/test/sun/java2d/pipe/RegionOps.java 1970-01-01 01:00:00.000000000 +0100 -+++ openjdk/jdk/test/sun/java2d/pipe/RegionOps.java 2011-02-16 01:27:25.016325311 +0000 ++++ openjdk/jdk/test/sun/java2d/pipe/RegionOps.java 2012-08-31 15:38:50.781239696 +0100 @@ -0,0 +1,533 @@ +/* + * Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved. diff -r f5a3984175d3 -r e067051f7a6e patches/openjdk/6693253-security_warning.patch --- a/patches/openjdk/6693253-security_warning.patch Wed Jun 13 02:38:51 2012 +0100 +++ b/patches/openjdk/6693253-security_warning.patch Fri Aug 31 16:59:45 2012 +0100 @@ -1,6 +1,6 @@ diff -Nru openjdk.orig/jdk/make/sun/awt/Depend.mak openjdk/jdk/make/sun/awt/Depend.mak --- openjdk.orig/jdk/make/sun/awt/Depend.mak 2011-02-28 16:06:11.000000000 +0000 -+++ openjdk/jdk/make/sun/awt/Depend.mak 2012-06-08 11:21:24.375337489 +0100 ++++ openjdk/jdk/make/sun/awt/Depend.mak 2012-08-31 15:53:16.083125997 +0100 @@ -71,6 +71,7 @@ $(STUBDIR)/Ole2.h \ $(STUBDIR)/Zmouse.h \ @@ -10,8 +10,8 @@ $(STUBDIR)/direct.h \ $(STUBDIR)/d3dcom.h \ diff -Nru openjdk.orig/jdk/make/sun/awt/FILES_c_windows.gmk openjdk/jdk/make/sun/awt/FILES_c_windows.gmk ---- openjdk.orig/jdk/make/sun/awt/FILES_c_windows.gmk 2012-06-08 11:18:48.476781365 +0100 -+++ openjdk/jdk/make/sun/awt/FILES_c_windows.gmk 2012-06-08 11:21:24.379337555 +0100 +--- openjdk.orig/jdk/make/sun/awt/FILES_c_windows.gmk 2012-08-31 15:49:38.194663958 +0100 ++++ openjdk/jdk/make/sun/awt/FILES_c_windows.gmk 2012-08-31 15:53:16.103126406 +0100 @@ -202,6 +202,7 @@ ShellFolder2.cpp \ ThemeReader.cpp \ @@ -21,8 +21,8 @@ awt_dlls.cpp \ UnicowsLoader.cpp \ diff -Nru openjdk.orig/jdk/make/sun/awt/make.depend openjdk/jdk/make/sun/awt/make.depend ---- openjdk.orig/jdk/make/sun/awt/make.depend 2012-06-08 11:18:48.476781365 +0100 -+++ openjdk/jdk/make/sun/awt/make.depend 2012-06-08 11:21:24.383337620 +0100 +--- openjdk.orig/jdk/make/sun/awt/make.depend 2012-08-31 15:49:38.194663958 +0100 ++++ openjdk/jdk/make/sun/awt/make.depend 2012-08-31 15:53:16.111126569 +0100 @@ -14,145 +14,145 @@ $(OBJDIR)/AnyShort.obj:: $(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyShort.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h @@ -477,8 +477,8 @@ -$(OBJDIR)/WPrinterJob.obj:: $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_FileDialog.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFileDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_dlls.h ../../../src/windows/native/sun/windows/awt_FileDialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PrintControl.h ../../../src/windows/native/sun/windows/awt_PrintDialog.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h +$(OBJDIR)/WPrinterJob.obj:: $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_FileDialog.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFileDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_dlls.h ../../../src/windows/native/sun/windows/awt_FileDialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PrintControl.h ../../../src/windows/native/sun/windows/awt_PrintDialog.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h diff -Nru openjdk.orig/jdk/make/sun/awt/Makefile openjdk/jdk/make/sun/awt/Makefile ---- openjdk.orig/jdk/make/sun/awt/Makefile 2012-06-08 11:18:48.480781430 +0100 -+++ openjdk/jdk/make/sun/awt/Makefile 2012-06-08 11:21:24.383337620 +0100 +--- openjdk.orig/jdk/make/sun/awt/Makefile 2012-08-31 15:49:38.214664369 +0100 ++++ openjdk/jdk/make/sun/awt/Makefile 2012-08-31 15:53:16.115126651 +0100 @@ -551,3 +551,4 @@ .PHONY: dgalibs dgalib.clean fontconfigs fontconfigs.clean @@ -486,7 +486,7 @@ +# DO NOT DELETE diff -Nru openjdk.orig/jdk/make/sun/awt/README openjdk/jdk/make/sun/awt/README --- openjdk.orig/jdk/make/sun/awt/README 2011-02-28 16:06:11.000000000 +0000 -+++ openjdk/jdk/make/sun/awt/README 2012-06-08 11:21:24.383337620 +0100 ++++ openjdk/jdk/make/sun/awt/README 2012-08-31 15:53:16.115126651 +0100 @@ -6,11 +6,9 @@ Included in this project is a generated file, make.depend, which lists @@ -502,7 +502,7 @@ or include statements are changed. 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 2011-02-28 16:06:12.000000000 +0000 -+++ openjdk/jdk/make/sun/xawt/FILES_c_unix.gmk 2012-06-08 11:21:24.383337620 +0100 ++++ openjdk/jdk/make/sun/xawt/FILES_c_unix.gmk 2012-08-31 15:53:16.115126651 +0100 @@ -78,4 +78,5 @@ awt_Plugin.c \ gtk2_interface.c \ @@ -512,7 +512,7 @@ + rect.c diff -Nru openjdk.orig/jdk/make/sun/xawt/Makefile openjdk/jdk/make/sun/xawt/Makefile --- openjdk.orig/jdk/make/sun/xawt/Makefile 2011-02-28 16:06:12.000000000 +0000 -+++ openjdk/jdk/make/sun/xawt/Makefile 2012-06-08 11:21:24.383337620 +0100 ++++ openjdk/jdk/make/sun/xawt/Makefile 2012-08-31 15:53:16.115126651 +0100 @@ -79,6 +79,7 @@ vpath %.c $(SHARE_SRC)/native/sun/java2d/loops vpath %.c $(SHARE_SRC)/native/sun/java2d/pipe @@ -546,8 +546,8 @@ $(TEMPDIR_CLASSES)/sun/awt/X11/ToBin.class: ToBin.java 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 2012-06-08 11:18:48.588783199 +0100 -+++ openjdk/jdk/make/sun/xawt/mapfile-vers 2012-06-08 11:21:24.387337686 +0100 +--- openjdk.orig/jdk/make/sun/xawt/mapfile-vers 2012-08-31 15:49:38.726674885 +0100 ++++ openjdk/jdk/make/sun/xawt/mapfile-vers 2012-08-31 15:53:16.115126651 +0100 @@ -93,6 +93,8 @@ Java_sun_awt_X11_XlibWrapper_XGetWMHints; Java_sun_awt_X11_XlibWrapper_XShapeQueryExtension; @@ -559,7 +559,7 @@ Java_sun_awt_X11_XWindow_getWMInsets; diff -Nru openjdk.orig/jdk/src/share/classes/com/sun/awt/SecurityWarning.java openjdk/jdk/src/share/classes/com/sun/awt/SecurityWarning.java --- openjdk.orig/jdk/src/share/classes/com/sun/awt/SecurityWarning.java 1970-01-01 01:00:00.000000000 +0100 -+++ openjdk/jdk/src/share/classes/com/sun/awt/SecurityWarning.java 2012-06-08 11:21:24.387337686 +0100 ++++ openjdk/jdk/src/share/classes/com/sun/awt/SecurityWarning.java 2012-08-31 15:53:16.119126732 +0100 @@ -0,0 +1,169 @@ +/* + * Copyright (c) 2008, 2009, Oracle and/or its affiliates. All rights reserved. @@ -731,9 +731,9 @@ +} + diff -Nru openjdk.orig/jdk/src/share/classes/java/awt/Component.java openjdk/jdk/src/share/classes/java/awt/Component.java ---- openjdk.orig/jdk/src/share/classes/java/awt/Component.java 2012-06-08 11:18:48.500781751 +0100 -+++ openjdk/jdk/src/share/classes/java/awt/Component.java 2012-06-08 11:21:24.387337686 +0100 -@@ -855,6 +855,10 @@ +--- openjdk.orig/jdk/src/share/classes/java/awt/Component.java 2012-08-31 15:49:38.258665272 +0100 ++++ openjdk/jdk/src/share/classes/java/awt/Component.java 2012-08-31 15:53:16.119126732 +0100 +@@ -975,6 +975,10 @@ } } } @@ -745,8 +745,8 @@ } diff -Nru openjdk.orig/jdk/src/share/classes/java/awt/peer/WindowPeer.java openjdk/jdk/src/share/classes/java/awt/peer/WindowPeer.java ---- openjdk.orig/jdk/src/share/classes/java/awt/peer/WindowPeer.java 2012-06-08 11:18:48.512781955 +0100 -+++ openjdk/jdk/src/share/classes/java/awt/peer/WindowPeer.java 2012-06-08 11:21:24.387337686 +0100 +--- openjdk.orig/jdk/src/share/classes/java/awt/peer/WindowPeer.java 2012-08-31 15:49:38.282665765 +0100 ++++ openjdk/jdk/src/share/classes/java/awt/peer/WindowPeer.java 2012-08-31 15:53:16.119126732 +0100 @@ -67,4 +67,9 @@ * @see Window#setBackground(Color) */ @@ -758,8 +758,8 @@ + void repositionSecurityWarning(); } diff -Nru openjdk.orig/jdk/src/share/classes/java/awt/Window.java openjdk/jdk/src/share/classes/java/awt/Window.java ---- openjdk.orig/jdk/src/share/classes/java/awt/Window.java 2012-06-08 11:18:48.580783070 +0100 -+++ openjdk/jdk/src/share/classes/java/awt/Window.java 2012-06-08 11:21:24.387337686 +0100 +--- openjdk.orig/jdk/src/share/classes/java/awt/Window.java 2012-08-31 15:49:38.678673899 +0100 ++++ openjdk/jdk/src/share/classes/java/awt/Window.java 2012-08-31 15:55:09.181431842 +0100 @@ -26,6 +26,7 @@ import java.applet.Applet; @@ -862,30 +862,29 @@ + { + return window.calculateSecurityWarningPosition(x, y, w, h); + } - }); // WindowAccessor - } // static - + public void setLWRequestStatus(Window changed, boolean status) { + changed.syncLWRequests = status; + } diff -Nru openjdk.orig/jdk/src/share/classes/sun/awt/AWTAccessor.java openjdk/jdk/src/share/classes/sun/awt/AWTAccessor.java ---- openjdk.orig/jdk/src/share/classes/sun/awt/AWTAccessor.java 2012-06-08 11:18:48.516782020 +0100 -+++ openjdk/jdk/src/share/classes/sun/awt/AWTAccessor.java 2012-06-08 11:21:24.387337686 +0100 -@@ -88,6 +88,12 @@ - * Returns the acc this component was constructed with. - */ +--- openjdk.orig/jdk/src/share/classes/sun/awt/AWTAccessor.java 2012-08-31 15:49:38.334666833 +0100 ++++ openjdk/jdk/src/share/classes/sun/awt/AWTAccessor.java 2012-08-31 15:54:34.980735280 +0100 +@@ -234,6 +234,12 @@ AccessControlContext getAccessControlContext(Component comp); -+ -+ /** + + /** + * Returns whether the component is visible without invoking + * any client code. + */ + boolean isVisible_NoClientCode(Component comp); - } - - /* -@@ -123,6 +129,26 @@ - * Update the image of a non-opaque (translucent) window. ++ ++ /** + * Requests that this Component get the input focus, if this + * Component's top-level ancestor is already the focused Window + */ +@@ -279,6 +285,26 @@ */ void updateWindow(Window window, BufferedImage backBuffer); -+ + + /** Get the size of the security warning. + */ + Dimension getSecurityWarningSize(Window w); @@ -905,13 +904,14 @@ + */ + Point2D calculateSecurityWarningPosition(Window window, + double x, double y, double w, double h); - } - - /* ++ + /** Sets the synchronous status of focus requests on lightweight + * components in the specified window to the specified value. + */ diff -Nru openjdk.orig/jdk/src/share/classes/sun/awt/EmbeddedFrame.java openjdk/jdk/src/share/classes/sun/awt/EmbeddedFrame.java ---- openjdk.orig/jdk/src/share/classes/sun/awt/EmbeddedFrame.java 2012-06-08 11:18:48.520782084 +0100 -+++ openjdk/jdk/src/share/classes/sun/awt/EmbeddedFrame.java 2012-06-08 11:21:24.387337686 +0100 -@@ -586,5 +586,7 @@ +--- openjdk.orig/jdk/src/share/classes/sun/awt/EmbeddedFrame.java 2012-08-31 15:49:38.358667326 +0100 ++++ openjdk/jdk/src/share/classes/sun/awt/EmbeddedFrame.java 2012-08-31 15:53:16.123126814 +0100 +@@ -523,5 +523,7 @@ } public void updateWindow(BufferedImage backBuffer) { } @@ -921,7 +921,7 @@ } // class EmbeddedFrame diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/InfoWindow.java openjdk/jdk/src/solaris/classes/sun/awt/X11/InfoWindow.java --- openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/InfoWindow.java 1970-01-01 01:00:00.000000000 +0100 -+++ openjdk/jdk/src/solaris/classes/sun/awt/X11/InfoWindow.java 2012-06-08 11:21:24.387337686 +0100 ++++ openjdk/jdk/src/solaris/classes/sun/awt/X11/InfoWindow.java 2012-08-31 15:53:16.123126814 +0100 @@ -0,0 +1,495 @@ +/* + * Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved. @@ -1420,7 +1420,7 @@ + diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XDecoratedPeer.java openjdk/jdk/src/solaris/classes/sun/awt/X11/XDecoratedPeer.java --- openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XDecoratedPeer.java 2011-02-28 16:06:48.000000000 +0000 -+++ openjdk/jdk/src/solaris/classes/sun/awt/X11/XDecoratedPeer.java 2012-06-08 11:21:24.387337686 +0100 ++++ openjdk/jdk/src/solaris/classes/sun/awt/X11/XDecoratedPeer.java 2012-08-31 15:53:16.123126814 +0100 @@ -451,7 +451,7 @@ public Insets getInsets() { @@ -1440,9 +1440,9 @@ private void checkShellRectSize(Rectangle shellRect) { diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XKeyboardFocusManagerPeer.java openjdk/jdk/src/solaris/classes/sun/awt/X11/XKeyboardFocusManagerPeer.java ---- openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XKeyboardFocusManagerPeer.java 2012-06-08 11:18:47.544766081 +0100 -+++ openjdk/jdk/src/solaris/classes/sun/awt/X11/XKeyboardFocusManagerPeer.java 2012-06-08 11:21:24.387337686 +0100 -@@ -62,8 +62,25 @@ +--- openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XKeyboardFocusManagerPeer.java 2012-08-31 15:49:34.786593953 +0100 ++++ openjdk/jdk/src/solaris/classes/sun/awt/X11/XKeyboardFocusManagerPeer.java 2012-08-31 15:53:16.123126814 +0100 +@@ -63,8 +63,25 @@ static void setCurrentNativeFocusedWindow(Window win) { if (focusLog.isLoggable(Level.FINER)) focusLog.finer("Setting current native focused window " + win); @@ -1469,9 +1469,9 @@ } diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XlibWrapper.java openjdk/jdk/src/solaris/classes/sun/awt/X11/XlibWrapper.java ---- openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XlibWrapper.java 2011-02-28 16:06:48.000000000 +0000 -+++ openjdk/jdk/src/solaris/classes/sun/awt/X11/XlibWrapper.java 2012-06-08 11:21:24.391337752 +0100 -@@ -157,6 +157,8 @@ +--- openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XlibWrapper.java 2012-08-31 15:49:34.426586558 +0100 ++++ openjdk/jdk/src/solaris/classes/sun/awt/X11/XlibWrapper.java 2012-08-31 15:53:16.123126814 +0100 +@@ -158,6 +158,8 @@ static native void XLowerWindow(long display, long window); static native void XRestackWindows(long display, long windows, int length); @@ -1480,7 +1480,7 @@ static native void XSetInputFocus(long display, long window); static native void XSetInputFocus2(long display, long window, long time); static native long XGetInputFocus(long display); -@@ -533,6 +535,11 @@ +@@ -534,6 +536,11 @@ static native void SetRectangularShape(long display, long window, int lox, int loy, int hix, int hiy, sun.java2d.pipe.Region region); @@ -1493,8 +1493,8 @@ /* Global memory area used for X lib parameter passing */ diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XNETProtocol.java openjdk/jdk/src/solaris/classes/sun/awt/X11/XNETProtocol.java ---- openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XNETProtocol.java 2012-06-08 11:18:48.524782146 +0100 -+++ openjdk/jdk/src/solaris/classes/sun/awt/X11/XNETProtocol.java 2012-06-08 11:21:24.391337752 +0100 +--- openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XNETProtocol.java 2012-08-31 15:49:38.370667573 +0100 ++++ openjdk/jdk/src/solaris/classes/sun/awt/X11/XNETProtocol.java 2012-08-31 15:53:16.123126814 +0100 @@ -178,6 +178,34 @@ return ((layer == LAYER_ALWAYS_ON_TOP) || (layer == LAYER_NORMAL)) && doLayerProtocol(); } @@ -1565,9 +1565,9 @@ XAtomList net_wm_state = window.getNETWMState(); if (log.isLoggable(Level.FINE)) { diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XTrayIconPeer.java openjdk/jdk/src/solaris/classes/sun/awt/X11/XTrayIconPeer.java ---- openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XTrayIconPeer.java 2011-02-28 16:06:48.000000000 +0000 -+++ openjdk/jdk/src/solaris/classes/sun/awt/X11/XTrayIconPeer.java 2012-06-08 11:21:24.391337752 +0100 -@@ -41,15 +41,18 @@ +--- openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XTrayIconPeer.java 2012-08-31 15:49:34.442586887 +0100 ++++ openjdk/jdk/src/solaris/classes/sun/awt/X11/XTrayIconPeer.java 2012-08-31 15:53:16.123126814 +0100 +@@ -39,15 +39,18 @@ import java.security.PrivilegedAction; import java.lang.reflect.InvocationTargetException; @@ -1589,7 +1589,7 @@ PopupMenu popup; String tooltipString; boolean isTrayIconDisplayed; -@@ -263,8 +266,8 @@ +@@ -261,8 +264,8 @@ eframe.setVisible(true); updateImage(); @@ -1600,7 +1600,7 @@ addListeners(); } -@@ -308,6 +311,10 @@ +@@ -306,6 +309,10 @@ tooltipString = tooltip; } @@ -1611,7 +1611,7 @@ public void updateImage() { Runnable r = new Runnable() { public void run() { -@@ -393,7 +400,7 @@ +@@ -391,7 +398,7 @@ return eframe.getLocationOnScreen(); } @@ -1620,7 +1620,7 @@ Point loc = getLocationOnScreen(); return new Rectangle(loc.x, loc.y, loc.x + TRAY_ICON_WIDTH, loc.y + TRAY_ICON_HEIGHT); } -@@ -407,10 +414,14 @@ +@@ -405,10 +412,14 @@ return ((XEmbeddedFramePeer)eframe.getPeer()).getWindow(); } @@ -1636,7 +1636,7 @@ static class TrayIconEventProxy implements MouseListener, MouseMotionListener { XTrayIconPeer xtiPeer; -@@ -482,8 +493,8 @@ +@@ -480,8 +491,8 @@ } static boolean isTrayIconStuffWindow(Window w) { @@ -1647,7 +1647,7 @@ (w instanceof XTrayIconEmbeddedFrame); } -@@ -538,7 +549,7 @@ +@@ -536,7 +547,7 @@ } } @@ -1656,7 +1656,7 @@ volatile Image image; IconObserver observer; int width, height; -@@ -617,427 +628,4 @@ +@@ -615,427 +626,4 @@ } } @@ -2086,7 +2086,7 @@ } diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XWarningWindow.java openjdk/jdk/src/solaris/classes/sun/awt/X11/XWarningWindow.java --- openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XWarningWindow.java 2011-02-28 16:06:48.000000000 +0000 -+++ openjdk/jdk/src/solaris/classes/sun/awt/X11/XWarningWindow.java 2012-06-08 11:21:24.391337752 +0100 ++++ openjdk/jdk/src/solaris/classes/sun/awt/X11/XWarningWindow.java 2012-08-31 15:53:16.123126814 +0100 @@ -25,16 +25,194 @@ package sun.awt.X11; @@ -2504,9 +2504,9 @@ + } } diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XWindow.java openjdk/jdk/src/solaris/classes/sun/awt/X11/XWindow.java ---- openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XWindow.java 2011-02-28 16:06:48.000000000 +0000 -+++ openjdk/jdk/src/solaris/classes/sun/awt/X11/XWindow.java 2012-06-08 11:21:24.391337752 +0100 -@@ -68,6 +68,15 @@ +--- openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XWindow.java 2012-08-31 15:49:34.446586969 +0100 ++++ openjdk/jdk/src/solaris/classes/sun/awt/X11/XWindow.java 2012-08-31 15:53:47.755772428 +0100 +@@ -68,6 +68,16 @@ int oldWidth = -1; int oldHeight = -1; @@ -2519,10 +2519,11 @@ + private int savedState; // Holds last known state of the top-level window + + XWindowAttributesData winAttr; - ++ protected X11GraphicsConfig graphicsConfig; protected AwtGraphicsConfigData graphicsConfigData; -@@ -208,6 +217,20 @@ + +@@ -207,6 +217,20 @@ } params.putIfNull(BACKING_STORE, XToolkit.getBackingStoreType()); @@ -2543,7 +2544,7 @@ } void postInit(XCreateWindowParams params) { -@@ -801,12 +824,42 @@ +@@ -791,12 +815,42 @@ public native boolean x11inputMethodLookupString(long event, long [] keysymArray); native boolean haveCurrentX11InputMethodInstance(); @@ -2586,7 +2587,7 @@ // Skip event If it was caused by a grab // This is needed because on displays with focus-follows-mouse on MousePress X system generates // two XCrossing events with mode != NormalNotify. First of them notifies that the mouse has left -@@ -1110,6 +1163,55 @@ +@@ -1100,6 +1154,55 @@ } @@ -2642,7 +2643,7 @@ public void reshape(Rectangle bounds) { reshape(bounds.x, bounds.y, bounds.width, bounds.height); } -@@ -1278,4 +1380,40 @@ +@@ -1260,4 +1363,40 @@ static native int getAWTKeyCodeForKeySym(int keysym); static native int getKeySymForAWTKeyCode(int keycode); @@ -2684,8 +2685,8 @@ + } diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XWindowPeer.java openjdk/jdk/src/solaris/classes/sun/awt/X11/XWindowPeer.java ---- openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XWindowPeer.java 2012-06-08 11:18:48.524782146 +0100 -+++ openjdk/jdk/src/solaris/classes/sun/awt/X11/XWindowPeer.java 2012-06-08 11:21:24.391337752 +0100 +--- openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XWindowPeer.java 2012-08-31 15:49:38.386667902 +0100 ++++ openjdk/jdk/src/solaris/classes/sun/awt/X11/XWindowPeer.java 2012-08-31 15:53:16.127126896 +0100 @@ -66,17 +66,11 @@ // should be synchronized on awtLock private static Set windows = new HashSet(); @@ -2989,7 +2990,7 @@ boolean isWithdrawn() { diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XWM.java openjdk/jdk/src/solaris/classes/sun/awt/X11/XWM.java --- openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XWM.java 2011-02-28 16:06:48.000000000 +0000 -+++ openjdk/jdk/src/solaris/classes/sun/awt/X11/XWM.java 2012-06-08 11:21:24.391337752 +0100 ++++ openjdk/jdk/src/solaris/classes/sun/awt/X11/XWM.java 2012-08-31 15:53:16.127126896 +0100 @@ -889,7 +889,7 @@ /* * Set MWM decorations. Set MWM functions depending on resizability. @@ -3001,7 +3002,7 @@ && (decorations != MWM_DECOR_ALL)) diff -Nru openjdk.orig/jdk/src/solaris/native/sun/awt/utility/rect.h openjdk/jdk/src/solaris/native/sun/awt/utility/rect.h --- openjdk.orig/jdk/src/solaris/native/sun/awt/utility/rect.h 2011-02-28 16:06:50.000000000 +0000 -+++ openjdk/jdk/src/solaris/native/sun/awt/utility/rect.h 2012-06-08 11:21:24.391337752 +0100 ++++ openjdk/jdk/src/solaris/native/sun/awt/utility/rect.h 2012-08-31 15:53:16.127126896 +0100 @@ -43,4 +43,15 @@ #define RECT_INC_HEIGHT(r) (r).height++ @@ -3019,8 +3020,8 @@ + #endif // _AWT_RECT_H diff -Nru openjdk.orig/jdk/src/solaris/native/sun/xawt/XlibWrapper.c openjdk/jdk/src/solaris/native/sun/xawt/XlibWrapper.c ---- openjdk.orig/jdk/src/solaris/native/sun/xawt/XlibWrapper.c 2012-06-08 11:18:47.696768574 +0100 -+++ openjdk/jdk/src/solaris/native/sun/xawt/XlibWrapper.c 2012-06-08 11:21:24.391337752 +0100 +--- openjdk.orig/jdk/src/solaris/native/sun/xawt/XlibWrapper.c 2012-08-31 15:49:35.578610223 +0100 ++++ openjdk/jdk/src/solaris/native/sun/xawt/XlibWrapper.c 2012-08-31 15:53:16.127126896 +0100 @@ -42,6 +42,7 @@ #include @@ -3101,8 +3102,8 @@ +} + diff -Nru openjdk.orig/jdk/src/windows/classes/sun/awt/windows/WWindowPeer.java openjdk/jdk/src/windows/classes/sun/awt/windows/WWindowPeer.java ---- openjdk.orig/jdk/src/windows/classes/sun/awt/windows/WWindowPeer.java 2012-06-08 11:18:48.532782276 +0100 -+++ openjdk/jdk/src/windows/classes/sun/awt/windows/WWindowPeer.java 2012-06-08 11:21:24.391337752 +0100 +--- openjdk.orig/jdk/src/windows/classes/sun/awt/windows/WWindowPeer.java 2012-08-31 15:49:38.442669052 +0100 ++++ openjdk/jdk/src/windows/classes/sun/awt/windows/WWindowPeer.java 2012-08-31 15:53:16.127126896 +0100 @@ -499,8 +499,10 @@ private volatile int sysH = 0; @@ -3171,8 +3172,8 @@ public void setBounds(int x, int y, int width, int height, int op) { Rectangle newBounds = constrainBounds(x, y, width, height); diff -Nru openjdk.orig/jdk/src/windows/native/sun/windows/awt_Component.cpp openjdk/jdk/src/windows/native/sun/windows/awt_Component.cpp ---- openjdk.orig/jdk/src/windows/native/sun/windows/awt_Component.cpp 2012-06-08 11:18:48.540782411 +0100 -+++ openjdk/jdk/src/windows/native/sun/windows/awt_Component.cpp 2012-06-08 11:21:24.395337817 +0100 +--- openjdk.orig/jdk/src/windows/native/sun/windows/awt_Component.cpp 2012-08-31 15:49:38.494670120 +0100 ++++ openjdk/jdk/src/windows/native/sun/windows/awt_Component.cpp 2012-08-31 15:53:16.127126896 +0100 @@ -282,8 +282,7 @@ * the native one anymore. So we can safely destroy component's * handle. @@ -3235,8 +3236,8 @@ * Component native methods */ diff -Nru openjdk.orig/jdk/src/windows/native/sun/windows/awt_Component.h openjdk/jdk/src/windows/native/sun/windows/awt_Component.h ---- openjdk.orig/jdk/src/windows/native/sun/windows/awt_Component.h 2012-06-08 11:18:48.540782411 +0100 -+++ openjdk/jdk/src/windows/native/sun/windows/awt_Component.h 2012-06-08 11:21:24.395337817 +0100 +--- openjdk.orig/jdk/src/windows/native/sun/windows/awt_Component.h 2012-08-31 15:49:38.502670284 +0100 ++++ openjdk/jdk/src/windows/native/sun/windows/awt_Component.h 2012-08-31 15:53:16.131126978 +0100 @@ -127,12 +127,13 @@ virtual void RegisterClass(); virtual void UnregisterClass(); @@ -3268,8 +3269,8 @@ static BOOL m_isWin2000; static BOOL m_isWinNT; diff -Nru openjdk.orig/jdk/src/windows/native/sun/windows/awt_Dialog.cpp openjdk/jdk/src/windows/native/sun/windows/awt_Dialog.cpp ---- openjdk.orig/jdk/src/windows/native/sun/windows/awt_Dialog.cpp 2012-06-08 11:18:48.580783070 +0100 -+++ openjdk/jdk/src/windows/native/sun/windows/awt_Dialog.cpp 2012-06-08 11:21:24.395337817 +0100 +--- openjdk.orig/jdk/src/windows/native/sun/windows/awt_Dialog.cpp 2012-08-31 15:49:38.678673899 +0100 ++++ openjdk/jdk/src/windows/native/sun/windows/awt_Dialog.cpp 2012-08-31 15:53:16.131126978 +0100 @@ -311,15 +311,20 @@ // no beep/flash if the mouse was clicked in the taskbar menu // or the dialog is currently inactive @@ -3295,8 +3296,8 @@ WPARAM wParam, LPARAM lParam) { diff -Nru openjdk.orig/jdk/src/windows/native/sun/windows/awt_Dialog.h openjdk/jdk/src/windows/native/sun/windows/awt_Dialog.h ---- openjdk.orig/jdk/src/windows/native/sun/windows/awt_Dialog.h 2012-06-08 11:18:48.580783070 +0100 -+++ openjdk/jdk/src/windows/native/sun/windows/awt_Dialog.h 2012-06-08 11:21:24.395337817 +0100 +--- openjdk.orig/jdk/src/windows/native/sun/windows/awt_Dialog.h 2012-08-31 15:49:38.694674228 +0100 ++++ openjdk/jdk/src/windows/native/sun/windows/awt_Dialog.h 2012-08-31 15:53:16.131126978 +0100 @@ -76,7 +76,7 @@ * Thus we don't have to perform any transitive (a blocker of a blocker) checks. */ @@ -3317,7 +3318,7 @@ #endif /* AWT_DIALOG_H */ diff -Nru openjdk.orig/jdk/src/windows/native/sun/windows/awt_Frame.cpp openjdk/jdk/src/windows/native/sun/windows/awt_Frame.cpp --- openjdk.orig/jdk/src/windows/native/sun/windows/awt_Frame.cpp 2011-02-28 16:06:52.000000000 +0000 -+++ openjdk/jdk/src/windows/native/sun/windows/awt_Frame.cpp 2012-06-08 11:21:24.395337817 +0100 ++++ openjdk/jdk/src/windows/native/sun/windows/awt_Frame.cpp 2012-08-31 15:53:16.131126978 +0100 @@ -551,11 +551,6 @@ return AwtWindow::WmNcMouseDown(hitTest, x, y, button); } @@ -3398,7 +3399,7 @@ return TRUE; diff -Nru openjdk.orig/jdk/src/windows/native/sun/windows/awt_Frame.h openjdk/jdk/src/windows/native/sun/windows/awt_Frame.h --- openjdk.orig/jdk/src/windows/native/sun/windows/awt_Frame.h 2011-02-28 16:06:52.000000000 +0000 -+++ openjdk/jdk/src/windows/native/sun/windows/awt_Frame.h 2012-06-08 11:21:24.395337817 +0100 ++++ openjdk/jdk/src/windows/native/sun/windows/awt_Frame.h 2012-08-31 15:53:16.131126978 +0100 @@ -108,7 +108,6 @@ MsgRouting WmNcMouseDown(WPARAM hitTest, int x, int y, int button); MsgRouting WmNcMouseUp(WPARAM hitTest, int x, int y, int button); @@ -3409,7 +3410,7 @@ diff -Nru openjdk.orig/jdk/src/windows/native/sun/windows/awt.rc openjdk/jdk/src/windows/native/sun/windows/awt.rc --- openjdk.orig/jdk/src/windows/native/sun/windows/awt.rc 2011-02-28 16:06:52.000000000 +0000 -+++ openjdk/jdk/src/windows/native/sun/windows/awt.rc 2012-06-08 11:21:24.395337817 +0100 ++++ openjdk/jdk/src/windows/native/sun/windows/awt.rc 2012-08-31 15:53:16.131126978 +0100 @@ -35,6 +35,13 @@ AWT_ICON ICON DISCARDABLE "awt.ico" CHECK_BITMAP BITMAP DISCARDABLE "check.bmp" @@ -3425,8 +3426,8 @@ // // Version diff -Nru openjdk.orig/jdk/src/windows/native/sun/windows/awt_Toolkit.cpp openjdk/jdk/src/windows/native/sun/windows/awt_Toolkit.cpp ---- openjdk.orig/jdk/src/windows/native/sun/windows/awt_Toolkit.cpp 2012-06-08 11:18:48.372779658 +0100 -+++ openjdk/jdk/src/windows/native/sun/windows/awt_Toolkit.cpp 2012-06-08 11:21:24.395337817 +0100 +--- openjdk.orig/jdk/src/windows/native/sun/windows/awt_Toolkit.cpp 2012-08-31 15:49:37.694653688 +0100 ++++ openjdk/jdk/src/windows/native/sun/windows/awt_Toolkit.cpp 2012-08-31 15:53:16.131126978 +0100 @@ -56,6 +56,7 @@ #include "debug_mem.h" @@ -3682,7 +3683,7 @@ if (safe_ExceptionOccurred(env)) { diff -Nru openjdk.orig/jdk/src/windows/native/sun/windows/awt_Toolkit.h openjdk/jdk/src/windows/native/sun/windows/awt_Toolkit.h --- openjdk.orig/jdk/src/windows/native/sun/windows/awt_Toolkit.h 2011-02-28 16:06:52.000000000 +0000 -+++ openjdk/jdk/src/windows/native/sun/windows/awt_Toolkit.h 2012-06-08 11:21:24.395337817 +0100 ++++ openjdk/jdk/src/windows/native/sun/windows/awt_Toolkit.h 2012-08-31 15:53:16.131126978 +0100 @@ -244,6 +244,8 @@ LPARAM lParam); static LRESULT CALLBACK ForegroundIdleFilter(int code, WPARAM wParam, @@ -3757,8 +3758,8 @@ /* diff -Nru openjdk.orig/jdk/src/windows/native/sun/windows/awt_Win32GraphicsEnv.cpp openjdk/jdk/src/windows/native/sun/windows/awt_Win32GraphicsEnv.cpp ---- openjdk.orig/jdk/src/windows/native/sun/windows/awt_Win32GraphicsEnv.cpp 2012-06-08 11:18:48.376779724 +0100 -+++ openjdk/jdk/src/windows/native/sun/windows/awt_Win32GraphicsEnv.cpp 2012-06-08 11:21:24.395337817 +0100 +--- openjdk.orig/jdk/src/windows/native/sun/windows/awt_Win32GraphicsEnv.cpp 2012-08-31 15:49:37.726654345 +0100 ++++ openjdk/jdk/src/windows/native/sun/windows/awt_Win32GraphicsEnv.cpp 2012-08-31 15:53:16.131126978 +0100 @@ -31,6 +31,7 @@ #include "awt_Win32GraphicsDevice.h" #include "Devices.h" @@ -3827,8 +3828,8 @@ dwmIsCompositionEnabled = bRes; diff -Nru openjdk.orig/jdk/src/windows/native/sun/windows/awt_Window.cpp openjdk/jdk/src/windows/native/sun/windows/awt_Window.cpp ---- openjdk.orig/jdk/src/windows/native/sun/windows/awt_Window.cpp 2012-06-08 11:18:48.540782411 +0100 -+++ openjdk/jdk/src/windows/native/sun/windows/awt_Window.cpp 2012-06-08 11:21:24.395337817 +0100 +--- openjdk.orig/jdk/src/windows/native/sun/windows/awt_Window.cpp 2012-08-31 15:49:38.506670366 +0100 ++++ openjdk/jdk/src/windows/native/sun/windows/awt_Window.cpp 2012-08-31 15:53:16.135127059 +0100 @@ -30,6 +30,7 @@ #include "awt_Component.h" #include "awt_Container.h" @@ -4799,8 +4800,8 @@ } /* extern "C" */ diff -Nru openjdk.orig/jdk/src/windows/native/sun/windows/awt_Window.h openjdk/jdk/src/windows/native/sun/windows/awt_Window.h ---- openjdk.orig/jdk/src/windows/native/sun/windows/awt_Window.h 2012-06-08 11:18:48.544782478 +0100 -+++ openjdk/jdk/src/windows/native/sun/windows/awt_Window.h 2012-06-08 11:21:24.399337882 +0100 +--- openjdk.orig/jdk/src/windows/native/sun/windows/awt_Window.h 2012-08-31 15:49:38.522670695 +0100 ++++ openjdk/jdk/src/windows/native/sun/windows/awt_Window.h 2012-08-31 15:53:16.135127059 +0100 @@ -56,6 +56,8 @@ static jfieldID locationByPlatformID; static jfieldID screenID; /* screen number passed over from WindowPeer */ @@ -4940,7 +4941,7 @@ diff -Nru openjdk.orig/jdk/src/windows/native/sun/windows/ComCtl32Util.cpp openjdk/jdk/src/windows/native/sun/windows/ComCtl32Util.cpp --- openjdk.orig/jdk/src/windows/native/sun/windows/ComCtl32Util.cpp 2011-02-28 16:06:52.000000000 +0000 -+++ openjdk/jdk/src/windows/native/sun/windows/ComCtl32Util.cpp 2012-06-08 11:21:24.399337882 +0100 ++++ openjdk/jdk/src/windows/native/sun/windows/ComCtl32Util.cpp 2012-08-31 15:53:16.135127059 +0100 @@ -32,6 +32,7 @@ m_lpfnSetWindowSubclass = NULL; m_lpfnRemoveWindowSubclass = NULL; @@ -4959,7 +4960,7 @@ void ComCtl32Util::FreeLibraries() { diff -Nru openjdk.orig/jdk/src/windows/native/sun/windows/ComCtl32Util.h openjdk/jdk/src/windows/native/sun/windows/ComCtl32Util.h --- openjdk.orig/jdk/src/windows/native/sun/windows/ComCtl32Util.h 2011-02-28 16:06:52.000000000 +0000 -+++ openjdk/jdk/src/windows/native/sun/windows/ComCtl32Util.h 2012-06-08 11:21:24.399337882 +0100 ++++ openjdk/jdk/src/windows/native/sun/windows/ComCtl32Util.h 2012-08-31 15:53:16.135127059 +0100 @@ -63,6 +63,10 @@ return m_bNewSubclassing; } @@ -4982,7 +4983,7 @@ WPARAM wParam, LPARAM lParam, diff -Nru openjdk.orig/jdk/src/windows/native/sun/windows/DllUtil.cpp openjdk/jdk/src/windows/native/sun/windows/DllUtil.cpp --- openjdk.orig/jdk/src/windows/native/sun/windows/DllUtil.cpp 1970-01-01 01:00:00.000000000 +0100 -+++ openjdk/jdk/src/windows/native/sun/windows/DllUtil.cpp 2012-06-08 11:21:24.399337882 +0100 ++++ openjdk/jdk/src/windows/native/sun/windows/DllUtil.cpp 2012-08-31 15:53:16.135127059 +0100 @@ -0,0 +1,87 @@ +/* + * Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved. @@ -5073,7 +5074,7 @@ + diff -Nru openjdk.orig/jdk/src/windows/native/sun/windows/DllUtil.h openjdk/jdk/src/windows/native/sun/windows/DllUtil.h --- openjdk.orig/jdk/src/windows/native/sun/windows/DllUtil.h 1970-01-01 01:00:00.000000000 +0100 -+++ openjdk/jdk/src/windows/native/sun/windows/DllUtil.h 2012-06-08 11:21:24.399337882 +0100 ++++ openjdk/jdk/src/windows/native/sun/windows/DllUtil.h 2012-08-31 15:53:16.135127059 +0100 @@ -0,0 +1,97 @@ +/* + * Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved. @@ -5174,7 +5175,7 @@ + diff -Nru openjdk.orig/jdk/test/java/awt/Focus/CloseDialogActivateOwnerTest/CloseDialogActivateOwnerTest.java openjdk/jdk/test/java/awt/Focus/CloseDialogActivateOwnerTest/CloseDialogActivateOwnerTest.java --- openjdk.orig/jdk/test/java/awt/Focus/CloseDialogActivateOwnerTest/CloseDialogActivateOwnerTest.java 1970-01-01 01:00:00.000000000 +0100 -+++ openjdk/jdk/test/java/awt/Focus/CloseDialogActivateOwnerTest/CloseDialogActivateOwnerTest.java 2012-06-08 11:21:24.399337882 +0100 ++++ openjdk/jdk/test/java/awt/Focus/CloseDialogActivateOwnerTest/CloseDialogActivateOwnerTest.java 2012-08-31 15:53:16.135127059 +0100 @@ -0,0 +1,114 @@ +/* + * Copyright (c) 2008, 2009, Oracle and/or its affiliates. All rights reserved. @@ -5292,14 +5293,14 @@ + diff -Nru openjdk.orig/jdk/test/java/awt/Focus/CloseDialogActivateOwnerTest/java.policy openjdk/jdk/test/java/awt/Focus/CloseDialogActivateOwnerTest/java.policy --- openjdk.orig/jdk/test/java/awt/Focus/CloseDialogActivateOwnerTest/java.policy 1970-01-01 01:00:00.000000000 +0100 -+++ openjdk/jdk/test/java/awt/Focus/CloseDialogActivateOwnerTest/java.policy 2012-06-08 11:21:24.399337882 +0100 ++++ openjdk/jdk/test/java/awt/Focus/CloseDialogActivateOwnerTest/java.policy 2012-08-31 15:53:16.135127059 +0100 @@ -0,0 +1,3 @@ +grant { + permission java.awt.AWTPermission "createRobot"; +}; diff -Nru openjdk.orig/jdk/test/java/awt/Focus/OwnedWindowFocusIMECrashTest/OwnedWindowFocusIMECrashTest.java openjdk/jdk/test/java/awt/Focus/OwnedWindowFocusIMECrashTest/OwnedWindowFocusIMECrashTest.java --- openjdk.orig/jdk/test/java/awt/Focus/OwnedWindowFocusIMECrashTest/OwnedWindowFocusIMECrashTest.java 1970-01-01 01:00:00.000000000 +0100 -+++ openjdk/jdk/test/java/awt/Focus/OwnedWindowFocusIMECrashTest/OwnedWindowFocusIMECrashTest.java 2012-06-08 11:21:24.399337882 +0100 ++++ openjdk/jdk/test/java/awt/Focus/OwnedWindowFocusIMECrashTest/OwnedWindowFocusIMECrashTest.java 2012-08-31 15:53:16.143127223 +0100 @@ -0,0 +1,88 @@ +/* + * Copyright (c) 2008, 2009, Oracle and/or its affiliates. All rights reserved. diff -r f5a3984175d3 -r e067051f7a6e patches/openjdk/6797195-hw_lw_mixing.patch --- a/patches/openjdk/6797195-hw_lw_mixing.patch Wed Jun 13 02:38:51 2012 +0100 +++ b/patches/openjdk/6797195-hw_lw_mixing.patch Fri Aug 31 16:59:45 2012 +0100 @@ -1,6 +1,6 @@ diff -Nru openjdk.orig/jdk/make/sun/awt/Makefile openjdk/jdk/make/sun/awt/Makefile ---- openjdk.orig/jdk/make/sun/awt/Makefile 2011-01-20 23:54:06.000000000 +0000 -+++ openjdk/jdk/make/sun/awt/Makefile 2011-02-16 00:36:10.750531044 +0000 +--- openjdk.orig/jdk/make/sun/awt/Makefile 2011-02-28 16:06:11.000000000 +0000 ++++ openjdk/jdk/make/sun/awt/Makefile 2012-08-31 15:36:02.353702980 +0100 @@ -51,7 +51,7 @@ # sun/awt/resources handled by java/awt/Makefile # sun/java2d/pisces handled by sun/pisces/Makefile @@ -11,8 +11,8 @@ ifeq ($(PLATFORM), windows) diff -Nru openjdk.orig/jdk/make/tools/sharing/classlist.linux openjdk/jdk/make/tools/sharing/classlist.linux ---- openjdk.orig/jdk/make/tools/sharing/classlist.linux 2011-01-20 23:54:06.000000000 +0000 -+++ openjdk/jdk/make/tools/sharing/classlist.linux 2011-02-16 00:36:10.758530424 +0000 +--- openjdk.orig/jdk/make/tools/sharing/classlist.linux 2011-02-28 16:06:12.000000000 +0000 ++++ openjdk/jdk/make/tools/sharing/classlist.linux 2012-08-31 15:36:02.549707107 +0100 @@ -1718,6 +1718,7 @@ sun/awt/color/CMM java/applet/Applet @@ -22,8 +22,8 @@ sun/awt/EmbeddedFrame sun/awt/im/InputMethodContext diff -Nru openjdk.orig/jdk/make/tools/sharing/classlist.solaris openjdk/jdk/make/tools/sharing/classlist.solaris ---- openjdk.orig/jdk/make/tools/sharing/classlist.solaris 2011-01-20 23:54:06.000000000 +0000 -+++ openjdk/jdk/make/tools/sharing/classlist.solaris 2011-02-16 00:36:10.758530424 +0000 +--- openjdk.orig/jdk/make/tools/sharing/classlist.solaris 2011-02-28 16:06:12.000000000 +0000 ++++ openjdk/jdk/make/tools/sharing/classlist.solaris 2012-08-31 15:36:02.549707107 +0100 @@ -961,6 +961,7 @@ javax/swing/SystemEventQueueUtilities$ComponentWorkRequest java/applet/Applet @@ -33,8 +33,8 @@ java/util/jar/Manifest java/io/ByteArrayInputStream diff -Nru openjdk.orig/jdk/make/tools/sharing/classlist.windows openjdk/jdk/make/tools/sharing/classlist.windows ---- openjdk.orig/jdk/make/tools/sharing/classlist.windows 2011-01-20 23:54:06.000000000 +0000 -+++ openjdk/jdk/make/tools/sharing/classlist.windows 2011-02-16 00:36:10.758530424 +0000 +--- openjdk.orig/jdk/make/tools/sharing/classlist.windows 2011-02-28 16:06:12.000000000 +0000 ++++ openjdk/jdk/make/tools/sharing/classlist.windows 2012-08-31 15:36:02.549707107 +0100 @@ -1621,6 +1621,7 @@ sun/font/FontDesignMetrics$MetricsKey java/applet/Applet @@ -45,7 +45,7 @@ java/awt/im/spi/InputMethodContext diff -Nru openjdk.orig/jdk/src/share/classes/com/sun/awt/AWTUtilities.java openjdk/jdk/src/share/classes/com/sun/awt/AWTUtilities.java --- openjdk.orig/jdk/src/share/classes/com/sun/awt/AWTUtilities.java 1970-01-01 01:00:00.000000000 +0100 -+++ openjdk/jdk/src/share/classes/com/sun/awt/AWTUtilities.java 2011-02-16 00:36:10.758530424 +0000 ++++ openjdk/jdk/src/share/classes/com/sun/awt/AWTUtilities.java 2012-08-31 15:36:02.549707107 +0100 @@ -0,0 +1,104 @@ +/* + * Copyright (c) 2008, 2009, Oracle and/or its affiliates. All rights reserved. @@ -152,8 +152,8 @@ +} + diff -Nru openjdk.orig/jdk/src/share/classes/java/awt/Component.java openjdk/jdk/src/share/classes/java/awt/Component.java ---- openjdk.orig/jdk/src/share/classes/java/awt/Component.java 2011-02-16 00:32:37.000000000 +0000 -+++ openjdk/jdk/src/share/classes/java/awt/Component.java 2011-02-16 00:36:10.762530115 +0000 +--- openjdk.orig/jdk/src/share/classes/java/awt/Component.java 2012-08-31 15:35:19.284795451 +0100 ++++ openjdk/jdk/src/share/classes/java/awt/Component.java 2012-08-31 15:36:02.549707107 +0100 @@ -66,8 +66,10 @@ import sun.security.action.GetPropertyAction; @@ -199,7 +199,7 @@ /** * Should only be used in subclass getBounds to check that part of bounds * is actualy changing -@@ -806,6 +812,39 @@ +@@ -925,6 +931,39 @@ } @@ -239,7 +239,7 @@ /** * Constructs a new component. Class Component can be * extended directly to create a lightweight component that does not -@@ -6574,7 +6613,6 @@ +@@ -6693,7 +6732,6 @@ } if (!isAddNotifyComplete) { @@ -247,7 +247,7 @@ mixOnShowing(); } -@@ -6666,9 +6704,11 @@ +@@ -6785,9 +6823,11 @@ p.dispose(); mixOnHiding(isLightweight); @@ -260,7 +260,7 @@ } if (hierarchyListener != null || -@@ -9330,10 +9370,9 @@ +@@ -9453,10 +9493,9 @@ * Null-layout of the container or absence of the container mean * the bounds of the component are final and can be trusted. */ @@ -273,7 +273,7 @@ } /** -@@ -9342,6 +9381,14 @@ +@@ -9465,6 +9504,14 @@ */ void applyCompoundShape(Region shape) { checkTreeLock(); @@ -288,7 +288,7 @@ if (!isLightweight()) { ComponentPeer peer = getPeer(); if (peer != null) { -@@ -9351,22 +9398,31 @@ +@@ -9474,22 +9521,31 @@ // with some incorrect Region object with loX being // greater than the hiX for instance. if (shape.isEmpty()) { @@ -327,7 +327,7 @@ peer.applyShape(shape.getTranslatedRegion(-compAbsolute.x, -compAbsolute.y)); } } -@@ -9389,7 +9445,7 @@ +@@ -9512,7 +9568,7 @@ Point curLocation = getLocation(); for (Container parent = getContainer(); @@ -336,7 +336,7 @@ parent = parent.getContainer()) { curLocation.x += parent.getX(); -@@ -9415,7 +9471,28 @@ +@@ -9538,7 +9594,28 @@ ); } @@ -366,7 +366,7 @@ checkTreeLock(); Container parent = getContainer(); if (parent == null) { -@@ -9427,7 +9504,7 @@ +@@ -9550,7 +9627,7 @@ return nextAbove < 0 ? -1 : nextAbove; } @@ -375,7 +375,7 @@ checkTreeLock(); Container parent = getContainer(); if (parent == null) { -@@ -9439,6 +9516,11 @@ +@@ -9562,6 +9639,11 @@ return nextBelow >= parent.getComponentCount() ? -1 : nextBelow; } @@ -387,7 +387,7 @@ private Region calculateCurrentShape() { checkTreeLock(); Region s = getNormalShape(); -@@ -9461,8 +9543,8 @@ +@@ -9584,8 +9666,8 @@ * implementation of the Container class. */ Component c = cont.getComponent(index); @@ -398,7 +398,7 @@ } } -@@ -9487,6 +9569,9 @@ +@@ -9610,6 +9692,9 @@ void applyCurrentShape() { checkTreeLock(); if (!areBoundsValid()) { @@ -408,7 +408,7 @@ return; // Because applyCompoundShape() ignores such components anyway } if (mixingLog.isLoggable(Level.FINE)) { -@@ -9505,16 +9590,54 @@ +@@ -9628,16 +9713,54 @@ applyCompoundShape(getAppliedShape().getDifference(s)); } @@ -467,7 +467,7 @@ } else { applyCurrentShape(); } -@@ -9528,12 +9651,12 @@ +@@ -9651,12 +9774,12 @@ if (mixingLog.isLoggable(Level.FINE)) { mixingLog.fine("this = " + this + "; isLightweight = " + isLightweight); } @@ -485,7 +485,7 @@ } } -@@ -9542,11 +9665,11 @@ +@@ -9665,11 +9788,11 @@ if (mixingLog.isLoggable(Level.FINE)) { mixingLog.fine("this = " + this); } @@ -501,7 +501,7 @@ } else { applyCurrentShape(); } -@@ -9562,11 +9685,13 @@ +@@ -9685,11 +9808,13 @@ mixingLog.fine("this = " + this + "; oldZorder=" + oldZorder + "; newZorder=" + newZorder + "; parent=" + parent); } @@ -518,7 +518,7 @@ } } else { if (parent != null) { -@@ -9582,8 +9707,8 @@ +@@ -9705,8 +9830,8 @@ for (int index = oldZorder; index < newZorder; index++) { Component c = parent.getComponent(index); @@ -529,7 +529,7 @@ } } applyCompoundShape(shape); -@@ -9593,21 +9718,42 @@ +@@ -9716,21 +9841,42 @@ } } @@ -584,8 +584,8 @@ // ****************** END OF MIXING CODE ******************************** } diff -Nru openjdk.orig/jdk/src/share/classes/java/awt/Container.java openjdk/jdk/src/share/classes/java/awt/Container.java ---- openjdk.orig/jdk/src/share/classes/java/awt/Container.java 2011-02-16 00:32:37.000000000 +0000 -+++ openjdk/jdk/src/share/classes/java/awt/Container.java 2011-02-16 00:36:10.762530115 +0000 +--- openjdk.orig/jdk/src/share/classes/java/awt/Container.java 2012-08-31 15:35:19.284795451 +0100 ++++ openjdk/jdk/src/share/classes/java/awt/Container.java 2012-08-31 15:36:02.553707192 +0100 @@ -569,7 +569,7 @@ * @return true if there is at least one heavyweight children in a container, false otherwise * @since 1.5 @@ -740,8 +740,8 @@ } } diff -Nru openjdk.orig/jdk/src/share/classes/javax/swing/JRootPane.java openjdk/jdk/src/share/classes/javax/swing/JRootPane.java ---- openjdk.orig/jdk/src/share/classes/javax/swing/JRootPane.java 2011-01-20 23:54:21.000000000 +0000 -+++ openjdk/jdk/src/share/classes/javax/swing/JRootPane.java 2011-02-16 00:36:10.762530115 +0000 +--- openjdk.orig/jdk/src/share/classes/javax/swing/JRootPane.java 2011-02-28 16:06:28.000000000 +0000 ++++ openjdk/jdk/src/share/classes/javax/swing/JRootPane.java 2012-08-31 15:36:02.553707192 +0100 @@ -34,6 +34,7 @@ import java.util.Vector; import java.io.Serializable; @@ -761,8 +761,8 @@ if (glassPane != null && glassPane.getParent() == this) { this.remove(glassPane); diff -Nru openjdk.orig/jdk/src/share/classes/sun/awt/AWTAccessor.java openjdk/jdk/src/share/classes/sun/awt/AWTAccessor.java ---- openjdk.orig/jdk/src/share/classes/sun/awt/AWTAccessor.java 2011-02-16 00:32:37.000000000 +0000 -+++ openjdk/jdk/src/share/classes/sun/awt/AWTAccessor.java 2011-02-16 00:37:57.566269674 +0000 +--- openjdk.orig/jdk/src/share/classes/sun/awt/AWTAccessor.java 2012-08-31 15:35:17.976767869 +0100 ++++ openjdk/jdk/src/share/classes/sun/awt/AWTAccessor.java 2012-08-31 15:36:46.582633604 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. @@ -770,7 +770,7 @@ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it -@@ -59,6 +59,12 @@ +@@ -62,6 +62,12 @@ * An interface of accessor for the java.awt.Component class. */ public interface ComponentAccessor { @@ -780,22 +780,22 @@ + * Sets the shape of a lw component to cut out from hw components. + */ + void setMixingCutoutShape(Component comp, Shape shape); - /* - * Returns the acc this component was constructed with. + /** + * Set the horizontal position of the component. */ -@@ -92,6 +98,8 @@ +@@ -519,6 +525,8 @@ * Accessor instances are initialized in the static initializers of * corresponding AWT classes by using setters defined below. */ + /* The java.awt.Component class accessor object. + */ private static ComponentAccessor componentAccessor; - private static AWTEventAccessor awtEventAccessor; + /* The java.awt.KeyboardFocusManager class accessor object. diff -Nru openjdk.orig/jdk/src/share/classes/sun/awt/SunToolkit.java openjdk/jdk/src/share/classes/sun/awt/SunToolkit.java ---- openjdk.orig/jdk/src/share/classes/sun/awt/SunToolkit.java 2011-01-20 23:54:24.000000000 +0000 -+++ openjdk/jdk/src/share/classes/sun/awt/SunToolkit.java 2011-02-16 00:36:10.762530115 +0000 -@@ -1973,6 +1973,21 @@ +--- openjdk.orig/jdk/src/share/classes/sun/awt/SunToolkit.java 2012-08-31 15:35:17.984768038 +0100 ++++ openjdk/jdk/src/share/classes/sun/awt/SunToolkit.java 2012-08-31 15:36:02.553707192 +0100 +@@ -1811,6 +1811,21 @@ AWTAutoShutdown.getInstance().dumpPeers(aLog); } @@ -818,8 +818,8 @@ * Returns true if the native GTK libraries are available. The * default implementation returns false, but UNIXToolkit overrides this diff -Nru openjdk.orig/jdk/src/share/classes/sun/java2d/pipe/Region.java openjdk/jdk/src/share/classes/sun/java2d/pipe/Region.java ---- openjdk.orig/jdk/src/share/classes/sun/java2d/pipe/Region.java 2011-01-20 23:54:26.000000000 +0000 -+++ openjdk/jdk/src/share/classes/sun/java2d/pipe/Region.java 2011-02-16 00:36:10.762530115 +0000 +--- openjdk.orig/jdk/src/share/classes/sun/java2d/pipe/Region.java 2011-02-28 16:06:33.000000000 +0000 ++++ openjdk/jdk/src/share/classes/sun/java2d/pipe/Region.java 2012-08-31 15:36:02.553707192 +0100 @@ -28,6 +28,7 @@ import java.awt.Rectangle; import java.awt.Shape; @@ -895,9 +895,9 @@ return false; } diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XComponentPeer.java openjdk/jdk/src/solaris/classes/sun/awt/X11/XComponentPeer.java ---- openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XComponentPeer.java 2011-01-20 23:54:40.000000000 +0000 -+++ openjdk/jdk/src/solaris/classes/sun/awt/X11/XComponentPeer.java 2011-02-16 00:36:10.762530115 +0000 -@@ -1536,13 +1536,23 @@ +--- openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XComponentPeer.java 2012-08-31 15:35:17.988768122 +0100 ++++ openjdk/jdk/src/solaris/classes/sun/awt/X11/XComponentPeer.java 2012-08-31 15:36:02.553707192 +0100 +@@ -1481,13 +1481,23 @@ } XToolkit.awtLock(); try { @@ -929,8 +929,8 @@ XToolkit.awtUnlock(); } diff -Nru openjdk.orig/jdk/src/solaris/native/sun/xawt/XlibWrapper.c openjdk/jdk/src/solaris/native/sun/xawt/XlibWrapper.c ---- openjdk.orig/jdk/src/solaris/native/sun/xawt/XlibWrapper.c 2011-01-20 23:54:43.000000000 +0000 -+++ openjdk/jdk/src/solaris/native/sun/xawt/XlibWrapper.c 2011-02-16 00:36:10.762530115 +0000 +--- openjdk.orig/jdk/src/solaris/native/sun/xawt/XlibWrapper.c 2011-02-28 16:06:50.000000000 +0000 ++++ openjdk/jdk/src/solaris/native/sun/xawt/XlibWrapper.c 2012-08-31 15:36:02.553707192 +0100 @@ -1933,19 +1933,30 @@ jint x1, jint y1, jint x2, jint y2, jobject region) @@ -972,8 +972,8 @@ } } diff -Nru openjdk.orig/jdk/src/windows/classes/sun/awt/windows/WComponentPeer.java openjdk/jdk/src/windows/classes/sun/awt/windows/WComponentPeer.java ---- openjdk.orig/jdk/src/windows/classes/sun/awt/windows/WComponentPeer.java 2011-01-20 23:54:43.000000000 +0000 -+++ openjdk/jdk/src/windows/classes/sun/awt/windows/WComponentPeer.java 2011-02-16 00:36:10.762530115 +0000 +--- openjdk.orig/jdk/src/windows/classes/sun/awt/windows/WComponentPeer.java 2011-02-28 16:06:51.000000000 +0000 ++++ openjdk/jdk/src/windows/classes/sun/awt/windows/WComponentPeer.java 2012-08-31 15:36:02.553707192 +0100 @@ -878,8 +878,12 @@ + "; SHAPE: " + shape); } @@ -990,9 +990,9 @@ } diff -Nru openjdk.orig/jdk/src/windows/native/sun/windows/awt_Component.cpp openjdk/jdk/src/windows/native/sun/windows/awt_Component.cpp ---- openjdk.orig/jdk/src/windows/native/sun/windows/awt_Component.cpp 2011-02-16 00:32:37.000000000 +0000 -+++ openjdk/jdk/src/windows/native/sun/windows/awt_Component.cpp 2011-02-16 00:36:10.766529806 +0000 -@@ -6315,30 +6315,36 @@ +--- openjdk.orig/jdk/src/windows/native/sun/windows/awt_Component.cpp 2012-08-31 15:35:19.032790138 +0100 ++++ openjdk/jdk/src/windows/native/sun/windows/awt_Component.cpp 2012-08-31 15:36:02.553707192 +0100 +@@ -6321,30 +6321,36 @@ c = (AwtComponent *)pData; if (::IsWindow(c->GetHWnd())) { @@ -1051,7 +1051,7 @@ } diff -Nru openjdk.orig/jdk/test/java/awt/Mixing/HWDisappear.java openjdk/jdk/test/java/awt/Mixing/HWDisappear.java --- openjdk.orig/jdk/test/java/awt/Mixing/HWDisappear.java 1970-01-01 01:00:00.000000000 +0100 -+++ openjdk/jdk/test/java/awt/Mixing/HWDisappear.java 2011-02-16 00:36:10.766529806 +0000 ++++ openjdk/jdk/test/java/awt/Mixing/HWDisappear.java 2012-08-31 15:36:02.553707192 +0100 @@ -0,0 +1,426 @@ +/* + * Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved. @@ -1481,7 +1481,7 @@ +}// TestDialog class diff -Nru openjdk.orig/jdk/test/java/awt/Mixing/JButtonInGlassPane.java openjdk/jdk/test/java/awt/Mixing/JButtonInGlassPane.java --- openjdk.orig/jdk/test/java/awt/Mixing/JButtonInGlassPane.java 1970-01-01 01:00:00.000000000 +0100 -+++ openjdk/jdk/test/java/awt/Mixing/JButtonInGlassPane.java 2011-02-16 00:36:10.766529806 +0000 ++++ openjdk/jdk/test/java/awt/Mixing/JButtonInGlassPane.java 2012-08-31 15:36:02.557707276 +0100 @@ -0,0 +1,430 @@ +/* + * Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved. @@ -1915,7 +1915,7 @@ + diff -Nru openjdk.orig/jdk/test/java/awt/Mixing/LWComboBox.java openjdk/jdk/test/java/awt/Mixing/LWComboBox.java --- openjdk.orig/jdk/test/java/awt/Mixing/LWComboBox.java 1970-01-01 01:00:00.000000000 +0100 -+++ openjdk/jdk/test/java/awt/Mixing/LWComboBox.java 2011-02-16 00:36:10.766529806 +0000 ++++ openjdk/jdk/test/java/awt/Mixing/LWComboBox.java 2012-08-31 15:36:02.557707276 +0100 @@ -0,0 +1,425 @@ +/* + * Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved. @@ -2344,7 +2344,7 @@ + diff -Nru openjdk.orig/jdk/test/java/awt/Mixing/MixingOnShrinkingHWButton.java openjdk/jdk/test/java/awt/Mixing/MixingOnShrinkingHWButton.java --- openjdk.orig/jdk/test/java/awt/Mixing/MixingOnShrinkingHWButton.java 1970-01-01 01:00:00.000000000 +0100 -+++ openjdk/jdk/test/java/awt/Mixing/MixingOnShrinkingHWButton.java 2011-02-16 00:36:10.766529806 +0000 ++++ openjdk/jdk/test/java/awt/Mixing/MixingOnShrinkingHWButton.java 2012-08-31 15:36:02.557707276 +0100 @@ -0,0 +1,429 @@ +/* + * Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved. @@ -2777,7 +2777,7 @@ + diff -Nru openjdk.orig/jdk/test/java/awt/Mixing/NonOpaqueInternalFrame.java openjdk/jdk/test/java/awt/Mixing/NonOpaqueInternalFrame.java --- openjdk.orig/jdk/test/java/awt/Mixing/NonOpaqueInternalFrame.java 1970-01-01 01:00:00.000000000 +0100 -+++ openjdk/jdk/test/java/awt/Mixing/NonOpaqueInternalFrame.java 2011-02-16 00:36:10.766529806 +0000 ++++ openjdk/jdk/test/java/awt/Mixing/NonOpaqueInternalFrame.java 2012-08-31 15:36:02.557707276 +0100 @@ -0,0 +1,434 @@ +/* + * Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved. @@ -3214,8 +3214,8 @@ + + diff -Nru openjdk.orig/jdk/test/java/awt/Mixing/OpaqueTest.java openjdk/jdk/test/java/awt/Mixing/OpaqueTest.java ---- openjdk.orig/jdk/test/java/awt/Mixing/OpaqueTest.java 2011-01-20 23:54:46.000000000 +0000 -+++ openjdk/jdk/test/java/awt/Mixing/OpaqueTest.java 2011-02-16 00:36:10.766529806 +0000 +--- openjdk.orig/jdk/test/java/awt/Mixing/OpaqueTest.java 2011-02-28 16:06:54.000000000 +0000 ++++ openjdk/jdk/test/java/awt/Mixing/OpaqueTest.java 2012-08-31 15:36:02.557707276 +0100 @@ -42,6 +42,7 @@ import java.awt.event.*; import javax.swing.*; @@ -3256,8 +3256,8 @@ robot.mousePress(InputEvent.BUTTON1_MASK); diff -Nru openjdk.orig/jdk/test/java/awt/Mixing/OverlappingButtons.java openjdk/jdk/test/java/awt/Mixing/OverlappingButtons.java ---- openjdk.orig/jdk/test/java/awt/Mixing/OverlappingButtons.java 2011-01-20 23:54:46.000000000 +0000 -+++ openjdk/jdk/test/java/awt/Mixing/OverlappingButtons.java 2011-02-16 00:36:10.766529806 +0000 +--- openjdk.orig/jdk/test/java/awt/Mixing/OverlappingButtons.java 2011-02-28 16:06:54.000000000 +0000 ++++ openjdk/jdk/test/java/awt/Mixing/OverlappingButtons.java 2012-08-31 15:36:02.557707276 +0100 @@ -78,6 +78,7 @@ { public void actionPerformed(java.awt.event.ActionEvent e) { diff -r f5a3984175d3 -r e067051f7a6e patches/openjdk/7185678-xmenuitem_peer_npe.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/openjdk/7185678-xmenuitem_peer_npe.patch Fri Aug 31 16:59:45 2012 +0100 @@ -0,0 +1,21 @@ +# HG changeset patch +# User bagiras +# Date 1344257258 -14400 +# Node ID b3f231f73076617e11b4538d746e8e3733d817ed +# Parent 94d09decd35e887c353d59c37823a5ece6a71176 +7185678: java/awt/Menu/NullMenuLabelTest/NullMenuLabelTest.java failed with NPE +Reviewed-by: art, ahgross + +diff --git a/src/solaris/classes/sun/awt/X11/XMenuItemPeer.java b/src/solaris/classes/sun/awt/X11/XMenuItemPeer.java +--- openjdk/jdk/src/solaris/classes/sun/awt/X11/XMenuItemPeer.java ++++ openjdk/jdk/src/solaris/classes/sun/awt/X11/XMenuItemPeer.java +@@ -202,7 +202,8 @@ + if (target == null) { + return ""; + } +- return AWTAccessor.getMenuItemAccessor().getLabel(target); ++ String label = AWTAccessor.getMenuItemAccessor().getLabel(target); ++ return (label == null) ? "" : label; + } + + boolean isTargetEnabled() { diff -r f5a3984175d3 -r e067051f7a6e patches/security/20120830/7162476-xmldecoder_via_classfinder.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/security/20120830/7162476-xmldecoder_via_classfinder.patch Fri Aug 31 16:59:45 2012 +0100 @@ -0,0 +1,2522 @@ +diff --git a/make/sun/Makefile b/make/sun/Makefile +--- openjdk/jdk/make/sun/Makefile ++++ openjdk/jdk/make/sun/Makefile +@@ -64,7 +64,7 @@ + SUBDIRS = jar security javazic misc net audio $(RENDER_SUBDIR) image \ + awt splashscreen $(XAWT_SUBDIR) $(MOTIF_SUBDIRS) \ + $(HEADLESS_SUBDIR) $(DGA_SUBDIR) \ +- font jpeg cmm applet rmi beans $(JDBC_SUBDIR) \ ++ font jpeg cmm applet rmi $(JDBC_SUBDIR) \ + jawt text nio launcher management $(ORG_SUBDIR) \ + native2ascii serialver tools jconsole + +diff --git a/make/sun/beans/Makefile b/make/sun/beans/Makefile +deleted file mode 100644 +--- openjdk/jdk/make/sun/beans/Makefile ++++ /dev/null +@@ -1,43 +0,0 @@ +-# +-# Copyright (c) 1997, 2005, 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. Oracle designates this +-# particular file as subject to the "Classpath" exception as provided +-# by Oracle in the LICENSE file that accompanied this code. +-# +-# 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. +-# +- +-# +-# Makefile for building sun.beans.* +-# +- +-BUILDDIR = ../.. +-PACKAGE = sun.beans +-PRODUCT = sun +-include $(BUILDDIR)/common/Defs.gmk +- +-# +-# Files +-# +-AUTO_FILES_JAVA_DIRS = sun/beans +- +-# +-# Rules +-# +-include $(BUILDDIR)/common/Classes.gmk +diff --git a/src/share/classes/com/sun/beans/editors/BooleanEditor.java b/src/share/classes/com/sun/beans/editors/BooleanEditor.java +new file mode 100644 +--- /dev/null ++++ openjdk/jdk/src/share/classes/com/sun/beans/editors/BooleanEditor.java +@@ -0,0 +1,76 @@ ++/* ++ * Copyright (c) 2006, 2012, 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. Oracle designates this ++ * particular file as subject to the "Classpath" exception as provided ++ * by Oracle in the LICENSE file that accompanied this code. ++ * ++ * 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. ++ */ ++ ++package com.sun.beans.editors; ++ ++/** ++ * Property editor for a java builtin "boolean" type. ++ */ ++ ++import java.beans.*; ++ ++public class BooleanEditor extends PropertyEditorSupport { ++ ++ ++ public String getJavaInitializationString() { ++ Object value = getValue(); ++ return (value != null) ++ ? value.toString() ++ : "null"; ++ } ++ ++ public String getAsText() { ++ Object value = getValue(); ++ return (value instanceof Boolean) ++ ? getValidName((Boolean) value) ++ : "null"; ++ } ++ ++ public void setAsText(String text) throws java.lang.IllegalArgumentException { ++ if (text == null) { ++ setValue(null); ++ } else if (isValidName(true, text)) { ++ setValue(Boolean.TRUE); ++ } else if (isValidName(false, text)) { ++ setValue(Boolean.FALSE); ++ } else { ++ throw new java.lang.IllegalArgumentException(text); ++ } ++ } ++ ++ public String[] getTags() { ++ return new String[] {getValidName(true), getValidName(false)}; ++ } ++ ++ // the following method should be localized (4890258) ++ ++ private String getValidName(boolean value) { ++ return value ? "True" : "False"; ++ } ++ ++ private boolean isValidName(boolean value, String name) { ++ return getValidName(value).equalsIgnoreCase(name); ++ } ++} +diff --git a/src/share/classes/com/sun/beans/editors/ByteEditor.java b/src/share/classes/com/sun/beans/editors/ByteEditor.java +new file mode 100644 +--- /dev/null ++++ openjdk/jdk/src/share/classes/com/sun/beans/editors/ByteEditor.java +@@ -0,0 +1,48 @@ ++/* ++ * Copyright (c) 1996, 2012, 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. Oracle designates this ++ * particular file as subject to the "Classpath" exception as provided ++ * by Oracle in the LICENSE file that accompanied this code. ++ * ++ * 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. ++ */ ++ ++package com.sun.beans.editors; ++ ++/** ++ * Property editor for a java builtin "byte" type. ++ * ++ */ ++ ++import java.beans.*; ++ ++public class ByteEditor extends NumberEditor { ++ ++ public String getJavaInitializationString() { ++ Object value = getValue(); ++ return (value != null) ++ ? "((byte)" + value + ")" ++ : "null"; ++ } ++ ++ public void setAsText(String text) throws IllegalArgumentException { ++ setValue((text == null) ? null : Byte.decode(text)); ++ } ++ ++} +diff --git a/src/share/classes/com/sun/beans/editors/ColorEditor.java b/src/share/classes/com/sun/beans/editors/ColorEditor.java +new file mode 100644 +--- /dev/null ++++ openjdk/jdk/src/share/classes/com/sun/beans/editors/ColorEditor.java +@@ -0,0 +1,212 @@ ++/* ++ * Copyright (c) 1996, 2012, 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. Oracle designates this ++ * particular file as subject to the "Classpath" exception as provided ++ * by Oracle in the LICENSE file that accompanied this code. ++ * ++ * 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. ++ */ ++ ++package com.sun.beans.editors; ++ ++import java.awt.*; ++import java.beans.*; ++ ++public class ColorEditor extends Panel implements PropertyEditor { ++ public ColorEditor() { ++ setLayout(null); ++ ++ ourWidth = hPad; ++ ++ // Create a sample color block bordered in black ++ Panel p = new Panel(); ++ p.setLayout(null); ++ p.setBackground(Color.black); ++ sample = new Canvas(); ++ p.add(sample); ++ sample.reshape(2, 2, sampleWidth, sampleHeight); ++ add(p); ++ p.reshape(ourWidth, 2, sampleWidth+4, sampleHeight+4); ++ ourWidth += sampleWidth + 4 + hPad; ++ ++ text = new TextField("", 14); ++ add(text); ++ text.reshape(ourWidth,0,100,30); ++ ourWidth += 100 + hPad; ++ ++ choser = new Choice(); ++ int active = 0; ++ for (int i = 0; i < colorNames.length; i++) { ++ choser.addItem(colorNames[i]); ++ } ++ add(choser); ++ choser.reshape(ourWidth,0,100,30); ++ ourWidth += 100 + hPad; ++ ++ resize(ourWidth,40); ++ } ++ ++ public void setValue(Object o) { ++ Color c = (Color)o; ++ changeColor(c); ++ } ++ ++ public Dimension preferredSize() { ++ return new Dimension(ourWidth, 40); ++ } ++ ++ public boolean keyUp(Event e, int key) { ++ if (e.target == text) { ++ try { ++ setAsText(text.getText()); ++ } catch (IllegalArgumentException ex) { ++ // Quietly ignore. ++ } ++ } ++ return (false); ++ } ++ ++ public void setAsText(String s) throws java.lang.IllegalArgumentException { ++ if (s == null) { ++ changeColor(null); ++ return; ++ } ++ int c1 = s.indexOf(','); ++ int c2 = s.indexOf(',', c1+1); ++ if (c1 < 0 || c2 < 0) { ++ // Invalid string. ++ throw new IllegalArgumentException(s); ++ } ++ try { ++ int r = Integer.parseInt(s.substring(0,c1)); ++ int g = Integer.parseInt(s.substring(c1+1, c2)); ++ int b = Integer.parseInt(s.substring(c2+1)); ++ Color c = new Color(r,g,b); ++ changeColor(c); ++ } catch (Exception ex) { ++ throw new IllegalArgumentException(s); ++ } ++ ++ } ++ ++ public boolean action(Event e, Object arg) { ++ if (e.target == choser) { ++ changeColor(colors[choser.getSelectedIndex()]); ++ } ++ return false; ++ } ++ ++ public String getJavaInitializationString() { ++ return (this.color != null) ++ ? "new java.awt.Color(" + this.color.getRGB() + ",true)" ++ : "null"; ++ } ++ ++ ++ private void changeColor(Color c) { ++ ++ if (c == null) { ++ this.color = null; ++ this.text.setText(""); ++ return; ++ } ++ ++ color = c; ++ ++ text.setText("" + c.getRed() + "," + c.getGreen() + "," + c.getBlue()); ++ ++ int active = 0; ++ for (int i = 0; i < colorNames.length; i++) { ++ if (color.equals(colors[i])) { ++ active = i; ++ } ++ } ++ choser.select(active); ++ ++ sample.setBackground(color); ++ sample.repaint(); ++ ++ support.firePropertyChange("", null, null); ++ } ++ ++ public Object getValue() { ++ return color; ++ } ++ ++ public boolean isPaintable() { ++ return true; ++ } ++ ++ public void paintValue(java.awt.Graphics gfx, java.awt.Rectangle box) { ++ Color oldColor = gfx.getColor(); ++ gfx.setColor(Color.black); ++ gfx.drawRect(box.x, box.y, box.width-3, box.height-3); ++ gfx.setColor(color); ++ gfx.fillRect(box.x+1, box.y+1, box.width-4, box.height-4); ++ gfx.setColor(oldColor); ++ } ++ ++ public String getAsText() { ++ return (this.color != null) ++ ? this.color.getRed() + "," + this.color.getGreen() + "," + this.color.getBlue() ++ : "null"; ++ } ++ ++ public String[] getTags() { ++ return null; ++ } ++ ++ public java.awt.Component getCustomEditor() { ++ return this; ++ } ++ ++ public boolean supportsCustomEditor() { ++ return true; ++ } ++ ++ public void addPropertyChangeListener(PropertyChangeListener l) { ++ support.addPropertyChangeListener(l); ++ } ++ ++ public void removePropertyChangeListener(PropertyChangeListener l) { ++ support.removePropertyChangeListener(l); ++ } ++ ++ ++ private String colorNames[] = { " ", "white", "lightGray", "gray", "darkGray", ++ "black", "red", "pink", "orange", ++ "yellow", "green", "magenta", "cyan", ++ "blue"}; ++ private Color colors[] = { null, Color.white, Color.lightGray, Color.gray, Color.darkGray, ++ Color.black, Color.red, Color.pink, Color.orange, ++ Color.yellow, Color.green, Color.magenta, Color.cyan, ++ Color.blue}; ++ ++ private Canvas sample; ++ private int sampleHeight = 20; ++ private int sampleWidth = 40; ++ private int hPad = 5; ++ private int ourWidth; ++ ++ private Color color; ++ private TextField text; ++ private Choice choser; ++ ++ private PropertyChangeSupport support = new PropertyChangeSupport(this); ++} +diff --git a/src/share/classes/com/sun/beans/editors/DoubleEditor.java b/src/share/classes/com/sun/beans/editors/DoubleEditor.java +new file mode 100644 +--- /dev/null ++++ openjdk/jdk/src/share/classes/com/sun/beans/editors/DoubleEditor.java +@@ -0,0 +1,41 @@ ++/* ++ * Copyright (c) 1996, 2012, 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. Oracle designates this ++ * particular file as subject to the "Classpath" exception as provided ++ * by Oracle in the LICENSE file that accompanied this code. ++ * ++ * 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. ++ */ ++ ++package com.sun.beans.editors; ++ ++/** ++ * Property editor for a java builtin "double" type. ++ * ++ */ ++ ++import java.beans.*; ++ ++public class DoubleEditor extends NumberEditor { ++ ++ public void setAsText(String text) throws IllegalArgumentException { ++ setValue((text == null) ? null : Double.valueOf(text)); ++ } ++ ++} +diff --git a/src/share/classes/com/sun/beans/editors/EnumEditor.java b/src/share/classes/com/sun/beans/editors/EnumEditor.java +new file mode 100644 +--- /dev/null ++++ openjdk/jdk/src/share/classes/com/sun/beans/editors/EnumEditor.java +@@ -0,0 +1,142 @@ ++/* ++ * Copyright (c) 2006, 2012, 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. Oracle designates this ++ * particular file as subject to the "Classpath" exception as provided ++ * by Oracle in the LICENSE file that accompanied this code. ++ * ++ * 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. ++ */ ++package com.sun.beans.editors; ++ ++import java.awt.Component; ++import java.awt.Graphics; ++import java.awt.Rectangle; ++import java.beans.PropertyChangeEvent; ++import java.beans.PropertyChangeListener; ++import java.beans.PropertyEditor; ++import java.util.ArrayList; ++import java.util.List; ++ ++/** ++ * Property editor for java.lang.Enum subclasses. ++ * ++ * @see PropertyEditor ++ * ++ * @since 1.7 ++ * ++ * @author Sergey A. Malenkov ++ */ ++public final class EnumEditor implements PropertyEditor { ++ private final List listeners = new ArrayList(); ++ ++ private final Class type; ++ private final String[] tags; ++ ++ private Object value; ++ ++ public EnumEditor( Class type ) { ++ Object[] values = type.getEnumConstants(); ++ if ( values == null ) { ++ throw new IllegalArgumentException( "Unsupported " + type ); ++ } ++ this.type = type; ++ this.tags = new String[values.length]; ++ for ( int i = 0; i < values.length; i++ ) { ++ this.tags[i] = ( ( Enum )values[i] ).name(); ++ } ++ } ++ ++ public Object getValue() { ++ return this.value; ++ } ++ ++ public void setValue( Object value ) { ++ if ( ( value != null ) && !this.type.isInstance( value ) ) { ++ throw new IllegalArgumentException( "Unsupported value: " + value ); ++ } ++ Object oldValue; ++ PropertyChangeListener[] listeners; ++ synchronized ( this.listeners ) { ++ oldValue = this.value; ++ this.value = value; ++ ++ if ( ( value == null ) ? oldValue == null : value.equals( oldValue ) ) { ++ return; // do not fire event if value is not changed ++ } ++ int size = this.listeners.size(); ++ if ( size == 0 ) { ++ return; // do not fire event if there are no any listener ++ } ++ listeners = this.listeners.toArray( new PropertyChangeListener[size] ); ++ } ++ PropertyChangeEvent event = new PropertyChangeEvent( this, null, oldValue, value ); ++ for ( PropertyChangeListener listener : listeners ) { ++ listener.propertyChange( event ); ++ } ++ } ++ ++ public String getAsText() { ++ return ( this.value != null ) ++ ? ( ( Enum )this.value ).name() ++ : "null"; ++ } ++ ++ public void setAsText( String text ) { ++ setValue( ( text != null ) ++ ? Enum.valueOf( this.type, text ) ++ : null ); ++ } ++ ++ public String[] getTags() { ++ return this.tags.clone(); ++ } ++ ++ public String getJavaInitializationString() { ++ return ( this.value != null ) ++ ? this.type.getName() + '.' + ( ( Enum )this.value ).name() ++ : "null"; ++ } ++ ++ public boolean isPaintable() { ++ return false; ++ } ++ ++ public void paintValue( Graphics gfx, Rectangle box ) { ++ } ++ ++ public boolean supportsCustomEditor() { ++ return false; ++ } ++ ++ public Component getCustomEditor() { ++ return null; ++ } ++ ++ public void addPropertyChangeListener( PropertyChangeListener listener ) { ++ synchronized ( this.listeners ) { ++ this.listeners.add( listener ); ++ } ++ } ++ ++ public void removePropertyChangeListener( PropertyChangeListener listener ) { ++ synchronized ( this.listeners ) { ++ this.listeners.remove( listener ); ++ } ++ } ++} +diff --git a/src/share/classes/com/sun/beans/editors/FloatEditor.java b/src/share/classes/com/sun/beans/editors/FloatEditor.java +new file mode 100644 +--- /dev/null ++++ openjdk/jdk/src/share/classes/com/sun/beans/editors/FloatEditor.java +@@ -0,0 +1,48 @@ ++/* ++ * Copyright (c) 1996, 2012, 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. Oracle designates this ++ * particular file as subject to the "Classpath" exception as provided ++ * by Oracle in the LICENSE file that accompanied this code. ++ * ++ * 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. ++ */ ++ ++package com.sun.beans.editors; ++ ++/** ++ * Property editor for a java builtin "float" type. ++ * ++ */ ++ ++import java.beans.*; ++ ++public class FloatEditor extends NumberEditor { ++ ++ public String getJavaInitializationString() { ++ Object value = getValue(); ++ return (value != null) ++ ? value + "F" ++ : "null"; ++ } ++ ++ public void setAsText(String text) throws IllegalArgumentException { ++ setValue((text == null) ? null : Float.valueOf(text)); ++ } ++ ++} +diff --git a/src/share/classes/com/sun/beans/editors/FontEditor.java b/src/share/classes/com/sun/beans/editors/FontEditor.java +new file mode 100644 +--- /dev/null ++++ openjdk/jdk/src/share/classes/com/sun/beans/editors/FontEditor.java +@@ -0,0 +1,218 @@ ++/* ++ * Copyright (c) 1996, 2012, 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. Oracle designates this ++ * particular file as subject to the "Classpath" exception as provided ++ * by Oracle in the LICENSE file that accompanied this code. ++ * ++ * 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. ++ */ ++ ++package com.sun.beans.editors; ++ ++import java.awt.*; ++import java.beans.*; ++ ++public class FontEditor extends Panel implements java.beans.PropertyEditor { ++ ++ public FontEditor() { ++ setLayout(null); ++ ++ toolkit = Toolkit.getDefaultToolkit(); ++ fonts = toolkit.getFontList(); ++ ++ familyChoser = new Choice(); ++ for (int i = 0; i < fonts.length; i++) { ++ familyChoser.addItem(fonts[i]); ++ } ++ add(familyChoser); ++ familyChoser.reshape(20, 5, 100, 30); ++ ++ styleChoser = new Choice(); ++ for (int i = 0; i < styleNames.length; i++) { ++ styleChoser.addItem(styleNames[i]); ++ } ++ add(styleChoser); ++ styleChoser.reshape(145, 5, 70, 30); ++ ++ sizeChoser = new Choice(); ++ for (int i = 0; i < pointSizes.length; i++) { ++ sizeChoser.addItem("" + pointSizes[i]); ++ } ++ add(sizeChoser); ++ sizeChoser.reshape(220, 5, 70, 30); ++ ++ resize(300,40); ++ } ++ ++ ++ public Dimension preferredSize() { ++ return new Dimension(300, 40); ++ } ++ ++ public void setValue(Object o) { ++ font = (Font) o; ++ if (this.font == null) ++ return; ++ ++ changeFont(font); ++ // Update the current GUI choices. ++ for (int i = 0; i < fonts.length; i++) { ++ if (fonts[i].equals(font.getFamily())) { ++ familyChoser.select(i); ++ break; ++ } ++ } ++ for (int i = 0; i < styleNames.length; i++) { ++ if (font.getStyle() == styles[i]) { ++ styleChoser.select(i); ++ break; ++ } ++ } ++ for (int i = 0; i < pointSizes.length; i++) { ++ if (font.getSize() <= pointSizes[i]) { ++ sizeChoser.select(i); ++ break; ++ } ++ } ++ } ++ ++ private void changeFont(Font f) { ++ font = f; ++ if (sample != null) { ++ remove(sample); ++ } ++ sample = new Label(sampleText); ++ sample.setFont(font); ++ add(sample); ++ Component p = getParent(); ++ if (p != null) { ++ p.invalidate(); ++ p.layout(); ++ } ++ invalidate(); ++ layout(); ++ repaint(); ++ support.firePropertyChange("", null, null); ++ } ++ ++ public Object getValue() { ++ return (font); ++ } ++ ++ public String getJavaInitializationString() { ++ if (this.font == null) ++ return "null"; ++ ++ return "new java.awt.Font(\"" + font.getName() + "\", " + ++ font.getStyle() + ", " + font.getSize() + ")"; ++ } ++ ++ public boolean action(Event e, Object arg) { ++ String family = familyChoser.getSelectedItem(); ++ int style = styles[styleChoser.getSelectedIndex()]; ++ int size = pointSizes[sizeChoser.getSelectedIndex()]; ++ try { ++ Font f = new Font(family, style, size); ++ changeFont(f); ++ } catch (Exception ex) { ++ System.err.println("Couldn't create font " + family + "-" + ++ styleNames[style] + "-" + size); ++ } ++ return (false); ++ } ++ ++ ++ public boolean isPaintable() { ++ return true; ++ } ++ ++ public void paintValue(java.awt.Graphics gfx, java.awt.Rectangle box) { ++ // Silent noop. ++ Font oldFont = gfx.getFont(); ++ gfx.setFont(font); ++ FontMetrics fm = gfx.getFontMetrics(); ++ int vpad = (box.height - fm.getAscent())/2; ++ gfx.drawString(sampleText, 0, box.height-vpad); ++ gfx.setFont(oldFont); ++ } ++ ++ public String getAsText() { ++ if (this.font == null) { ++ return "null"; ++ } ++ StringBuilder sb = new StringBuilder(); ++ sb.append(this.font.getName()); ++ sb.append(' '); ++ ++ boolean b = this.font.isBold(); ++ if (b) { ++ sb.append("BOLD"); ++ } ++ boolean i = this.font.isItalic(); ++ if (i) { ++ sb.append("ITALIC"); ++ } ++ if (b || i) { ++ sb.append(' '); ++ } ++ sb.append(this.font.getSize()); ++ return sb.toString(); ++ } ++ ++ public void setAsText(String text) throws IllegalArgumentException { ++ setValue((text == null) ? null : Font.decode(text)); ++ } ++ ++ public String[] getTags() { ++ return null; ++ } ++ ++ public java.awt.Component getCustomEditor() { ++ return this; ++ } ++ ++ public boolean supportsCustomEditor() { ++ return true; ++ } ++ ++ public void addPropertyChangeListener(PropertyChangeListener l) { ++ support.addPropertyChangeListener(l); ++ } ++ ++ public void removePropertyChangeListener(PropertyChangeListener l) { ++ support.removePropertyChangeListener(l); ++ } ++ ++ private Font font; ++ private Toolkit toolkit; ++ private String sampleText = "Abcde..."; ++ ++ private Label sample; ++ private Choice familyChoser; ++ private Choice styleChoser; ++ private Choice sizeChoser; ++ ++ private String fonts[]; ++ private String[] styleNames = { "plain", "bold", "italic" }; ++ private int[] styles = { Font.PLAIN, Font.BOLD, Font.ITALIC }; ++ private int[] pointSizes = { 3, 5, 8, 10, 12, 14, 18, 24, 36, 48 }; ++ ++ private PropertyChangeSupport support = new PropertyChangeSupport(this); ++ ++} +diff --git a/src/share/classes/com/sun/beans/editors/IntegerEditor.java b/src/share/classes/com/sun/beans/editors/IntegerEditor.java +new file mode 100644 +--- /dev/null ++++ openjdk/jdk/src/share/classes/com/sun/beans/editors/IntegerEditor.java +@@ -0,0 +1,42 @@ ++/* ++ * Copyright (c) 2006, 2012, 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. Oracle designates this ++ * particular file as subject to the "Classpath" exception as provided ++ * by Oracle in the LICENSE file that accompanied this code. ++ * ++ * 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. ++ */ ++ ++package com.sun.beans.editors; ++ ++/** ++ * Property editor for a java builtin "int" type. ++ * ++ */ ++ ++import java.beans.*; ++ ++public class IntegerEditor extends NumberEditor { ++ ++ ++ public void setAsText(String text) throws IllegalArgumentException { ++ setValue((text == null) ? null : Integer.decode(text)); ++ } ++ ++} +diff --git a/src/share/classes/com/sun/beans/editors/LongEditor.java b/src/share/classes/com/sun/beans/editors/LongEditor.java +new file mode 100644 +--- /dev/null ++++ openjdk/jdk/src/share/classes/com/sun/beans/editors/LongEditor.java +@@ -0,0 +1,48 @@ ++/* ++ * Copyright (c) 1996, 2012, 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. Oracle designates this ++ * particular file as subject to the "Classpath" exception as provided ++ * by Oracle in the LICENSE file that accompanied this code. ++ * ++ * 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. ++ */ ++ ++package com.sun.beans.editors; ++ ++/** ++ * Property editor for a java builtin "long" type. ++ * ++ */ ++ ++import java.beans.*; ++ ++public class LongEditor extends NumberEditor { ++ ++ public String getJavaInitializationString() { ++ Object value = getValue(); ++ return (value != null) ++ ? value + "L" ++ : "null"; ++ } ++ ++ public void setAsText(String text) throws IllegalArgumentException { ++ setValue((text == null) ? null : Long.decode(text)); ++ } ++ ++} +diff --git a/src/share/classes/com/sun/beans/editors/NumberEditor.java b/src/share/classes/com/sun/beans/editors/NumberEditor.java +new file mode 100644 +--- /dev/null ++++ openjdk/jdk/src/share/classes/com/sun/beans/editors/NumberEditor.java +@@ -0,0 +1,44 @@ ++/* ++ * Copyright (c) 1996, 2012, 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. Oracle designates this ++ * particular file as subject to the "Classpath" exception as provided ++ * by Oracle in the LICENSE file that accompanied this code. ++ * ++ * 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. ++ */ ++ ++package com.sun.beans.editors; ++ ++/** ++ * Abstract Property editor for a java builtin number types. ++ * ++ */ ++ ++import java.beans.*; ++ ++abstract public class NumberEditor extends PropertyEditorSupport { ++ ++ public String getJavaInitializationString() { ++ Object value = getValue(); ++ return (value != null) ++ ? value.toString() ++ : "null"; ++ } ++ ++} +diff --git a/src/share/classes/com/sun/beans/editors/ShortEditor.java b/src/share/classes/com/sun/beans/editors/ShortEditor.java +new file mode 100644 +--- /dev/null ++++ openjdk/jdk/src/share/classes/com/sun/beans/editors/ShortEditor.java +@@ -0,0 +1,49 @@ ++/* ++ * Copyright (c) 1996, 2012, 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. Oracle designates this ++ * particular file as subject to the "Classpath" exception as provided ++ * by Oracle in the LICENSE file that accompanied this code. ++ * ++ * 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. ++ */ ++ ++ ++package com.sun.beans.editors; ++ ++/** ++ * Property editor for a java builtin "short" type. ++ * ++ */ ++ ++import java.beans.*; ++ ++public class ShortEditor extends NumberEditor { ++ ++ public String getJavaInitializationString() { ++ Object value = getValue(); ++ return (value != null) ++ ? "((short)" + value + ")" ++ : "null"; ++ } ++ ++ public void setAsText(String text) throws IllegalArgumentException { ++ setValue((text == null) ? null : Short.decode(text)); ++ } ++ ++} +diff --git a/src/share/classes/com/sun/beans/editors/StringEditor.java b/src/share/classes/com/sun/beans/editors/StringEditor.java +new file mode 100644 +--- /dev/null ++++ openjdk/jdk/src/share/classes/com/sun/beans/editors/StringEditor.java +@@ -0,0 +1,74 @@ ++/* ++ * Copyright (c) 1996, 2012, 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. Oracle designates this ++ * particular file as subject to the "Classpath" exception as provided ++ * by Oracle in the LICENSE file that accompanied this code. ++ * ++ * 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. ++ */ ++ ++ ++package com.sun.beans.editors; ++ ++import java.beans.*; ++ ++public class StringEditor extends PropertyEditorSupport { ++ ++ public String getJavaInitializationString() { ++ Object value = getValue(); ++ if (value == null) ++ return "null"; ++ ++ String str = value.toString(); ++ int length = str.length(); ++ StringBuilder sb = new StringBuilder(length + 2); ++ sb.append('"'); ++ for (int i = 0; i < length; i++) { ++ char ch = str.charAt(i); ++ switch (ch) { ++ case '\b': sb.append("\\b"); break; ++ case '\t': sb.append("\\t"); break; ++ case '\n': sb.append("\\n"); break; ++ case '\f': sb.append("\\f"); break; ++ case '\r': sb.append("\\r"); break; ++ case '\"': sb.append("\\\""); break; ++ case '\\': sb.append("\\\\"); break; ++ default: ++ if ((ch < ' ') || (ch > '~')) { ++ sb.append("\\u"); ++ String hex = Integer.toHexString((int) ch); ++ for (int len = hex.length(); len < 4; len++) { ++ sb.append('0'); ++ } ++ sb.append(hex); ++ } else { ++ sb.append(ch); ++ } ++ break; ++ } ++ } ++ sb.append('"'); ++ return sb.toString(); ++ } ++ ++ public void setAsText(String text) { ++ setValue(text); ++ } ++ ++} +diff --git a/src/share/classes/com/sun/beans/finder/ClassFinder.java b/src/share/classes/com/sun/beans/finder/ClassFinder.java +--- openjdk/jdk/src/share/classes/com/sun/beans/finder/ClassFinder.java ++++ openjdk/jdk/src/share/classes/com/sun/beans/finder/ClassFinder.java +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved. ++ * Copyright (c) 2006, 2012, 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 +@@ -24,6 +24,8 @@ + */ + package com.sun.beans.finder; + ++import static sun.reflect.misc.ReflectUtil.checkPackageAccess; ++ + /** + * This is utility class that provides static methods + * to find a class with the specified name using the specified class loader. +@@ -53,6 +55,7 @@ + * @see Thread#getContextClassLoader() + */ + public static Class findClass( String name ) throws ClassNotFoundException { ++ checkPackageAccess(name); + try { + ClassLoader loader = Thread.currentThread().getContextClassLoader(); + if ( loader == null ) { +@@ -93,6 +96,7 @@ + * @see Class#forName(String,boolean,ClassLoader) + */ + public static Class findClass( String name, ClassLoader loader ) throws ClassNotFoundException { ++ checkPackageAccess(name); + if ( loader != null ) { + try { + return Class.forName( name, false, loader ); +diff --git a/src/share/classes/com/sun/beans/infos/ComponentBeanInfo.java b/src/share/classes/com/sun/beans/infos/ComponentBeanInfo.java +new file mode 100644 +--- /dev/null ++++ openjdk/jdk/src/share/classes/com/sun/beans/infos/ComponentBeanInfo.java +@@ -0,0 +1,62 @@ ++/* ++ * Copyright (c) 1996, 2012, 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. Oracle designates this ++ * particular file as subject to the "Classpath" exception as provided ++ * by Oracle in the LICENSE file that accompanied this code. ++ * ++ * 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. ++ */ ++ ++package com.sun.beans.infos; ++ ++import java.beans.*; ++ ++/** ++ * BeanInfo descriptor for a standard AWT component. ++ */ ++ ++public class ComponentBeanInfo extends SimpleBeanInfo { ++ private static final Class beanClass = java.awt.Component.class; ++ ++ public PropertyDescriptor[] getPropertyDescriptors() { ++ try { ++ PropertyDescriptor ++ name = new PropertyDescriptor("name", beanClass), ++ background = new PropertyDescriptor("background", beanClass), ++ foreground = new PropertyDescriptor("foreground", beanClass), ++ font = new PropertyDescriptor("font", beanClass), ++ enabled = new PropertyDescriptor("enabled", beanClass), ++ visible = new PropertyDescriptor("visible", beanClass), ++ focusable = new PropertyDescriptor("focusable", beanClass); ++ ++ enabled.setExpert(true); ++ visible.setHidden(true); ++ ++ background.setBound(true); ++ foreground.setBound(true); ++ font.setBound(true); ++ focusable.setBound(true); ++ ++ PropertyDescriptor[] rv = {name, background, foreground, font, enabled, visible, focusable }; ++ return rv; ++ } catch (IntrospectionException e) { ++ throw new Error(e.toString()); ++ } ++ } ++} +diff --git a/src/share/classes/java/beans/Introspector.java b/src/share/classes/java/beans/Introspector.java +--- openjdk/jdk/src/share/classes/java/beans/Introspector.java ++++ openjdk/jdk/src/share/classes/java/beans/Introspector.java +@@ -139,8 +139,9 @@ + private Map events; + + private final static String DEFAULT_INFO_PATH = "sun.beans.infos"; ++ private final static String DEFAULT_INFO_PATH_NEW = "com.sun.beans.infos"; + +- private static String[] searchPath = { DEFAULT_INFO_PATH }; ++ private static String[] searchPath = { DEFAULT_INFO_PATH_NEW }; + + private final static EventSetDescriptor[] EMPTY_EVENTSETDESCRIPTORS = new EventSetDescriptor[0]; + +@@ -460,10 +461,13 @@ + name = name.substring(name.lastIndexOf('.')+1); + + for (int i = 0; i < searchPath.length; i++) { ++ if (DEFAULT_INFO_PATH.equals(searchPath[i])) { ++ searchPath[i] = DEFAULT_INFO_PATH_NEW; ++ } + // This optimization will only use the BeanInfo search path if is has changed + // from the original or trying to get the ComponentBeanInfo. +- if (!DEFAULT_INFO_PATH.equals(searchPath[i]) || +- DEFAULT_INFO_PATH.equals(searchPath[i]) && "ComponentBeanInfo".equals(name)) { ++ if (!DEFAULT_INFO_PATH_NEW.equals(searchPath[i]) || ++ DEFAULT_INFO_PATH_NEW.equals(searchPath[i]) && "ComponentBeanInfo".equals(name)) { + try { + String fullName = searchPath[i] + "." + name; + java.beans.BeanInfo bi = (java.beans.BeanInfo)instantiate(beanClass, fullName); +diff --git a/src/share/classes/java/beans/PropertyEditorManager.java b/src/share/classes/java/beans/PropertyEditorManager.java +--- openjdk/jdk/src/share/classes/java/beans/PropertyEditorManager.java ++++ openjdk/jdk/src/share/classes/java/beans/PropertyEditorManager.java +@@ -25,7 +25,7 @@ + + package java.beans; + +-import sun.beans.editors.*; ++import com.sun.beans.editors.*; + + /** + * The PropertyEditorManager can be used to locate a property editor for +@@ -119,6 +119,8 @@ + editorName = editorName.substring(index); + } + for (String path : searchPath) { ++ if (path.startsWith(DEFAULT)) ++ path = path.replace(DEFAULT, DEFAULT_NEW); + String name = path + '.' + editorName; + try { + return (PropertyEditor) Introspector.instantiate(targetType, name); +@@ -140,7 +142,7 @@ + * @return The array of package names that will be searched in + * order to find property editors. + *

The default value for this array is implementation-dependent, +- * e.g. Sun implementation initially sets to {"sun.beans.editors"}. ++ * e.g. Sun implementation initially sets to {"com.sun.beans.editors"}. + */ + public static synchronized String[] getEditorSearchPath() { + // Return a copy of the searchPath. +@@ -188,6 +190,8 @@ + registry.put(Double.TYPE, DoubleEditor.class); + } + +- private static String[] searchPath = { "sun.beans.editors" }; ++ private static final String DEFAULT = "sun.beans.editors"; ++ private static final String DEFAULT_NEW = "com.sun.beans.editors"; ++ private static String[] searchPath = { DEFAULT_NEW }; + private static java.util.Hashtable registry; + } +diff --git a/src/share/classes/sun/beans/editors/BooleanEditor.java b/src/share/classes/sun/beans/editors/BooleanEditor.java +deleted file mode 100644 +--- openjdk/jdk/src/share/classes/sun/beans/editors/BooleanEditor.java ++++ /dev/null +@@ -1,76 +0,0 @@ +-/* +- * Copyright (c) 2006, 2007, 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. Oracle designates this +- * particular file as subject to the "Classpath" exception as provided +- * by Oracle in the LICENSE file that accompanied this code. +- * +- * 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. +- */ +- +-package sun.beans.editors; +- +-/** +- * Property editor for a java builtin "boolean" type. +- */ +- +-import java.beans.*; +- +-public class BooleanEditor extends PropertyEditorSupport { +- +- +- public String getJavaInitializationString() { +- Object value = getValue(); +- return (value != null) +- ? value.toString() +- : "null"; +- } +- +- public String getAsText() { +- Object value = getValue(); +- return (value instanceof Boolean) +- ? getValidName((Boolean) value) +- : "null"; +- } +- +- public void setAsText(String text) throws java.lang.IllegalArgumentException { +- if (text == null) { +- setValue(null); +- } else if (isValidName(true, text)) { +- setValue(Boolean.TRUE); +- } else if (isValidName(false, text)) { +- setValue(Boolean.FALSE); +- } else { +- throw new java.lang.IllegalArgumentException(text); +- } +- } +- +- public String[] getTags() { +- return new String[] {getValidName(true), getValidName(false)}; +- } +- +- // the following method should be localized (4890258) +- +- private String getValidName(boolean value) { +- return value ? "True" : "False"; +- } +- +- private boolean isValidName(boolean value, String name) { +- return getValidName(value).equalsIgnoreCase(name); +- } +-} +diff --git a/src/share/classes/sun/beans/editors/ByteEditor.java b/src/share/classes/sun/beans/editors/ByteEditor.java +deleted file mode 100644 +--- openjdk/jdk/src/share/classes/sun/beans/editors/ByteEditor.java ++++ /dev/null +@@ -1,48 +0,0 @@ +-/* +- * Copyright (c) 1996, 2007, 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. Oracle designates this +- * particular file as subject to the "Classpath" exception as provided +- * by Oracle in the LICENSE file that accompanied this code. +- * +- * 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. +- */ +- +-package sun.beans.editors; +- +-/** +- * Property editor for a java builtin "byte" type. +- * +- */ +- +-import java.beans.*; +- +-public class ByteEditor extends NumberEditor { +- +- public String getJavaInitializationString() { +- Object value = getValue(); +- return (value != null) +- ? "((byte)" + value + ")" +- : "null"; +- } +- +- public void setAsText(String text) throws IllegalArgumentException { +- setValue((text == null) ? null : Byte.decode(text)); +- } +- +-} +diff --git a/src/share/classes/sun/beans/editors/ColorEditor.java b/src/share/classes/sun/beans/editors/ColorEditor.java +deleted file mode 100644 +--- openjdk/jdk/src/share/classes/sun/beans/editors/ColorEditor.java ++++ /dev/null +@@ -1,212 +0,0 @@ +-/* +- * Copyright (c) 1996, 2007, 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. Oracle designates this +- * particular file as subject to the "Classpath" exception as provided +- * by Oracle in the LICENSE file that accompanied this code. +- * +- * 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. +- */ +- +-package sun.beans.editors; +- +-import java.awt.*; +-import java.beans.*; +- +-public class ColorEditor extends Panel implements PropertyEditor { +- public ColorEditor() { +- setLayout(null); +- +- ourWidth = hPad; +- +- // Create a sample color block bordered in black +- Panel p = new Panel(); +- p.setLayout(null); +- p.setBackground(Color.black); +- sample = new Canvas(); +- p.add(sample); +- sample.reshape(2, 2, sampleWidth, sampleHeight); +- add(p); +- p.reshape(ourWidth, 2, sampleWidth+4, sampleHeight+4); +- ourWidth += sampleWidth + 4 + hPad; +- +- text = new TextField("", 14); +- add(text); +- text.reshape(ourWidth,0,100,30); +- ourWidth += 100 + hPad; +- +- choser = new Choice(); +- int active = 0; +- for (int i = 0; i < colorNames.length; i++) { +- choser.addItem(colorNames[i]); +- } +- add(choser); +- choser.reshape(ourWidth,0,100,30); +- ourWidth += 100 + hPad; +- +- resize(ourWidth,40); +- } +- +- public void setValue(Object o) { +- Color c = (Color)o; +- changeColor(c); +- } +- +- public Dimension preferredSize() { +- return new Dimension(ourWidth, 40); +- } +- +- public boolean keyUp(Event e, int key) { +- if (e.target == text) { +- try { +- setAsText(text.getText()); +- } catch (IllegalArgumentException ex) { +- // Quietly ignore. +- } +- } +- return (false); +- } +- +- public void setAsText(String s) throws java.lang.IllegalArgumentException { +- if (s == null) { +- changeColor(null); +- return; +- } +- int c1 = s.indexOf(','); +- int c2 = s.indexOf(',', c1+1); +- if (c1 < 0 || c2 < 0) { +- // Invalid string. +- throw new IllegalArgumentException(s); +- } +- try { +- int r = Integer.parseInt(s.substring(0,c1)); +- int g = Integer.parseInt(s.substring(c1+1, c2)); +- int b = Integer.parseInt(s.substring(c2+1)); +- Color c = new Color(r,g,b); +- changeColor(c); +- } catch (Exception ex) { +- throw new IllegalArgumentException(s); +- } +- +- } +- +- public boolean action(Event e, Object arg) { +- if (e.target == choser) { +- changeColor(colors[choser.getSelectedIndex()]); +- } +- return false; +- } +- +- public String getJavaInitializationString() { +- return (this.color != null) +- ? "new java.awt.Color(" + this.color.getRGB() + ",true)" +- : "null"; +- } +- +- +- private void changeColor(Color c) { +- +- if (c == null) { +- this.color = null; +- this.text.setText(""); +- return; +- } +- +- color = c; +- +- text.setText("" + c.getRed() + "," + c.getGreen() + "," + c.getBlue()); +- +- int active = 0; +- for (int i = 0; i < colorNames.length; i++) { +- if (color.equals(colors[i])) { +- active = i; +- } +- } +- choser.select(active); +- +- sample.setBackground(color); +- sample.repaint(); +- +- support.firePropertyChange("", null, null); +- } +- +- public Object getValue() { +- return color; +- } +- +- public boolean isPaintable() { +- return true; +- } +- +- public void paintValue(java.awt.Graphics gfx, java.awt.Rectangle box) { +- Color oldColor = gfx.getColor(); +- gfx.setColor(Color.black); +- gfx.drawRect(box.x, box.y, box.width-3, box.height-3); +- gfx.setColor(color); +- gfx.fillRect(box.x+1, box.y+1, box.width-4, box.height-4); +- gfx.setColor(oldColor); +- } +- +- public String getAsText() { +- return (this.color != null) +- ? this.color.getRed() + "," + this.color.getGreen() + "," + this.color.getBlue() +- : "null"; +- } +- +- public String[] getTags() { +- return null; +- } +- +- public java.awt.Component getCustomEditor() { +- return this; +- } +- +- public boolean supportsCustomEditor() { +- return true; +- } +- +- public void addPropertyChangeListener(PropertyChangeListener l) { +- support.addPropertyChangeListener(l); +- } +- +- public void removePropertyChangeListener(PropertyChangeListener l) { +- support.removePropertyChangeListener(l); +- } +- +- +- private String colorNames[] = { " ", "white", "lightGray", "gray", "darkGray", +- "black", "red", "pink", "orange", +- "yellow", "green", "magenta", "cyan", +- "blue"}; +- private Color colors[] = { null, Color.white, Color.lightGray, Color.gray, Color.darkGray, +- Color.black, Color.red, Color.pink, Color.orange, +- Color.yellow, Color.green, Color.magenta, Color.cyan, +- Color.blue}; +- +- private Canvas sample; +- private int sampleHeight = 20; +- private int sampleWidth = 40; +- private int hPad = 5; +- private int ourWidth; +- +- private Color color; +- private TextField text; +- private Choice choser; +- +- private PropertyChangeSupport support = new PropertyChangeSupport(this); +-} +diff --git a/src/share/classes/sun/beans/editors/DoubleEditor.java b/src/share/classes/sun/beans/editors/DoubleEditor.java +deleted file mode 100644 +--- openjdk/jdk/src/share/classes/sun/beans/editors/DoubleEditor.java ++++ /dev/null +@@ -1,41 +0,0 @@ +-/* +- * Copyright (c) 1996, 2007, 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. Oracle designates this +- * particular file as subject to the "Classpath" exception as provided +- * by Oracle in the LICENSE file that accompanied this code. +- * +- * 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. +- */ +- +-package sun.beans.editors; +- +-/** +- * Property editor for a java builtin "double" type. +- * +- */ +- +-import java.beans.*; +- +-public class DoubleEditor extends NumberEditor { +- +- public void setAsText(String text) throws IllegalArgumentException { +- setValue((text == null) ? null : Double.valueOf(text)); +- } +- +-} +diff --git a/src/share/classes/sun/beans/editors/EnumEditor.java b/src/share/classes/sun/beans/editors/EnumEditor.java +deleted file mode 100644 +--- openjdk/jdk/src/share/classes/sun/beans/editors/EnumEditor.java ++++ /dev/null +@@ -1,142 +0,0 @@ +-/* +- * Copyright (c) 2006, 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. Oracle designates this +- * particular file as subject to the "Classpath" exception as provided +- * by Oracle in the LICENSE file that accompanied this code. +- * +- * 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. +- */ +-package sun.beans.editors; +- +-import java.awt.Component; +-import java.awt.Graphics; +-import java.awt.Rectangle; +-import java.beans.PropertyChangeEvent; +-import java.beans.PropertyChangeListener; +-import java.beans.PropertyEditor; +-import java.util.ArrayList; +-import java.util.List; +- +-/** +- * Property editor for java.lang.Enum subclasses. +- * +- * @see PropertyEditor +- * +- * @since 1.7 +- * +- * @author Sergey A. Malenkov +- */ +-public final class EnumEditor implements PropertyEditor { +- private final List listeners = new ArrayList(); +- +- private final Class type; +- private final String[] tags; +- +- private Object value; +- +- public EnumEditor( Class type ) { +- Object[] values = type.getEnumConstants(); +- if ( values == null ) { +- throw new IllegalArgumentException( "Unsupported " + type ); +- } +- this.type = type; +- this.tags = new String[values.length]; +- for ( int i = 0; i < values.length; i++ ) { +- this.tags[i] = ( ( Enum )values[i] ).name(); +- } +- } +- +- public Object getValue() { +- return this.value; +- } +- +- public void setValue( Object value ) { +- if ( ( value != null ) && !this.type.isInstance( value ) ) { +- throw new IllegalArgumentException( "Unsupported value: " + value ); +- } +- Object oldValue; +- PropertyChangeListener[] listeners; +- synchronized ( this.listeners ) { +- oldValue = this.value; +- this.value = value; +- +- if ( ( value == null ) ? oldValue == null : value.equals( oldValue ) ) { +- return; // do not fire event if value is not changed +- } +- int size = this.listeners.size(); +- if ( size == 0 ) { +- return; // do not fire event if there are no any listener +- } +- listeners = this.listeners.toArray( new PropertyChangeListener[size] ); +- } +- PropertyChangeEvent event = new PropertyChangeEvent( this, null, oldValue, value ); +- for ( PropertyChangeListener listener : listeners ) { +- listener.propertyChange( event ); +- } +- } +- +- public String getAsText() { +- return ( this.value != null ) +- ? ( ( Enum )this.value ).name() +- : "null"; +- } +- +- public void setAsText( String text ) { +- setValue( ( text != null ) +- ? Enum.valueOf( this.type, text ) +- : null ); +- } +- +- public String[] getTags() { +- return this.tags.clone(); +- } +- +- public String getJavaInitializationString() { +- return ( this.value != null ) +- ? this.type.getName() + '.' + ( ( Enum )this.value ).name() +- : "null"; +- } +- +- public boolean isPaintable() { +- return false; +- } +- +- public void paintValue( Graphics gfx, Rectangle box ) { +- } +- +- public boolean supportsCustomEditor() { +- return false; +- } +- +- public Component getCustomEditor() { +- return null; +- } +- +- public void addPropertyChangeListener( PropertyChangeListener listener ) { +- synchronized ( this.listeners ) { +- this.listeners.add( listener ); +- } +- } +- +- public void removePropertyChangeListener( PropertyChangeListener listener ) { +- synchronized ( this.listeners ) { +- this.listeners.remove( listener ); +- } +- } +-} +diff --git a/src/share/classes/sun/beans/editors/FloatEditor.java b/src/share/classes/sun/beans/editors/FloatEditor.java +deleted file mode 100644 +--- openjdk/jdk/src/share/classes/sun/beans/editors/FloatEditor.java ++++ /dev/null +@@ -1,48 +0,0 @@ +-/* +- * Copyright (c) 1996, 2007, 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. Oracle designates this +- * particular file as subject to the "Classpath" exception as provided +- * by Oracle in the LICENSE file that accompanied this code. +- * +- * 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. +- */ +- +-package sun.beans.editors; +- +-/** +- * Property editor for a java builtin "float" type. +- * +- */ +- +-import java.beans.*; +- +-public class FloatEditor extends NumberEditor { +- +- public String getJavaInitializationString() { +- Object value = getValue(); +- return (value != null) +- ? value + "F" +- : "null"; +- } +- +- public void setAsText(String text) throws IllegalArgumentException { +- setValue((text == null) ? null : Float.valueOf(text)); +- } +- +-} +diff --git a/src/share/classes/sun/beans/editors/FontEditor.java b/src/share/classes/sun/beans/editors/FontEditor.java +deleted file mode 100644 +--- openjdk/jdk/src/share/classes/sun/beans/editors/FontEditor.java ++++ /dev/null +@@ -1,218 +0,0 @@ +-/* +- * Copyright (c) 1996, 2007, 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. Oracle designates this +- * particular file as subject to the "Classpath" exception as provided +- * by Oracle in the LICENSE file that accompanied this code. +- * +- * 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. +- */ +- +-package sun.beans.editors; +- +-import java.awt.*; +-import java.beans.*; +- +-public class FontEditor extends Panel implements java.beans.PropertyEditor { +- +- public FontEditor() { +- setLayout(null); +- +- toolkit = Toolkit.getDefaultToolkit(); +- fonts = toolkit.getFontList(); +- +- familyChoser = new Choice(); +- for (int i = 0; i < fonts.length; i++) { +- familyChoser.addItem(fonts[i]); +- } +- add(familyChoser); +- familyChoser.reshape(20, 5, 100, 30); +- +- styleChoser = new Choice(); +- for (int i = 0; i < styleNames.length; i++) { +- styleChoser.addItem(styleNames[i]); +- } +- add(styleChoser); +- styleChoser.reshape(145, 5, 70, 30); +- +- sizeChoser = new Choice(); +- for (int i = 0; i < pointSizes.length; i++) { +- sizeChoser.addItem("" + pointSizes[i]); +- } +- add(sizeChoser); +- sizeChoser.reshape(220, 5, 70, 30); +- +- resize(300,40); +- } +- +- +- public Dimension preferredSize() { +- return new Dimension(300, 40); +- } +- +- public void setValue(Object o) { +- font = (Font) o; +- if (this.font == null) +- return; +- +- changeFont(font); +- // Update the current GUI choices. +- for (int i = 0; i < fonts.length; i++) { +- if (fonts[i].equals(font.getFamily())) { +- familyChoser.select(i); +- break; +- } +- } +- for (int i = 0; i < styleNames.length; i++) { +- if (font.getStyle() == styles[i]) { +- styleChoser.select(i); +- break; +- } +- } +- for (int i = 0; i < pointSizes.length; i++) { +- if (font.getSize() <= pointSizes[i]) { +- sizeChoser.select(i); +- break; +- } +- } +- } +- +- private void changeFont(Font f) { +- font = f; +- if (sample != null) { +- remove(sample); +- } +- sample = new Label(sampleText); +- sample.setFont(font); +- add(sample); +- Component p = getParent(); +- if (p != null) { +- p.invalidate(); +- p.layout(); +- } +- invalidate(); +- layout(); +- repaint(); +- support.firePropertyChange("", null, null); +- } +- +- public Object getValue() { +- return (font); +- } +- +- public String getJavaInitializationString() { +- if (this.font == null) +- return "null"; +- +- return "new java.awt.Font(\"" + font.getName() + "\", " + +- font.getStyle() + ", " + font.getSize() + ")"; +- } +- +- public boolean action(Event e, Object arg) { +- String family = familyChoser.getSelectedItem(); +- int style = styles[styleChoser.getSelectedIndex()]; +- int size = pointSizes[sizeChoser.getSelectedIndex()]; +- try { +- Font f = new Font(family, style, size); +- changeFont(f); +- } catch (Exception ex) { +- System.err.println("Couldn't create font " + family + "-" + +- styleNames[style] + "-" + size); +- } +- return (false); +- } +- +- +- public boolean isPaintable() { +- return true; +- } +- +- public void paintValue(java.awt.Graphics gfx, java.awt.Rectangle box) { +- // Silent noop. +- Font oldFont = gfx.getFont(); +- gfx.setFont(font); +- FontMetrics fm = gfx.getFontMetrics(); +- int vpad = (box.height - fm.getAscent())/2; +- gfx.drawString(sampleText, 0, box.height-vpad); +- gfx.setFont(oldFont); +- } +- +- public String getAsText() { +- if (this.font == null) { +- return "null"; +- } +- StringBuilder sb = new StringBuilder(); +- sb.append(this.font.getName()); +- sb.append(' '); +- +- boolean b = this.font.isBold(); +- if (b) { +- sb.append("BOLD"); +- } +- boolean i = this.font.isItalic(); +- if (i) { +- sb.append("ITALIC"); +- } +- if (b || i) { +- sb.append(' '); +- } +- sb.append(this.font.getSize()); +- return sb.toString(); +- } +- +- public void setAsText(String text) throws IllegalArgumentException { +- setValue((text == null) ? null : Font.decode(text)); +- } +- +- public String[] getTags() { +- return null; +- } +- +- public java.awt.Component getCustomEditor() { +- return this; +- } +- +- public boolean supportsCustomEditor() { +- return true; +- } +- +- public void addPropertyChangeListener(PropertyChangeListener l) { +- support.addPropertyChangeListener(l); +- } +- +- public void removePropertyChangeListener(PropertyChangeListener l) { +- support.removePropertyChangeListener(l); +- } +- +- private Font font; +- private Toolkit toolkit; +- private String sampleText = "Abcde..."; +- +- private Label sample; +- private Choice familyChoser; +- private Choice styleChoser; +- private Choice sizeChoser; +- +- private String fonts[]; +- private String[] styleNames = { "plain", "bold", "italic" }; +- private int[] styles = { Font.PLAIN, Font.BOLD, Font.ITALIC }; +- private int[] pointSizes = { 3, 5, 8, 10, 12, 14, 18, 24, 36, 48 }; +- +- private PropertyChangeSupport support = new PropertyChangeSupport(this); +- +-} +diff --git a/src/share/classes/sun/beans/editors/IntegerEditor.java b/src/share/classes/sun/beans/editors/IntegerEditor.java +deleted file mode 100644 +--- openjdk/jdk/src/share/classes/sun/beans/editors/IntegerEditor.java ++++ /dev/null +@@ -1,42 +0,0 @@ +-/* +- * Copyright (c) 2006, 2007, 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. Oracle designates this +- * particular file as subject to the "Classpath" exception as provided +- * by Oracle in the LICENSE file that accompanied this code. +- * +- * 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. +- */ +- +-package sun.beans.editors; +- +-/** +- * Property editor for a java builtin "int" type. +- * +- */ +- +-import java.beans.*; +- +-public class IntegerEditor extends NumberEditor { +- +- +- public void setAsText(String text) throws IllegalArgumentException { +- setValue((text == null) ? null : Integer.decode(text)); +- } +- +-} +diff --git a/src/share/classes/sun/beans/editors/LongEditor.java b/src/share/classes/sun/beans/editors/LongEditor.java +deleted file mode 100644 +--- openjdk/jdk/src/share/classes/sun/beans/editors/LongEditor.java ++++ /dev/null +@@ -1,48 +0,0 @@ +-/* +- * Copyright (c) 1996, 2007, 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. Oracle designates this +- * particular file as subject to the "Classpath" exception as provided +- * by Oracle in the LICENSE file that accompanied this code. +- * +- * 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. +- */ +- +-package sun.beans.editors; +- +-/** +- * Property editor for a java builtin "long" type. +- * +- */ +- +-import java.beans.*; +- +-public class LongEditor extends NumberEditor { +- +- public String getJavaInitializationString() { +- Object value = getValue(); +- return (value != null) +- ? value + "L" +- : "null"; +- } +- +- public void setAsText(String text) throws IllegalArgumentException { +- setValue((text == null) ? null : Long.decode(text)); +- } +- +-} +diff --git a/src/share/classes/sun/beans/editors/NumberEditor.java b/src/share/classes/sun/beans/editors/NumberEditor.java +deleted file mode 100644 +--- openjdk/jdk/src/share/classes/sun/beans/editors/NumberEditor.java ++++ /dev/null +@@ -1,44 +0,0 @@ +-/* +- * Copyright (c) 1996, 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. Oracle designates this +- * particular file as subject to the "Classpath" exception as provided +- * by Oracle in the LICENSE file that accompanied this code. +- * +- * 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. +- */ +- +-package sun.beans.editors; +- +-/** +- * Abstract Property editor for a java builtin number types. +- * +- */ +- +-import java.beans.*; +- +-abstract public class NumberEditor extends PropertyEditorSupport { +- +- public String getJavaInitializationString() { +- Object value = getValue(); +- return (value != null) +- ? value.toString() +- : "null"; +- } +- +-} +diff --git a/src/share/classes/sun/beans/editors/ShortEditor.java b/src/share/classes/sun/beans/editors/ShortEditor.java +deleted file mode 100644 +--- openjdk/jdk/src/share/classes/sun/beans/editors/ShortEditor.java ++++ /dev/null +@@ -1,49 +0,0 @@ +-/* +- * Copyright (c) 1996, 2007, 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. Oracle designates this +- * particular file as subject to the "Classpath" exception as provided +- * by Oracle in the LICENSE file that accompanied this code. +- * +- * 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. +- */ +- +- +-package sun.beans.editors; +- +-/** +- * Property editor for a java builtin "short" type. +- * +- */ +- +-import java.beans.*; +- +-public class ShortEditor extends NumberEditor { +- +- public String getJavaInitializationString() { +- Object value = getValue(); +- return (value != null) +- ? "((short)" + value + ")" +- : "null"; +- } +- +- public void setAsText(String text) throws IllegalArgumentException { +- setValue((text == null) ? null : Short.decode(text)); +- } +- +-} +diff --git a/src/share/classes/sun/beans/editors/StringEditor.java b/src/share/classes/sun/beans/editors/StringEditor.java +deleted file mode 100644 +--- openjdk/jdk/src/share/classes/sun/beans/editors/StringEditor.java ++++ /dev/null +@@ -1,74 +0,0 @@ +-/* +- * Copyright (c) 1996, 2006, 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. Oracle designates this +- * particular file as subject to the "Classpath" exception as provided +- * by Oracle in the LICENSE file that accompanied this code. +- * +- * 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. +- */ +- +- +-package sun.beans.editors; +- +-import java.beans.*; +- +-public class StringEditor extends PropertyEditorSupport { +- +- public String getJavaInitializationString() { +- Object value = getValue(); +- if (value == null) +- return "null"; +- +- String str = value.toString(); +- int length = str.length(); +- StringBuilder sb = new StringBuilder(length + 2); +- sb.append('"'); +- for (int i = 0; i < length; i++) { +- char ch = str.charAt(i); +- switch (ch) { +- case '\b': sb.append("\\b"); break; +- case '\t': sb.append("\\t"); break; +- case '\n': sb.append("\\n"); break; +- case '\f': sb.append("\\f"); break; +- case '\r': sb.append("\\r"); break; +- case '\"': sb.append("\\\""); break; +- case '\\': sb.append("\\\\"); break; +- default: +- if ((ch < ' ') || (ch > '~')) { +- sb.append("\\u"); +- String hex = Integer.toHexString((int) ch); +- for (int len = hex.length(); len < 4; len++) { +- sb.append('0'); +- } +- sb.append(hex); +- } else { +- sb.append(ch); +- } +- break; +- } +- } +- sb.append('"'); +- return sb.toString(); +- } +- +- public void setAsText(String text) { +- setValue(text); +- } +- +-} +diff --git a/src/share/classes/sun/beans/infos/ComponentBeanInfo.java b/src/share/classes/sun/beans/infos/ComponentBeanInfo.java +deleted file mode 100644 +--- openjdk/jdk/src/share/classes/sun/beans/infos/ComponentBeanInfo.java ++++ /dev/null +@@ -1,62 +0,0 @@ +-/* +- * Copyright (c) 1996, 2002, 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. Oracle designates this +- * particular file as subject to the "Classpath" exception as provided +- * by Oracle in the LICENSE file that accompanied this code. +- * +- * 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. +- */ +- +-package sun.beans.infos; +- +-import java.beans.*; +- +-/** +- * BeanInfo descriptor for a standard AWT component. +- */ +- +-public class ComponentBeanInfo extends SimpleBeanInfo { +- private static final Class beanClass = java.awt.Component.class; +- +- public PropertyDescriptor[] getPropertyDescriptors() { +- try { +- PropertyDescriptor +- name = new PropertyDescriptor("name", beanClass), +- background = new PropertyDescriptor("background", beanClass), +- foreground = new PropertyDescriptor("foreground", beanClass), +- font = new PropertyDescriptor("font", beanClass), +- enabled = new PropertyDescriptor("enabled", beanClass), +- visible = new PropertyDescriptor("visible", beanClass), +- focusable = new PropertyDescriptor("focusable", beanClass); +- +- enabled.setExpert(true); +- visible.setHidden(true); +- +- background.setBound(true); +- foreground.setBound(true); +- font.setBound(true); +- focusable.setBound(true); +- +- PropertyDescriptor[] rv = {name, background, foreground, font, enabled, visible, focusable }; +- return rv; +- } catch (IntrospectionException e) { +- throw new Error(e.toString()); +- } +- } +-} +diff --git a/test/java/beans/Introspector/4520754/Test4520754.java b/test/java/beans/Introspector/4520754/Test4520754.java +--- openjdk/jdk/test/java/beans/Introspector/4520754/Test4520754.java ++++ openjdk/jdk/test/java/beans/Introspector/4520754/Test4520754.java +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 2002, 2007, Oracle and/or its affiliates. All rights reserved. ++ * Copyright (c) 2002, 2012, 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 +@@ -58,7 +58,7 @@ + public static void main(String[] args) { + // ensure that 4168475 does not regress + test4168475(Component.class); +- // AWT classes (sun.beans.infos.ComponentBeanInfo) ++ // AWT classes (com.sun.beans.infos.ComponentBeanInfo) + test(null, Button.class, Component.class, List.class, Menu.class, Panel.class); + // Swing classes (dt.jar) + test(null, JApplet.class, JButton.class, JCheckBox.class); diff -r f5a3984175d3 -r e067051f7a6e patches/security/20120830/7163201-simplify_toolkit_internal_references.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/security/20120830/7163201-simplify_toolkit_internal_references.patch Fri Aug 31 16:59:45 2012 +0100 @@ -0,0 +1,3714 @@ +diff -Nru openjdk.orig/jdk/src/share/classes/java/awt/AWTEvent.java openjdk/jdk/src/share/classes/java/awt/AWTEvent.java +--- openjdk.orig/jdk/src/share/classes/java/awt/AWTEvent.java 2011-02-28 16:06:19.000000000 +0000 ++++ openjdk/jdk/src/share/classes/java/awt/AWTEvent.java 2012-08-31 15:34:01.711212476 +0100 +@@ -260,6 +260,10 @@ + initIDs(); + } + AWTAccessor.setAWTEventAccessor(new AWTAccessor.AWTEventAccessor() { ++ public void setPosted(AWTEvent ev) { ++ ev.isPosted = true; ++ } ++ + public void setSystemGenerated(AWTEvent ev) { + ev.isSystemGenerated = true; + } +@@ -271,6 +275,15 @@ + public AccessControlContext getAccessControlContext(AWTEvent ev) { + return ev.getAccessControlContext(); + } ++ ++ public byte[] getBData(AWTEvent ev) { ++ return ev.bdata; ++ } ++ ++ public void setBData(AWTEvent ev, byte[] bdata) { ++ ev.bdata = bdata; ++ } ++ + }); + } + +@@ -607,7 +620,7 @@ + } + } + +- private void readObject(ObjectInputStream in) ++ private void readObject(ObjectInputStream in) + throws ClassNotFoundException, IOException + { + this.acc = AccessController.getContext(); +diff -Nru openjdk.orig/jdk/src/share/classes/java/awt/CheckboxMenuItem.java openjdk/jdk/src/share/classes/java/awt/CheckboxMenuItem.java +--- openjdk.orig/jdk/src/share/classes/java/awt/CheckboxMenuItem.java 2011-02-28 16:06:19.000000000 +0000 ++++ openjdk/jdk/src/share/classes/java/awt/CheckboxMenuItem.java 2012-08-31 15:34:01.727212750 +0100 +@@ -31,6 +31,7 @@ + import java.io.ObjectInputStream; + import java.io.IOException; + import javax.accessibility.*; ++import sun.awt.AWTAccessor; + + + /** +@@ -68,6 +69,13 @@ + if (!GraphicsEnvironment.isHeadless()) { + initIDs(); + } ++ ++ AWTAccessor.setCheckboxMenuItemAccessor( ++ new AWTAccessor.CheckboxMenuItemAccessor() { ++ public boolean getState(CheckboxMenuItem cmi) { ++ return cmi.state; ++ } ++ }); + } + + /** +diff -Nru openjdk.orig/jdk/src/share/classes/java/awt/Component.java openjdk/jdk/src/share/classes/java/awt/Component.java +--- openjdk.orig/jdk/src/share/classes/java/awt/Component.java 2011-02-28 16:06:19.000000000 +0000 ++++ openjdk/jdk/src/share/classes/java/awt/Component.java 2012-08-31 15:34:01.727212750 +0100 +@@ -798,10 +798,129 @@ + + static { + AWTAccessor.setComponentAccessor(new AWTAccessor.ComponentAccessor() { ++ public void setX(Component comp, int x) { ++ comp.x = x; ++ } ++ ++ public void setY(Component comp, int y) { ++ comp.y = y; ++ } ++ ++ public void setWidth(Component comp, int width) { ++ comp.width = width; ++ } ++ ++ public void setHeight(Component comp, int height) { ++ comp.height = height; ++ } ++ ++ public int getX(Component comp) { ++ return comp.x; ++ } ++ ++ public int getY(Component comp) { ++ return comp.y; ++ } ++ ++ public int getWidth(Component comp) { ++ return comp.width; ++ } ++ ++ public int getHeight(Component comp) { ++ return comp.height; ++ } ++ ++ public boolean isPacked(Component comp) { ++ return comp.isPacked; ++ } ++ ++ public Container getParent(Component comp) { ++ return comp.getParent_NoClientCode(); ++ } ++ ++ public Font getFont_NoClientCode(Component comp) { ++ return comp.getFont_NoClientCode(); ++ } ++ ++ public void processEvent(Component comp, AWTEvent event) { ++ comp.processEvent(event); ++ } ++ ++ public void enableEvents(Component comp, long eventMask) { ++ comp.enableEvents(eventMask); ++ } ++ ++ public void setParent(Component comp, Container parent) { ++ comp.parent = parent; ++ } ++ ++ public Color getForeground(Component comp) { ++ return comp.foreground; ++ } ++ ++ public Color getBackground(Component comp) { ++ return comp.background; ++ } ++ ++ public void setBackground(Component comp, Color c) { ++ comp.background = c; ++ } ++ ++ public Font getFont(Component comp) { ++ return comp.font; ++ } ++ ++ public ComponentPeer getPeer(Component comp) { ++ return comp.peer; ++ } ++ ++ public void setPeer(Component comp, ComponentPeer peer) { ++ comp.peer = peer; ++ } ++ ++ public boolean getIgnoreRepaint(Component comp) { ++ return comp.ignoreRepaint; ++ } ++ ++ public void resetGC(Component comp) { ++ comp.resetGC(); ++ } ++ ++ public boolean isVisible(Component comp) { ++ return comp.visible; ++ } ++ ++ public boolean isEnabled(Component comp) { ++ return comp.isEnabledImpl(); ++ } ++ ++ public Cursor getCursor(Component comp) { ++ return comp.getCursor_NoClientCode(); ++ } ++ ++ public Point getLocation(Component comp) { ++ return comp.location_NoClientCode(); ++ } ++ + public AccessControlContext getAccessControlContext(Component comp) { + return comp.getAccessControlContext(); + } + ++ public boolean requestFocusInWindow(Component comp, CausedFocusEvent.Cause cause) { ++ return comp.requestFocusInWindow(cause); ++ } ++ ++ public void requestFocus(Component comp, CausedFocusEvent.Cause cause) { ++ comp.requestFocus(cause); ++ } ++ ++ public void setAppContext(Component comp, AppContext ctx) { ++ comp.appContext = ctx; ++ } ++ ++ public AppContext getAppContext(Component comp) { ++ return comp.appContext; ++ } + }); + } + +diff -Nru openjdk.orig/jdk/src/share/classes/java/awt/Cursor.java openjdk/jdk/src/share/classes/java/awt/Cursor.java +--- openjdk.orig/jdk/src/share/classes/java/awt/Cursor.java 2011-02-28 16:06:20.000000000 +0000 ++++ openjdk/jdk/src/share/classes/java/awt/Cursor.java 2012-08-31 15:34:01.735212883 +0100 +@@ -24,10 +24,6 @@ + */ + package java.awt; + +-import java.awt.AWTException; +-import java.awt.Point; +-import java.awt.Toolkit; +- + import java.io.File; + import java.io.FileInputStream; + +@@ -39,6 +35,8 @@ + + import java.security.AccessController; + ++import sun.awt.AWTAccessor; ++ + /** + * A class to encapsulate the bitmap representation of the mouse cursor. + * +@@ -193,6 +191,21 @@ + if (!GraphicsEnvironment.isHeadless()) { + initIDs(); + } ++ ++ AWTAccessor.setCursorAccessor( ++ new AWTAccessor.CursorAccessor() { ++ public long getPData(Cursor cursor) { ++ return cursor.pData; ++ } ++ ++ public void setPData(Cursor cursor, long pData) { ++ cursor.pData = pData; ++ } ++ ++ public int getType(Cursor cursor) { ++ return cursor.type; ++ } ++ }); + } + + /** +diff -Nru openjdk.orig/jdk/src/share/classes/java/awt/DefaultKeyboardFocusManager.java openjdk/jdk/src/share/classes/java/awt/DefaultKeyboardFocusManager.java +--- openjdk.orig/jdk/src/share/classes/java/awt/DefaultKeyboardFocusManager.java 2011-02-28 16:06:20.000000000 +0000 ++++ openjdk/jdk/src/share/classes/java/awt/DefaultKeyboardFocusManager.java 2012-08-31 15:34:01.735212883 +0100 +@@ -40,6 +40,7 @@ + + import sun.awt.AppContext; + import sun.awt.SunToolkit; ++import sun.awt.AWTAccessor; + import sun.awt.CausedFocusEvent; + + /** +@@ -76,6 +77,15 @@ + typeAheadMarkers = new LinkedList(); + private boolean consumeNextKeyTyped; + ++ static { ++ AWTAccessor.setDefaultKeyboardFocusManagerAccessor( ++ new AWTAccessor.DefaultKeyboardFocusManagerAccessor() { ++ public void consumeNextKeyTyped(DefaultKeyboardFocusManager dkfm, KeyEvent e) { ++ dkfm.consumeNextKeyTyped(e); ++ } ++ }); ++ } ++ + private static class TypeAheadMarker { + long after; + Component untilFocused; +diff -Nru openjdk.orig/jdk/src/share/classes/java/awt/Dialog.java openjdk/jdk/src/share/classes/java/awt/Dialog.java +--- openjdk.orig/jdk/src/share/classes/java/awt/Dialog.java 2011-02-28 16:06:20.000000000 +0000 ++++ openjdk/jdk/src/share/classes/java/awt/Dialog.java 2012-08-31 15:34:01.735212883 +0100 +@@ -34,6 +34,7 @@ + import java.security.PrivilegedAction; + import javax.accessibility.*; + import sun.awt.AppContext; ++import sun.awt.AWTAccessor; + import sun.awt.SunToolkit; + import sun.awt.PeerEvent; + import sun.awt.util.IdentityArrayList; +@@ -1696,4 +1697,13 @@ + } + + } // inner class AccessibleAWTDialog ++ ++ static { ++ AWTAccessor.setDialogAccessor(new AWTAccessor.DialogAccessor() { ++ public ModalExclusionType getDefaultModalExclusionType() { ++ return DEFAULT_MODAL_EXCLUSION_TYPE; ++ } ++ }); ++ } ++ + } +diff -Nru openjdk.orig/jdk/src/share/classes/java/awt/event/KeyEvent.java openjdk/jdk/src/share/classes/java/awt/event/KeyEvent.java +--- openjdk.orig/jdk/src/share/classes/java/awt/event/KeyEvent.java 2011-02-28 16:06:20.000000000 +0000 ++++ openjdk/jdk/src/share/classes/java/awt/event/KeyEvent.java 2012-08-31 15:34:01.739212950 +0100 +@@ -25,12 +25,12 @@ + + package java.awt.event; + +-import java.awt.Event; + import java.awt.Component; + import java.awt.GraphicsEnvironment; + import java.awt.Toolkit; + import java.io.IOException; + import java.io.ObjectInputStream; ++import sun.awt.AWTAccessor; + + /** + * An event which indicates that a keystroke occurred in a component. +diff -Nru openjdk.orig/jdk/src/share/classes/java/awt/EventQueue.java openjdk/jdk/src/share/classes/java/awt/EventQueue.java +--- openjdk.orig/jdk/src/share/classes/java/awt/EventQueue.java 2011-02-28 16:06:20.000000000 +0000 ++++ openjdk/jdk/src/share/classes/java/awt/EventQueue.java 2012-08-31 15:34:01.735212883 +0100 +@@ -39,12 +39,12 @@ + import java.util.logging.*; + + import sun.awt.AppContext; ++import sun.awt.AWTAccessor; + import sun.awt.AWTAutoShutdown; + import sun.awt.PeerEvent; + import sun.awt.SunToolkit; + + import java.security.AccessControlContext; +-import java.security.ProtectionDomain; + + import sun.misc.SharedSecrets; + import sun.misc.JavaSecurityAccess; +@@ -157,6 +157,29 @@ + + private final String name = "AWT-EventQueue-" + nextThreadNum(); + ++ static { ++ AWTAccessor.setEventQueueAccessor( ++ new AWTAccessor.EventQueueAccessor() { ++ public Thread getDispatchThread(EventQueue eventQueue) { ++ return eventQueue.dispatchThread; ++ } ++ public EventQueue getNextQueue(EventQueue eventQueue) { ++ return eventQueue.nextQueue; ++ } ++ public void removeSourceEvents(EventQueue eventQueue, ++ Object source, ++ boolean removeAllEvents) { ++ eventQueue.removeSourceEvents(source, removeAllEvents); ++ } ++ public boolean noEvents(EventQueue eventQueue) { ++ return eventQueue.noEvents(); ++ } ++ public void wakeup(EventQueue eventQueue, boolean isShutdown) { ++ eventQueue.wakeup(isShutdown); ++ } ++ }); ++ } ++ + private static final Logger eventLog = Logger.getLogger("java.awt.event.EventQueue"); + + public EventQueue() { +@@ -637,7 +660,7 @@ + } + + /** +- * Called from dispatchEvent() under a correct AccessControlContext ++ * Called from dispatchEvent() under a correct AccessControlContext + */ + private void dispatchEventImpl(final AWTEvent event, final Object src) { + event.isPosted = true; +diff -Nru openjdk.orig/jdk/src/share/classes/java/awt/KeyboardFocusManager.java openjdk/jdk/src/share/classes/java/awt/KeyboardFocusManager.java +--- openjdk.orig/jdk/src/share/classes/java/awt/KeyboardFocusManager.java 2012-08-31 15:32:50.646005283 +0100 ++++ openjdk/jdk/src/share/classes/java/awt/KeyboardFocusManager.java 2012-08-31 15:34:01.739212950 +0100 +@@ -60,6 +60,7 @@ + import sun.awt.HeadlessToolkit; + import sun.awt.SunToolkit; + import sun.awt.CausedFocusEvent; ++import sun.awt.AWTAccessor; + + /** + * The KeyboardFocusManager is responsible for managing the active and focused +@@ -117,6 +118,40 @@ + if (!GraphicsEnvironment.isHeadless()) { + initIDs(); + } ++ AWTAccessor.setKeyboardFocusManagerAccessor( ++ new AWTAccessor.KeyboardFocusManagerAccessor() { ++ public int shouldNativelyFocusHeavyweight(Component heavyweight, ++ Component descendant, ++ boolean temporary, ++ boolean focusedWindowChangeAllowed, ++ long time, ++ CausedFocusEvent.Cause cause) ++ { ++ return KeyboardFocusManager.shouldNativelyFocusHeavyweight( ++ heavyweight, descendant, temporary, focusedWindowChangeAllowed, time, cause); ++ } ++ public boolean processSynchronousLightweightTransfer(Component heavyweight, ++ Component descendant, ++ boolean temporary, ++ boolean focusedWindowChangeAllowed, ++ long time) ++ { ++ return KeyboardFocusManager.processSynchronousLightweightTransfer( ++ heavyweight, descendant, temporary, focusedWindowChangeAllowed, time); ++ } ++ public void setMostRecentFocusOwner(Window window, Component component) { ++ KeyboardFocusManager.setMostRecentFocusOwner(window, component); ++ } ++ ++ public void removeLastFocusRequest(Component heavyweight) { ++ KeyboardFocusManager.removeLastFocusRequest(heavyweight); ++ } ++ ++ public Container getCurrentFocusCycleRoot() { ++ return KeyboardFocusManager.currentFocusCycleRoot; ++ } ++ } ++ ); + } + + transient KeyboardFocusManagerPeer peer; +@@ -563,7 +598,7 @@ + public void clearGlobalFocusOwner() { + synchronized (KeyboardFocusManager.class) { + checkCurrentKFMSecurity(); +- } ++ } + + if (!GraphicsEnvironment.isHeadless()) { + // Toolkit must be fully initialized, otherwise +diff -Nru openjdk.orig/jdk/src/share/classes/java/awt/MenuBar.java openjdk/jdk/src/share/classes/java/awt/MenuBar.java +--- openjdk.orig/jdk/src/share/classes/java/awt/MenuBar.java 2011-02-28 16:06:20.000000000 +0000 ++++ openjdk/jdk/src/share/classes/java/awt/MenuBar.java 2012-08-31 15:34:01.739212950 +0100 +@@ -28,6 +28,7 @@ + import java.io.ObjectInputStream; + import java.util.Vector; + import java.util.Enumeration; ++import sun.awt.AWTAccessor; + import java.awt.peer.MenuBarPeer; + import java.awt.event.KeyEvent; + import javax.accessibility.*; +@@ -74,6 +75,16 @@ + if (!GraphicsEnvironment.isHeadless()) { + initIDs(); + } ++ AWTAccessor.setMenuBarAccessor( ++ new AWTAccessor.MenuBarAccessor() { ++ public Menu getHelpMenu(MenuBar menuBar) { ++ return menuBar.helpMenu; ++ } ++ ++ public Vector getMenus(MenuBar menuBar) { ++ return menuBar.menus; ++ } ++ }); + } + + /** +diff -Nru openjdk.orig/jdk/src/share/classes/java/awt/MenuComponent.java openjdk/jdk/src/share/classes/java/awt/MenuComponent.java +--- openjdk.orig/jdk/src/share/classes/java/awt/MenuComponent.java 2011-02-28 16:06:20.000000000 +0000 ++++ openjdk/jdk/src/share/classes/java/awt/MenuComponent.java 2012-08-31 15:34:21.519576191 +0100 +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 1995, 2006, Oracle and/or its affiliates. All rights reserved. ++ * Copyright (c) 1995, 2012, 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 +@@ -29,7 +29,7 @@ + import java.io.IOException; + import java.io.ObjectInputStream; + import sun.awt.AppContext; +-import sun.awt.SunToolkit; ++import sun.awt.AWTAccessor; + import javax.accessibility.*; + + import java.security.AccessControlContext; +@@ -106,7 +106,7 @@ + */ + private transient volatile AccessControlContext acc = + AccessController.getContext(); +- ++ + /* + * Returns the acc this menu component was constructed with. + */ +@@ -129,6 +129,24 @@ + */ + private static final long serialVersionUID = -4536902356223894379L; + ++ static { ++ AWTAccessor.setMenuComponentAccessor( ++ new AWTAccessor.MenuComponentAccessor() { ++ public MenuContainer getParent(MenuComponent menuComp) { ++ return menuComp.parent; ++ } ++ public Font getFont_NoClientCode(MenuComponent menuComp) { ++ return menuComp.getFont_NoClientCode(); ++ } ++ public void setAppContext(MenuComponent menuComp, AppContext ctx) { ++ menuComp.appContext = ctx; ++ } ++ public AppContext getAppContext(MenuComponent menuComp) { ++ return menuComp.appContext; ++ } ++ }); ++ } ++ + /** + * Creates a MenuComponent. + * @exception HeadlessException if +diff -Nru openjdk.orig/jdk/src/share/classes/java/awt/MenuItem.java openjdk/jdk/src/share/classes/java/awt/MenuItem.java +--- openjdk.orig/jdk/src/share/classes/java/awt/MenuItem.java 2011-02-28 16:06:20.000000000 +0000 ++++ openjdk/jdk/src/share/classes/java/awt/MenuItem.java 2012-08-31 15:34:01.739212950 +0100 +@@ -31,7 +31,7 @@ + import java.io.ObjectInputStream; + import java.io.IOException; + import javax.accessibility.*; +- ++import sun.awt.AWTAccessor; + + /** + * All items in a menu must belong to the class +@@ -76,6 +76,29 @@ + if (!GraphicsEnvironment.isHeadless()) { + initIDs(); + } ++ ++ AWTAccessor.setMenuItemAccessor( ++ new AWTAccessor.MenuItemAccessor() { ++ public boolean isEnabled(MenuItem item) { ++ return item.enabled; ++ } ++ ++ public String getLabel(MenuItem item) { ++ return item.label; ++ } ++ ++ public MenuShortcut getShortcut(MenuItem item) { ++ return item.shortcut; ++ } ++ ++ public String getActionCommandImpl(MenuItem item) { ++ return item.getActionCommandImpl(); ++ } ++ ++ public boolean isItemEnabled(MenuItem item) { ++ return item.isItemEnabled(); ++ } ++ }); + } + + /** +diff -Nru openjdk.orig/jdk/src/share/classes/java/awt/Menu.java openjdk/jdk/src/share/classes/java/awt/Menu.java +--- openjdk.orig/jdk/src/share/classes/java/awt/Menu.java 2011-02-28 16:06:20.000000000 +0000 ++++ openjdk/jdk/src/share/classes/java/awt/Menu.java 2012-08-31 15:34:01.739212950 +0100 +@@ -31,6 +31,7 @@ + import java.awt.peer.MenuPeer; + import java.awt.event.KeyEvent; + import javax.accessibility.*; ++import sun.awt.AWTAccessor; + + /** + * A Menu object is a pull-down menu component +@@ -62,6 +63,13 @@ + if (!GraphicsEnvironment.isHeadless()) { + initIDs(); + } ++ ++ AWTAccessor.setMenuAccessor( ++ new AWTAccessor.MenuAccessor() { ++ public Vector getItems(Menu menu) { ++ return menu.items; ++ } ++ }); + } + + /** +diff -Nru openjdk.orig/jdk/src/share/classes/java/awt/PopupMenu.java openjdk/jdk/src/share/classes/java/awt/PopupMenu.java +--- openjdk.orig/jdk/src/share/classes/java/awt/PopupMenu.java 2011-02-28 16:06:20.000000000 +0000 ++++ openjdk/jdk/src/share/classes/java/awt/PopupMenu.java 2012-08-31 15:34:01.739212950 +0100 +@@ -28,6 +28,7 @@ + import java.awt.peer.PopupMenuPeer; + import javax.accessibility.*; + ++import sun.awt.AWTAccessor; + + /** + * A class that implements a menu which can be dynamically popped up +@@ -48,6 +49,15 @@ + + transient boolean isTrayIconPopup = false; + ++ static { ++ AWTAccessor.setPopupMenuAccessor( ++ new AWTAccessor.PopupMenuAccessor() { ++ public boolean isTrayIconPopup(PopupMenu popupMenu) { ++ return popupMenu.isTrayIconPopup; ++ } ++ }); ++ } ++ + /* + * JDK 1.1 serialVersionUID + */ +diff -Nru openjdk.orig/jdk/src/share/classes/java/awt/ScrollPaneAdjustable.java openjdk/jdk/src/share/classes/java/awt/ScrollPaneAdjustable.java +--- openjdk.orig/jdk/src/share/classes/java/awt/ScrollPaneAdjustable.java 2011-02-28 16:06:20.000000000 +0000 ++++ openjdk/jdk/src/share/classes/java/awt/ScrollPaneAdjustable.java 2012-08-31 15:34:01.739212950 +0100 +@@ -24,6 +24,8 @@ + */ + package java.awt; + ++import sun.awt.AWTAccessor; ++ + import java.awt.event.AdjustmentEvent; + import java.awt.event.AdjustmentListener; + import java.awt.peer.ScrollPanePeer; +@@ -156,6 +158,13 @@ + if (!GraphicsEnvironment.isHeadless()) { + initIDs(); + } ++ AWTAccessor.setScrollPaneAdjustableAccessor( ++ new AWTAccessor.ScrollPaneAdjustableAccessor() { ++ public void setTypedValue(final ScrollPaneAdjustable adj, ++ final int v, final int type) { ++ adj.setTypedValue(v, type); ++ } ++ }); + } + + /** +diff -Nru openjdk.orig/jdk/src/share/classes/java/awt/SystemTray.java openjdk/jdk/src/share/classes/java/awt/SystemTray.java +--- openjdk.orig/jdk/src/share/classes/java/awt/SystemTray.java 2011-02-28 16:06:20.000000000 +0000 ++++ openjdk/jdk/src/share/classes/java/awt/SystemTray.java 2012-08-31 15:34:01.739212950 +0100 +@@ -33,6 +33,7 @@ + import sun.awt.SunToolkit; + import sun.awt.HeadlessToolkit; + import sun.security.util.SecurityConstants; ++import sun.awt.AWTAccessor; + + /** + * The SystemTray class represents the system tray for a +@@ -125,6 +126,18 @@ + + transient private SystemTrayPeer peer; + ++ static { ++ AWTAccessor.setSystemTrayAccessor( ++ new AWTAccessor.SystemTrayAccessor() { ++ public void firePropertyChange(SystemTray tray, ++ String propertyName, ++ Object oldValue, ++ Object newValue) { ++ tray.firePropertyChange(propertyName, oldValue, newValue); ++ } ++ }); ++ } ++ + /** + * Private SystemTray constructor. + * +diff -Nru openjdk.orig/jdk/src/share/classes/java/awt/TrayIcon.java openjdk/jdk/src/share/classes/java/awt/TrayIcon.java +--- openjdk.orig/jdk/src/share/classes/java/awt/TrayIcon.java 2011-02-28 16:06:20.000000000 +0000 ++++ openjdk/jdk/src/share/classes/java/awt/TrayIcon.java 2012-08-31 15:34:01.739212950 +0100 +@@ -25,18 +25,11 @@ + + package java.awt; + +-import java.awt.Point; +-import java.awt.Toolkit; +-import java.awt.GraphicsEnvironment; + import java.awt.event.*; +-import java.awt.AWTEvent; +-import java.awt.AWTEventMulticaster; +-import java.awt.EventQueue; +-import java.awt.PopupMenu; +-import java.awt.Image; + import java.util.EventListener; + import java.awt.peer.TrayIconPeer; + import sun.awt.AppContext; ++import sun.awt.AWTAccessor; + import sun.awt.SunToolkit; + import java.util.EventObject; + import java.security.AccessControlContext; +@@ -112,7 +105,7 @@ + * because TrayIcon is not serializable. + */ + private final AccessControlContext acc = AccessController.getContext(); +- ++ + /* + * Returns the acc this tray icon was constructed with. + */ +@@ -128,6 +121,16 @@ + if (!GraphicsEnvironment.isHeadless()) { + initIDs(); + } ++ ++ AWTAccessor.setTrayIconAccessor( ++ new AWTAccessor.TrayIconAccessor() { ++ public void addNotify(TrayIcon trayIcon) throws AWTException { ++ trayIcon.addNotify(); ++ } ++ public void removeNotify(TrayIcon trayIcon) { ++ trayIcon.removeNotify(); ++ } ++ }); + } + + private TrayIcon() +diff -Nru openjdk.orig/jdk/src/share/classes/java/awt/Window.java openjdk/jdk/src/share/classes/java/awt/Window.java +--- openjdk.orig/jdk/src/share/classes/java/awt/Window.java 2011-02-28 16:06:20.000000000 +0000 ++++ openjdk/jdk/src/share/classes/java/awt/Window.java 2012-08-31 15:34:01.739212950 +0100 +@@ -51,6 +51,7 @@ + import java.util.concurrent.atomic.AtomicBoolean; + import javax.accessibility.*; + import sun.awt.AppContext; ++import sun.awt.AWTAccessor; + import sun.awt.CausedFocusEvent; + import sun.awt.SunToolkit; + import sun.awt.util.IdentityArrayList; +@@ -3221,6 +3222,26 @@ + + // ****************** END OF MIXING CODE ******************************** + ++ static { ++ AWTAccessor.setWindowAccessor(new AWTAccessor.WindowAccessor() { ++ public void setLWRequestStatus(Window changed, boolean status) { ++ changed.syncLWRequests = status; ++ } ++ ++ public boolean isAutoRequestFocus(Window w) { ++ return w.autoRequestFocus; ++ } ++ ++ public boolean isTrayIconWindow(Window window) { ++ return window.isTrayIconWindow; ++ } ++ ++ public void setTrayIconWindow(Window window, boolean state) { ++ window.isTrayIconWindow = state; ++ } ++ }); ++ } ++ + } // class Window + + +diff -Nru openjdk.orig/jdk/src/share/classes/javax/swing/ClientPropertyKey.java openjdk/jdk/src/share/classes/javax/swing/ClientPropertyKey.java +--- openjdk.orig/jdk/src/share/classes/javax/swing/ClientPropertyKey.java 2011-02-28 16:06:28.000000000 +0000 ++++ openjdk/jdk/src/share/classes/javax/swing/ClientPropertyKey.java 2012-08-31 15:34:01.739212950 +0100 +@@ -25,6 +25,8 @@ + + package javax.swing; + ++import sun.awt.AWTAccessor; ++ + /** + * An enumeration for keys used as client properties within the Swing + * implementation. +@@ -86,6 +88,15 @@ + */ + private final boolean reportValueNotSerializable; + ++ static { ++ AWTAccessor.setClientPropertyKeyAccessor( ++ new AWTAccessor.ClientPropertyKeyAccessor() { ++ public Object getJComponent_TRANSFER_HANDLER() { ++ return JComponent_TRANSFER_HANDLER; ++ } ++ }); ++ } ++ + /** + * Constructs a key with the {@code reportValueNotSerializable} property + * set to {@code false}. +diff -Nru openjdk.orig/jdk/src/share/classes/javax/swing/JComponent.java openjdk/jdk/src/share/classes/javax/swing/JComponent.java +--- openjdk.orig/jdk/src/share/classes/javax/swing/JComponent.java 2011-02-28 16:06:28.000000000 +0000 ++++ openjdk/jdk/src/share/classes/javax/swing/JComponent.java 2012-08-31 15:34:01.743213019 +0100 +@@ -53,6 +53,7 @@ + import static javax.swing.ClientPropertyKey.*; + import javax.accessibility.*; + ++import sun.awt.AWTAccessor; + import sun.swing.SwingUtilities2; + import sun.swing.UIClientPropertyKey; + +diff -Nru openjdk.orig/jdk/src/share/classes/sun/awt/AWTAccessor.java openjdk/jdk/src/share/classes/sun/awt/AWTAccessor.java +--- openjdk.orig/jdk/src/share/classes/sun/awt/AWTAccessor.java 2011-02-28 16:06:31.000000000 +0000 ++++ openjdk/jdk/src/share/classes/sun/awt/AWTAccessor.java 2012-08-31 15:34:01.743213019 +0100 +@@ -27,15 +27,18 @@ + + import java.awt.*; + import java.awt.event.InputEvent; ++import java.awt.event.KeyEvent; + import java.awt.geom.Point2D; +-import java.awt.image.BufferedImage; + + import sun.misc.Unsafe; + import java.awt.peer.ComponentPeer; + +-import java.security.AccessController; + import java.security.AccessControlContext; + ++import java.util.Vector; ++ ++import static java.awt.Dialog.ModalExclusionType; ++ + /** + * The AWTAccessor utility class. + * The main purpose of this class is to enable accessing +@@ -59,17 +62,183 @@ + * An interface of accessor for the java.awt.Component class. + */ + public interface ComponentAccessor { ++ /** ++ * Set the horizontal position of the component. ++ */ ++ void setX(Component comp, int x); ++ ++ /** ++ * Set the vertical position of the component. ++ */ ++ void setY(Component comp, int y); ++ ++ /** ++ * Set the width of the component. ++ */ ++ void setWidth(Component comp, int width); ++ ++ /** ++ * Set the height of the component. ++ */ ++ void setHeight(Component comp, int height); ++ ++ /** ++ * Gets the horizontal position of the component. ++ */ ++ int getX(Component comp); ++ ++ /** ++ * Gets the vertical position of the component. ++ */ ++ int getY(Component comp); ++ ++ /** ++ * Gets the width of the component. ++ */ ++ int getWidth(Component comp); ++ ++ /** ++ * Gets the height of the component. ++ */ ++ int getHeight(Component comp); ++ ++ /** ++ * Returns true if the component is packed. ++ */ ++ boolean isPacked(Component comp); ++ ++ /** ++ * Returns the appContext of the component. ++ */ ++ AppContext getAppContext(Component comp); ++ ++ /** ++ * Sets the appContext of the component. ++ */ ++ void setAppContext(Component comp, AppContext appContext); ++ ++ /** ++ * Returns the parent component. ++ */ ++ Container getParent(Component comp); ++ ++ /** ++ * Returns the font of the component. ++ */ ++ Font getFont_NoClientCode(Component comp); ++ ++ /** ++ * Processes the given event. ++ */ ++ void processEvent(Component comp, AWTEvent event); ++ ++ /** ++ * Enable the events given by the specified mask. ++ */ ++ void enableEvents(Component comp, long eventMask); ++ ++ /** ++ * Sets the parent of the component. ++ */ ++ void setParent(Component comp, Container parent); ++ ++ /** ++ * Gets the foreground colour of the component. ++ */ ++ Color getForeground(Component comp); ++ ++ /** ++ * Gets the background colour of the component. ++ */ ++ Color getBackground(Component comp); ++ ++ /** ++ * Sets the background colour of the component. ++ */ ++ void setBackground(Component comp, Color c); ++ ++ /** ++ * Gets the font of the component. ++ */ ++ Font getFont(Component comp); ++ ++ /** ++ * Gets the peer of the component. ++ */ ++ ComponentPeer getPeer(Component comp); ++ ++ /** ++ * Sets the peer of the component. ++ */ ++ void setPeer(Component comp, ComponentPeer peer); ++ ++ /** ++ * Gets the ignoreRepaint setting. ++ */ ++ boolean getIgnoreRepaint(Component comp); ++ ++ /** ++ * Call resetGC. ++ */ ++ void resetGC(Component comp); ++ ++ /** ++ * Returns true if the component is visible. ++ */ ++ boolean isVisible(Component comp); ++ ++ /** ++ * Returns true if the component is enabled. ++ */ ++ boolean isEnabled(Component comp); ++ ++ /** ++ * Gets the cursor set in the component. ++ */ ++ Cursor getCursor(Component comp); ++ ++ /** ++ * Returns the location of the component. ++ */ ++ Point getLocation(Component comp); ++ + /* + * Returns the acc this component was constructed with. + */ + AccessControlContext getAccessControlContext(Component comp); ++ ++ /** ++ * Requests that this Component get the input focus, if this ++ * Component's top-level ancestor is already the focused Window ++ */ ++ boolean requestFocusInWindow(Component comp, CausedFocusEvent.Cause cause); ++ ++ /** ++ * Requests that this Component get the input focus, providing the cause ++ */ ++ void requestFocus(Component comp, CausedFocusEvent.Cause cause); + } + + /* ++ * An interface of accessor for java.awt.Window class. ++ */ ++ public interface WindowAccessor { ++ /** Sets the synchronous status of focus requests on lightweight ++ * components in the specified window to the specified value. ++ */ ++ void setLWRequestStatus(Window changed, boolean status); ++ } ++ ++ /** + * An accessor for the AWTEvent class. + */ + public interface AWTEventAccessor { + /** ++ * Marks the event as posted. ++ */ ++ void setPosted(AWTEvent ev); ++ ++ /** + * Sets the flag on this AWTEvent indicating that it was + * generated by the system. + */ +@@ -80,12 +249,270 @@ + */ + boolean isSystemGenerated(AWTEvent ev); + +- +- /* ++ /** + * Returns the acc this event was constructed with. + */ + AccessControlContext getAccessControlContext(AWTEvent ev); + ++ /** ++ * Returns binary data associated with this event; ++ */ ++ byte[] getBData(AWTEvent ev); ++ ++ /** ++ * Associates binary data with this event; ++ */ ++ void setBData(AWTEvent ev, byte[] bdata); ++ } ++ ++ /* ++ * An accessor for the MenuComponent class. ++ */ ++ public interface MenuComponentAccessor { ++ /** ++ * Returns the appContext of the menu component. ++ */ ++ AppContext getAppContext(MenuComponent menuComp); ++ ++ /** ++ * Sets the appContext of the menu component. ++ */ ++ void setAppContext(MenuComponent menuComp, AppContext ctx); ++ ++ /** ++ * Returns the menu container of the menu component ++ */ ++ MenuContainer getParent(MenuComponent menuComp); ++ ++ /** ++ * Gets the font used for this menu component. ++ */ ++ Font getFont_NoClientCode(MenuComponent menuComp); ++ } ++ ++ /** An accessor for the EventQueue class ++ */ ++ public interface EventQueueAccessor { ++ /** ++ * Returns whether an event is pending on any of the separate Queues. ++ */ ++ boolean noEvents(EventQueue eventQueue); ++ /** ++ * Returns dispatch thread for the given EventQueue which has private access ++ */ ++ Thread getDispatchThread(EventQueue eventQueue); ++ /** ++ * Returns next queue for the given EventQueue which has private access ++ */ ++ EventQueue getNextQueue(EventQueue eventQueue); ++ /** ++ * Removes any pending events for the specified source object. ++ */ ++ void removeSourceEvents(EventQueue eventQueue, Object source, ++ boolean removeAllEvents); ++ ++ /** ++ * Called from PostEventQueue.postEvent to notify that a new event ++ * appeared. ++ */ ++ void wakeup(EventQueue eventQueue, boolean isShutdown); ++ } ++ ++ /** An accessor for the PopupMenu class ++ */ ++ public interface PopupMenuAccessor { ++ /** ++ * Returns whether the popup menu is attached to a tray ++ */ ++ boolean isTrayIconPopup(PopupMenu popupMenu); ++ } ++ ++ /** ++ * An accessor for the ScrollPaneAdjustable class. ++ */ ++ public interface ScrollPaneAdjustableAccessor { ++ /** ++ * Sets the value of this scrollbar to the specified value. ++ */ ++ void setTypedValue(final ScrollPaneAdjustable adj, final int v, ++ final int type); ++ } ++ ++ /** ++ * An accessor for the CheckboxMenuItem class ++ */ ++ public interface CheckboxMenuItemAccessor { ++ /** ++ * Returns whether menu item is checked ++ */ ++ boolean getState(CheckboxMenuItem cmi); ++ } ++ ++ /** ++ * An accessor for the Cursor class ++ */ ++ public interface CursorAccessor { ++ /** ++ * Returns pData of the Cursor class ++ */ ++ long getPData(Cursor cursor); ++ ++ /** ++ * Sets pData to the Cursor class ++ */ ++ void setPData(Cursor cursor, long pData); ++ ++ /** ++ * Return type of the Cursor class ++ */ ++ int getType(Cursor cursor); ++ } ++ ++ /** ++ * An accessor for the MenuBar class ++ */ ++ public interface MenuBarAccessor { ++ /** ++ * Returns help menu ++ */ ++ Menu getHelpMenu(MenuBar menuBar); ++ ++ /** ++ * Returns menus ++ */ ++ Vector getMenus(MenuBar menuBar); ++ } ++ ++ /** ++ * An accessor for the MenuItem class ++ */ ++ public interface MenuItemAccessor { ++ /** ++ * Returns whether menu item is enabled ++ */ ++ boolean isEnabled(MenuItem item); ++ ++ /** ++ * Gets the command name of the action event that is fired ++ * by this menu item. ++ */ ++ String getActionCommandImpl(MenuItem item); ++ ++ /** ++ * Returns true if the item and all its ancestors are ++ * enabled, false otherwise ++ */ ++ boolean isItemEnabled(MenuItem item); ++ ++ /** ++ * Returns label ++ */ ++ String getLabel(MenuItem item); ++ ++ /** ++ * Returns shortcut ++ */ ++ MenuShortcut getShortcut(MenuItem item); ++ } ++ ++ /** ++ * An accessor for the Menu class ++ */ ++ public interface MenuAccessor { ++ /** ++ * Returns vector of the items that are part of the Menu ++ */ ++ Vector getItems(Menu menu); ++ } ++ ++ /** ++ * An accessor for the KeyEvent class ++ */ ++ public interface KeyEventAccessor { ++ /** ++ * Sets rawCode field for KeyEvent ++ */ ++ void setRawCode(KeyEvent ev, long rawCode); ++ ++ /** ++ * Sets primaryLevelUnicode field for KeyEvent ++ */ ++ void setPrimaryLevelUnicode(KeyEvent ev, long primaryLevelUnicode); ++ ++ /** ++ * Sets extendedKeyCode field for KeyEvent ++ */ ++ void setExtendedKeyCode(KeyEvent ev, long extendedKeyCode); ++ } ++ ++ /** ++ * An accessor for the ClientPropertyKey class ++ */ ++ public interface ClientPropertyKeyAccessor { ++ /** ++ * Retrieves JComponent_TRANSFER_HANDLER enum object ++ */ ++ Object getJComponent_TRANSFER_HANDLER(); ++ } ++ ++ /** ++ * An accessor for the SystemTray class ++ */ ++ public interface SystemTrayAccessor { ++ /** ++ * Support for reporting bound property changes for Object properties. ++ */ ++ void firePropertyChange(SystemTray tray, String propertyName, Object oldValue, Object newValue); ++ } ++ ++ /** ++ * An accessor for the TrayIcon class ++ */ ++ public interface TrayIconAccessor { ++ void addNotify(TrayIcon trayIcon) throws AWTException; ++ void removeNotify(TrayIcon trayIcon); ++ } ++ ++ /** ++ * An accessor for the DefaultKeyboardFocusManager class ++ */ ++ public interface DefaultKeyboardFocusManagerAccessor { ++ public void consumeNextKeyTyped(DefaultKeyboardFocusManager dkfm, KeyEvent e); ++ } ++ ++ /** An interface of accessor for the KeyboardFocusManager class. ++ */ ++ public interface KeyboardFocusManagerAccessor { ++ /** ++ * Indicates whether the native implementation should ++ * proceed with a pending focus request for the heavyweight. ++ */ ++ int shouldNativelyFocusHeavyweight(Component heavyweight, ++ Component descendant, ++ boolean temporary, ++ boolean focusedWindowChangeAllowed, ++ long time, ++ CausedFocusEvent.Cause cause); ++ /* ++ * Delivers focus for the lightweight descendant of the heavyweight ++ * synchronously. ++ */ ++ boolean processSynchronousLightweightTransfer(Component heavyweight, ++ Component descendant, ++ boolean temporary, ++ boolean focusedWindowChangeAllowed, ++ long time); ++ /** ++ * Sets the most recent focus owner in the window. ++ */ ++ void setMostRecentFocusOwner(Window window, Component component); ++ ++ void removeLastFocusRequest(Component heavyweight); ++ Container getCurrentFocusCycleRoot(); ++ } ++ ++ public interface DialogAccessor { ++ ModalExclusionType getDefaultModalExclusionType(); + } + + /* +@@ -93,8 +520,73 @@ + * corresponding AWT classes by using setters defined below. + */ + private static ComponentAccessor componentAccessor; ++ ++ /* The java.awt.KeyboardFocusManager class accessor object. ++ */ ++ private static KeyboardFocusManagerAccessor kfmAccessor; ++ ++ private static WindowAccessor windowAccessor; ++ + private static AWTEventAccessor awtEventAccessor; + ++ private static MenuComponentAccessor menuComponentAccessor; ++ ++ /* The java.awt.EventQueue class accessor object. ++ */ ++ private static EventQueueAccessor eventQueueAccessor; ++ ++ /* The java.awt.PopupMenu class accessor object. ++ */ ++ private static PopupMenuAccessor popupMenuAccessor; ++ ++ /* The java.awt.ScrollPaneAdjustable class accessor object. ++ */ ++ private static ScrollPaneAdjustableAccessor scrollPaneAdjustableAccessor; ++ ++ /* The java.awt.CheckboxMenuItem class accessor object. ++ */ ++ private static CheckboxMenuItemAccessor checkboxMenuItemAccessor; ++ ++ /* The java.awt.Cursor class accessor object. ++ */ ++ private static CursorAccessor cursorAccessor; ++ ++ /* The java.awt.MenuBar class accessor object. ++ */ ++ private static MenuBarAccessor menuBarAccessor; ++ ++ /* The java.awt.MenuItem class accessor object. ++ */ ++ private static MenuItemAccessor menuItemAccessor; ++ ++ /* The java.awt.Menu class accessor object. ++ */ ++ private static MenuAccessor menuAccessor; ++ ++ /* The java.awt.KeyEvent class accessor object. ++ */ ++ private static KeyEventAccessor keyEventAccessor; ++ ++ /* The javax.swing.JComponent class accessor object. ++ */ ++ private static ClientPropertyKeyAccessor clientPropertyKeyAccessor; ++ ++ /* The java.awt.SystemTray class accessor object. ++ */ ++ private static SystemTrayAccessor systemTrayAccessor; ++ ++ /* The java.awt.TrayIcon class accessor object. ++ */ ++ private static TrayIconAccessor trayIconAccessor; ++ ++ /* The java.awt.DefaultKeyboardFocusManager class accessor object. ++ */ ++ private static DefaultKeyboardFocusManagerAccessor defaultKeyboardFocusManagerAccessor; ++ ++ /* The java.awt.Dialog class accessor object. ++ */ ++ private static DialogAccessor dialogAccessor; ++ + /* + * Set an accessor object for the java.awt.Component class. + */ +@@ -113,6 +605,55 @@ + return componentAccessor; + } + ++ /** Set an accessor object for the java.awt.KeyboardFocusManager class. ++ */ ++ public static void setKeyboardFocusManagerAccessor(KeyboardFocusManagerAccessor kfma) { ++ kfmAccessor = kfma; ++ } ++ ++ /** Retrieve the accessor object for the java.awt.KeyboardFocusManager class. ++ */ ++ public static KeyboardFocusManagerAccessor getKeyboardFocusManagerAccessor() { ++ if (kfmAccessor == null) { ++ unsafe.ensureClassInitialized(KeyboardFocusManager.class); ++ } ++ return kfmAccessor; ++ } ++ ++ /* ++ * Set an accessor object for the java.awt.MenuComponent class. ++ */ ++ public static void setMenuComponentAccessor(MenuComponentAccessor mca) { ++ menuComponentAccessor = mca; ++ } ++ ++ /* ++ * Retrieve the accessor object for the java.awt.MenuComponent class. ++ */ ++ public static MenuComponentAccessor getMenuComponentAccessor() { ++ if (menuComponentAccessor == null) { ++ unsafe.ensureClassInitialized(MenuComponent.class); ++ } ++ return menuComponentAccessor; ++ } ++ ++ /* ++ * Set an accessor object for the java.awt.Window class. ++ */ ++ public static void setWindowAccessor(WindowAccessor wa) { ++ windowAccessor = wa; ++ } ++ ++ /* ++ * Retrieve the accessor object for the java.awt.Window class. ++ */ ++ public static WindowAccessor getWindowAccessor() { ++ if (windowAccessor == null) { ++ unsafe.ensureClassInitialized(Window.class); ++ } ++ return windowAccessor; ++ } ++ + /* + * Set an accessor object for the java.awt.AWTEvent class. + */ +@@ -120,6 +661,224 @@ + awtEventAccessor = aea; + } + ++ /** Set an accessor object for the java.awt.EventQueue class. ++ */ ++ public static void setEventQueueAccessor(EventQueueAccessor eqa) { ++ eventQueueAccessor = eqa; ++ } ++ ++ /** Retrieve the accessor object for the java.awt.EventQueue class. ++ */ ++ public static EventQueueAccessor getEventQueueAccessor() { ++ if (eventQueueAccessor == null) { ++ unsafe.ensureClassInitialized(EventQueue.class); ++ } ++ return eventQueueAccessor; ++ } ++ ++ /** Set an accessor object for the java.awt.PopupMenu class. ++ */ ++ public static void setPopupMenuAccessor(PopupMenuAccessor pma) { ++ popupMenuAccessor = pma; ++ } ++ ++ /** Retrieve the accessor object for the java.awt.PopupMenu class. ++ */ ++ public static PopupMenuAccessor getPopupMenuAccessor() { ++ if (popupMenuAccessor == null) { ++ unsafe.ensureClassInitialized(PopupMenu.class); ++ } ++ return popupMenuAccessor; ++ } ++ ++ /** ++ * Set an accessor object for the java.awt.ScrollPaneAdjustable class. ++ */ ++ public static void setScrollPaneAdjustableAccessor(ScrollPaneAdjustableAccessor adj) { ++ scrollPaneAdjustableAccessor = adj; ++ } ++ ++ /** ++ * Retrieve the accessor object for the java.awt.ScrollPaneAdjustable ++ * class. ++ */ ++ public static ScrollPaneAdjustableAccessor getScrollPaneAdjustableAccessor() { ++ if (scrollPaneAdjustableAccessor == null) { ++ unsafe.ensureClassInitialized(ScrollPaneAdjustable.class); ++ } ++ return scrollPaneAdjustableAccessor; ++ } ++ ++ /** ++ * Set an accessor object for the java.awt.CheckboxMenuItem class. ++ */ ++ public static void setCheckboxMenuItemAccessor(CheckboxMenuItemAccessor cmia) { ++ checkboxMenuItemAccessor = cmia; ++ } ++ ++ /** ++ * Retrieve the accessor object for the java.awt.CheckboxMenuItem class. ++ */ ++ public static CheckboxMenuItemAccessor getCheckboxMenuItemAccessor() { ++ if (checkboxMenuItemAccessor == null) { ++ unsafe.ensureClassInitialized(CheckboxMenuItemAccessor.class); ++ } ++ return checkboxMenuItemAccessor; ++ } ++ ++ /** ++ * Set an accessor object for the java.awt.Cursor class. ++ */ ++ public static void setCursorAccessor(CursorAccessor ca) { ++ cursorAccessor = ca; ++ } ++ ++ /** ++ * Retrieve the accessor object for the java.awt.Cursor class. ++ */ ++ public static CursorAccessor getCursorAccessor() { ++ if (cursorAccessor == null) { ++ unsafe.ensureClassInitialized(CursorAccessor.class); ++ } ++ return cursorAccessor; ++ } ++ ++ /** ++ * Set an accessor object for the java.awt.MenuBar class. ++ */ ++ public static void setMenuBarAccessor(MenuBarAccessor mba) { ++ menuBarAccessor = mba; ++ } ++ ++ /** ++ * Retrieve the accessor object for the java.awt.MenuBar class. ++ */ ++ public static MenuBarAccessor getMenuBarAccessor() { ++ if (menuBarAccessor == null) { ++ unsafe.ensureClassInitialized(MenuBarAccessor.class); ++ } ++ return menuBarAccessor; ++ } ++ ++ /** ++ * Set an accessor object for the java.awt.MenuItem class. ++ */ ++ public static void setMenuItemAccessor(MenuItemAccessor mia) { ++ menuItemAccessor = mia; ++ } ++ ++ /** ++ * Retrieve the accessor object for the java.awt.MenuItem class. ++ */ ++ public static MenuItemAccessor getMenuItemAccessor() { ++ if (menuItemAccessor == null) { ++ unsafe.ensureClassInitialized(MenuItemAccessor.class); ++ } ++ return menuItemAccessor; ++ } ++ ++ /** ++ * Set an accessor object for the java.awt.Menu class. ++ */ ++ public static void setMenuAccessor(MenuAccessor ma) { ++ menuAccessor = ma; ++ } ++ ++ /** ++ * Retrieve the accessor object for the java.awt.Menu class. ++ */ ++ public static MenuAccessor getMenuAccessor() { ++ if (menuAccessor == null) { ++ unsafe.ensureClassInitialized(MenuAccessor.class); ++ } ++ return menuAccessor; ++ } ++ ++ /** ++ * Set an accessor object for the java.awt.event.KeyEvent class. ++ */ ++ public static void setKeyEventAccessor(KeyEventAccessor kea) { ++ keyEventAccessor = kea; ++ } ++ ++ /** ++ * Retrieve the accessor object for the java.awt.event.KeyEvent class. ++ */ ++ public static KeyEventAccessor getKeyEventAccessor() { ++ if (keyEventAccessor == null) { ++ unsafe.ensureClassInitialized(KeyEventAccessor.class); ++ } ++ return keyEventAccessor; ++ } ++ ++ /** ++ * Set an accessor object for the javax.swing.ClientPropertyKey class. ++ */ ++ public static void setClientPropertyKeyAccessor(ClientPropertyKeyAccessor cpka) { ++ clientPropertyKeyAccessor = cpka; ++ } ++ ++ /** ++ * Retrieve the accessor object for the javax.swing.ClientPropertyKey class. ++ */ ++ public static ClientPropertyKeyAccessor getClientPropertyKeyAccessor() { ++ if (clientPropertyKeyAccessor == null) { ++ unsafe.ensureClassInitialized(ClientPropertyKeyAccessor.class); ++ } ++ return clientPropertyKeyAccessor; ++ } ++ ++ /** ++ * Set an accessor object for the java.awt.SystemTray class. ++ */ ++ public static void setSystemTrayAccessor(SystemTrayAccessor sta) { ++ systemTrayAccessor = sta; ++ } ++ ++ /** ++ * Retrieve the accessor object for the java.awt.SystemTray class. ++ */ ++ public static SystemTrayAccessor getSystemTrayAccessor() { ++ if (systemTrayAccessor == null) { ++ unsafe.ensureClassInitialized(SystemTrayAccessor.class); ++ } ++ return systemTrayAccessor; ++ } ++ ++ /** ++ * Set an accessor object for the java.awt.TrayIcon class. ++ */ ++ public static void setTrayIconAccessor(TrayIconAccessor tia) { ++ trayIconAccessor = tia; ++ } ++ ++ /** ++ * Retrieve the accessor object for the java.awt.TrayIcon class. ++ */ ++ public static TrayIconAccessor getTrayIconAccessor() { ++ if (trayIconAccessor == null) { ++ unsafe.ensureClassInitialized(TrayIconAccessor.class); ++ } ++ return trayIconAccessor; ++ } ++ ++ /** ++ * Set an accessor object for the java.awt.DefaultKeyboardFocusManager class. ++ */ ++ public static void setDefaultKeyboardFocusManagerAccessor(DefaultKeyboardFocusManagerAccessor dkfma) { ++ defaultKeyboardFocusManagerAccessor = dkfma; ++ } ++ ++ /** ++ * Retrieve the accessor object for the java.awt.DefaultKeyboardFocusManager class. ++ */ ++ public static DefaultKeyboardFocusManagerAccessor getDefaultKeyboardFocusManagerAccessor() { ++ if (defaultKeyboardFocusManagerAccessor == null) { ++ unsafe.ensureClassInitialized(DefaultKeyboardFocusManagerAccessor.class); ++ } ++ return defaultKeyboardFocusManagerAccessor; ++ } ++ + /* + * Retrieve the accessor object for the java.awt.AWTEvent class. + */ +@@ -129,4 +888,22 @@ + } + return awtEventAccessor; + } ++ ++ /* ++ * Retrieve the accessor object for the java.awt.Dialog class. ++ */ ++ public static DialogAccessor getDialogAccessor() { ++ if (dialogAccessor == null) { ++ unsafe.ensureClassInitialized(Dialog.class); ++ } ++ return dialogAccessor; ++ } ++ ++ /** ++ * Set an accessor object for the java.awt.Dialog class. ++ */ ++ public static void setDialogAccessor(DialogAccessor accessDialog) { ++ dialogAccessor = accessDialog; ++ } ++ + } +diff -Nru openjdk.orig/jdk/src/share/classes/sun/awt/ComponentAccessor.java openjdk/jdk/src/share/classes/sun/awt/ComponentAccessor.java +--- openjdk.orig/jdk/src/share/classes/sun/awt/ComponentAccessor.java 2011-02-28 16:06:31.000000000 +0000 ++++ openjdk/jdk/src/share/classes/sun/awt/ComponentAccessor.java 2012-08-31 15:34:01.743213019 +0100 +@@ -57,443 +57,129 @@ + + public class ComponentAccessor + { +- private static Class componentClass; +- private static Field fieldX; +- private static Field fieldY; +- private static Field fieldWidth; +- private static Field fieldHeight; +- private static Method methodGetParentNoClientCode; +- private static Method methodGetFontNoClientCode; +- private static Method methodProcessEvent; +- private static Method methodEnableEvents; +- private static Field fieldParent; +- private static Field fieldBackground; +- private static Field fieldForeground; +- private static Field fieldFont; +- private static Field fieldPacked; +- private static Field fieldIgnoreRepaint; +- private static Field fieldPeer; +- private static Method methodResetGC; +- private static Field fieldVisible; +- private static Method methodIsEnabledImpl; +- private static Method methodGetCursorNoClientCode; +- private static Method methodLocationNoClientCode; + +- private static final Logger log = Logger.getLogger("sun.awt.ComponentAccessor"); ++ private static final AWTAccessor.ComponentAccessor ca = AWTAccessor.getComponentAccessor(); + + private ComponentAccessor() { + } + +- static { +- AccessController.doPrivileged( new PrivilegedAction() { +- public Object run() { +- try { +- componentClass = Class.forName("java.awt.Component"); +- fieldX = componentClass.getDeclaredField("x"); +- fieldX.setAccessible(true); +- fieldY = componentClass.getDeclaredField("y"); +- fieldY.setAccessible(true); +- fieldWidth = componentClass.getDeclaredField("width"); +- fieldWidth.setAccessible(true); +- fieldHeight = componentClass.getDeclaredField("height"); +- fieldHeight.setAccessible(true); +- fieldForeground = componentClass.getDeclaredField("foreground"); +- fieldForeground.setAccessible(true); +- fieldBackground = componentClass.getDeclaredField("background"); +- fieldBackground.setAccessible(true); +- fieldFont = componentClass.getDeclaredField("font"); +- fieldFont.setAccessible(true); +- methodGetParentNoClientCode = componentClass.getDeclaredMethod("getParent_NoClientCode", (Class[]) null); +- methodGetParentNoClientCode.setAccessible(true); +- methodGetFontNoClientCode = componentClass.getDeclaredMethod("getFont_NoClientCode", (Class[]) null); +- methodGetFontNoClientCode.setAccessible(true); +- Class[] argTypes = { AWTEvent.class }; +- methodProcessEvent = componentClass.getDeclaredMethod("processEvent",argTypes); +- methodProcessEvent.setAccessible(true); +- Class[] argTypesForMethodEnableEvents = { Long.TYPE }; +- methodEnableEvents = componentClass.getDeclaredMethod("enableEvents",argTypesForMethodEnableEvents); +- methodEnableEvents.setAccessible(true); +- +- fieldParent = componentClass.getDeclaredField("parent"); +- fieldParent.setAccessible(true); +- fieldPacked = componentClass.getDeclaredField("isPacked"); +- fieldPacked.setAccessible(true); +- fieldIgnoreRepaint = componentClass.getDeclaredField("ignoreRepaint"); +- fieldIgnoreRepaint.setAccessible(true); +- +- fieldPeer = componentClass.getDeclaredField("peer"); +- fieldPeer.setAccessible(true); +- +- methodResetGC = componentClass.getDeclaredMethod("resetGC", (Class[]) null); +- methodResetGC.setAccessible(true); +- +- fieldVisible = componentClass.getDeclaredField("visible"); +- fieldVisible.setAccessible(true); +- +- methodIsEnabledImpl = componentClass.getDeclaredMethod("isEnabledImpl", (Class[]) null); +- methodIsEnabledImpl.setAccessible(true); +- +- methodGetCursorNoClientCode = componentClass.getDeclaredMethod("getCursor_NoClientCode", (Class[]) null); +- methodGetCursorNoClientCode.setAccessible(true); +- +- methodLocationNoClientCode = componentClass.getDeclaredMethod("location_NoClientCode", (Class[]) null); +- methodLocationNoClientCode.setAccessible(true); +- } +- catch (NoSuchFieldException e) { +- log.log(Level.FINE, "Unable to initialize ComponentAccessor", e); +- } +- catch (ClassNotFoundException e) { +- log.log(Level.FINE, "Unable to initialize ComponentAccessor", e); +- } +- catch (NoSuchMethodException e) { +- log.log(Level.FINE, "Unable to initialize ComponentAccessor", e); +- } +- // to please javac +- return null; +- } +- }); +- } +- + public static void setX(Component c, int x) + { +- try { +- fieldX.setInt(c,x); +- } +- catch (IllegalAccessException e) +- { +- log.log(Level.FINE, "Unable to access the Component object", e); +- } ++ ca.setX(c, x); + } + + public static void setY(Component c, int y) + { +- try { +- fieldY.setInt(c,y); +- } +- catch (IllegalAccessException e) +- { +- log.log(Level.FINE, "Unable to access the Component object", e); +- } ++ ca.setY(c, y); + } + + public static void setWidth(Component c, int width) + { +- try { +- fieldWidth.setInt(c,width); +- } +- catch (IllegalAccessException e) +- { +- log.log(Level.FINE, "Unable to access the Component object", e); +- } ++ ca.setWidth(c, width); + } + + public static void setHeight(Component c, int height) + { +- try { +- fieldHeight.setInt(c,height); +- } +- catch (IllegalAccessException e) +- { +- log.log(Level.FINE, "Unable to access the Component object", e); +- } ++ ca.setHeight(c, height); + } + + public static void setBounds(Component c, int x, int y, int width, int height) + { +- try { +- fieldX.setInt(c,x); +- fieldY.setInt(c,y); +- fieldWidth.setInt(c,width); +- fieldHeight.setInt(c,height); +- } +- catch (IllegalAccessException e) +- { +- log.log(Level.FINE, "Unable to access the Component object", e); +- } ++ ca.setX(c, x); ++ ca.setY(c, y); ++ ca.setWidth(c, width); ++ ca.setHeight(c, height); + } + + public static int getX(Component c) { +- try { +- return fieldX.getInt(c); +- } +- catch (IllegalAccessException e) +- { +- log.log(Level.FINE, "Unable to access the Component object", e); +- } +- return 0; ++ return ca.getX(c); + } + + public static int getY(Component c) { +- try { +- return fieldY.getInt(c); +- } +- catch (IllegalAccessException e) +- { +- log.log(Level.FINE, "Unable to access the Component object", e); +- } +- return 0; ++ return ca.getY(c); + } + + public static int getWidth(Component c) { +- try { +- return fieldWidth.getInt(c); +- } +- catch (IllegalAccessException e) +- { +- log.log(Level.FINE, "Unable to access the Component object", e); +- } +- return 0; ++ return ca.getWidth(c); + } + + public static int getHeight(Component c) { +- try { +- return fieldHeight.getInt(c); +- } +- catch (IllegalAccessException e) +- { +- log.log(Level.FINE, "Unable to access the Component object", e); +- } +- return 0; ++ return ca.getHeight(c); + } + + public static boolean getIsPacked(Component c) { +- try { +- return fieldPacked.getBoolean(c); +- } +- catch (IllegalAccessException e) +- { +- log.log(Level.FINE, "Unable to access the Component object", e); +- } +- return false; ++ return ca.isPacked(c); + } + + public static Container getParent_NoClientCode(Component c) { +- Container parent=null; +- +- try { +- parent = (Container) methodGetParentNoClientCode.invoke(c, (Object[]) null); +- } +- catch (IllegalAccessException e) +- { +- log.log(Level.FINE, "Unable to access the Component object", e); +- } +- catch (InvocationTargetException e) { +- log.log(Level.FINE, "Unable to invoke on the Component object", e); +- } +- +- return parent; ++ return ca.getParent(c); + } + + public static Font getFont_NoClientCode(Component c) { +- Font font=null; +- +- try { +- font = (Font) methodGetFontNoClientCode.invoke(c, (Object[]) null); +- } +- catch (IllegalAccessException e) +- { +- log.log(Level.FINE, "Unable to access the Component object", e); +- } +- catch (InvocationTargetException e) { +- log.log(Level.FINE, "Unable to invoke on the Component object", e); +- } +- +- return font; ++ return ca.getFont_NoClientCode(c); + } + + public static void processEvent(Component c, AWTEvent event) { +- Font font=null; +- +- try { +- Object[] args = new Object[1]; +- args[0] = event; +- methodProcessEvent.invoke(c,args); +- } +- catch (IllegalAccessException e) +- { +- log.log(Level.FINE, "Unable to access the Component object", e); +- } +- catch (InvocationTargetException e) { +- log.log(Level.FINE, "Unable to invoke on the Component object", e); +- } ++ ca.processEvent(c, event); + } + + public static void enableEvents(Component c, long event_mask) { +- try { +- Object[] args = new Object[1]; +- args[0] = Long.valueOf(event_mask); +- methodEnableEvents.invoke(c,args); +- } +- catch (IllegalAccessException e) +- { +- log.log(Level.FINE, "Unable to access the Component object", e); +- } +- catch (InvocationTargetException e) { +- log.log(Level.FINE, "Unable to invoke on the Component object", e); +- } ++ ca.enableEvents(c, event_mask); + } + + public static void setParent(Component c, Container parent) + { +- try { +- fieldParent.set(c,parent); +- } +- catch (IllegalAccessException e) +- { +- log.log(Level.FINE, "Unable to access the Component object", e); +- } ++ ca.setParent(c, parent); + } + + public static Color getForeground(Component c) + { +- Color color = null; +- try { +- color = (Color) fieldForeground.get(c); +- } +- catch (IllegalAccessException e) +- { +- log.log(Level.FINE, "Unable to access the Component object", e); +- } +- return color; ++ return ca.getForeground(c); + } + + public static Color getBackground(Component c) + { +- Color color = null; +- try { +- color = (Color) fieldBackground.get(c); +- } +- catch (IllegalAccessException e) +- { +- log.log(Level.FINE, "Unable to access the Component object", e); +- } +- return color; ++ return ca.getBackground(c); + } + + public static void setBackground(Component c, Color color) { +- try { +- fieldBackground.set(c, color); +- } +- catch (IllegalAccessException e) +- { +- log.log(Level.FINE, "Unable to access the Component object", e); +- } ++ ca.setBackground(c, color); + } + + public static Font getFont(Component c) + { +- Font f = null; +- try { +- f = (Font) fieldFont.get(c); +- } +- catch (IllegalAccessException e) +- { +- log.log(Level.FINE, "Unable to access the Component object", e); +- } +- return f; ++ return ca.getFont(c); + } + + public static ComponentPeer getPeer(Component c) { +- ComponentPeer peer = null; +- try { +- peer = (ComponentPeer)fieldPeer.get(c); +- } +- catch (IllegalAccessException e) +- { +- log.log(Level.FINE, "Unable to access the Component object", e); +- } +- return peer; ++ return ca.getPeer(c); + } + + public static void setPeer(Component c, ComponentPeer peer) { +- try { +- fieldPeer.set(c, peer); +- } catch (IllegalAccessException e) +- { +- log.log(Level.FINE, "Unable to access the Component object", e); +- } ++ ca.setPeer(c, peer); + } + + public static boolean getIgnoreRepaint(Component comp) { +- try { +- return fieldIgnoreRepaint.getBoolean(comp); +- } +- catch (IllegalAccessException e) { +- log.log(Level.FINE, "Unable to access the Component object", e); +- } +- +- return false; ++ return ca.getIgnoreRepaint(comp); + } + + public static void resetGC(Component c) { +- try { +- methodResetGC.invoke(c, (Object[]) null); +- } +- catch (IllegalAccessException e) { +- log.log(Level.FINE, "Unable to access the Component object", e); +- } +- catch (InvocationTargetException e) { +- log.log(Level.FINE, "Unable to invoke on the Component object", e); +- } ++ ca.resetGC(c); + } + + public static boolean getVisible(Component c) { +- try { +- return fieldVisible.getBoolean(c); +- } +- catch (IllegalAccessException e) +- { +- log.log(Level.FINE, "Unable to access the Component object", e); +- } +- return false; ++ return ca.isVisible(c); + } + + public static boolean isEnabledImpl(Component c) { +- boolean enabled = true; +- try { +- enabled = (Boolean) methodIsEnabledImpl.invoke(c, (Object[]) null); +- } +- catch (IllegalAccessException e) +- { +- log.log(Level.FINE, "Unable to access the Component object", e); +- } +- catch (InvocationTargetException e) { +- log.log(Level.FINE, "Unable to invoke on the Component object", e); +- } +- return enabled; ++ return ca.isEnabled(c); + } + + public static Cursor getCursor_NoClientCode(Component c) { +- Cursor cursor = null; +- +- try { +- cursor = (Cursor) methodGetCursorNoClientCode.invoke(c, (Object[]) null); +- } +- catch (IllegalAccessException e) +- { +- log.log(Level.FINE, "Unable to access the Component object", e); +- } +- catch (InvocationTargetException e) { +- log.log(Level.FINE, "Unable to invoke on the Component object", e); +- } +- +- return cursor; ++ return ca.getCursor(c); + } + + public static Point getLocation_NoClientCode(Component c) { +- Point loc = null; +- +- try { +- loc = (Point) methodLocationNoClientCode.invoke(c, (Object[]) null); +- } +- catch (IllegalAccessException e) +- { +- log.log(Level.FINE, "Unable to access the Component object", e); +- } +- catch (InvocationTargetException e) { +- log.log(Level.FINE, "Unable to invoke on the Component object", e); +- } +- +- return loc; ++ return ca.getLocation(c); + } + } +diff -Nru openjdk.orig/jdk/src/share/classes/sun/awt/EmbeddedFrame.java openjdk/jdk/src/share/classes/sun/awt/EmbeddedFrame.java +--- openjdk.orig/jdk/src/share/classes/sun/awt/EmbeddedFrame.java 2011-02-28 16:06:31.000000000 +0000 ++++ openjdk/jdk/src/share/classes/sun/awt/EmbeddedFrame.java 2012-08-31 15:34:01.743213019 +0100 +@@ -29,12 +29,6 @@ + import java.awt.event.*; + import java.awt.image.*; + import java.awt.peer.*; +-import java.security.AccessController; +-import java.security.PrivilegedAction; +-import java.lang.reflect.Constructor; +-import java.lang.reflect.InvocationTargetException; +-import java.lang.reflect.Modifier; +-import java.lang.reflect.Field; + import java.beans.PropertyChangeListener; + import java.beans.PropertyChangeEvent; + import java.util.Set; +@@ -63,8 +57,6 @@ + implements KeyEventDispatcher, PropertyChangeListener { + + private boolean isCursorAllowed = true; +- private static Field fieldPeer; +- private static Field currentCycleRoot; + private boolean supportsXEmbed = false; + private KeyboardFocusManager appletKFM; + // JDK 1.1 compatibility +@@ -205,39 +197,8 @@ + */ + public boolean dispatchKeyEvent(KeyEvent e) { + +- // We can't guarantee that this is called on the same AppContext as EmbeddedFrame +- // belongs to. That's why we can't use public methods to find current focus cycle +- // root. Instead, we access KFM's private field directly. +- if (currentCycleRoot == null) { +- currentCycleRoot = (Field)AccessController.doPrivileged(new PrivilegedAction() { +- public Object run() { +- try { +- Field unaccessibleRoot = KeyboardFocusManager.class. +- getDeclaredField("currentFocusCycleRoot"); +- if (unaccessibleRoot != null) { +- unaccessibleRoot.setAccessible(true); +- } +- return unaccessibleRoot; +- } catch (NoSuchFieldException e1) { +- assert false; +- } catch (SecurityException e2) { +- assert false; +- } +- return null; +- } +- }); +- } +- +- Container currentRoot = null; +- if (currentCycleRoot != null) { +- try { +- // The field is static, so we can pass null to Field.get() as the argument. +- currentRoot = (Container)currentCycleRoot.get(null); +- } catch (IllegalAccessException e3) { +- // This is impossible: currentCycleRoot would be null if setAccessible failed. +- assert false; +- } +- } ++ Container currentRoot = AWTAccessor.getKeyboardFocusManagerAccessor() ++ .getCurrentFocusCycleRoot(); + + // if we are not in EmbeddedFrame's cycle, we should not try to leave. + if (this != currentRoot) { +@@ -337,32 +298,8 @@ + } + + protected void setPeer(final ComponentPeer p){ +- if (fieldPeer == null) { +- fieldPeer = (Field)AccessController.doPrivileged(new PrivilegedAction() { +- public Object run() { +- try { +- Field lnkPeer = Component.class.getDeclaredField("peer"); +- if (lnkPeer != null) { +- lnkPeer.setAccessible(true); +- } +- return lnkPeer; +- } catch (NoSuchFieldException e) { +- assert false; +- } catch (SecurityException e) { +- assert false; +- } +- return null; +- }//run +- }); +- } +- try{ +- if (fieldPeer !=null){ +- fieldPeer.set(EmbeddedFrame.this, p); +- } +- } catch (IllegalAccessException e) { +- assert false; +- } +- }; //setPeer method ends ++ AWTAccessor.getComponentAccessor().setPeer(EmbeddedFrame.this, p); ++ }; + + /** + * Synthesize native message to activate or deactivate EmbeddedFrame window +diff -Nru openjdk.orig/jdk/src/share/classes/sun/awt/KeyboardFocusManagerPeerImpl.java openjdk/jdk/src/share/classes/sun/awt/KeyboardFocusManagerPeerImpl.java +--- openjdk.orig/jdk/src/share/classes/sun/awt/KeyboardFocusManagerPeerImpl.java 2011-02-28 16:06:31.000000000 +0000 ++++ openjdk/jdk/src/share/classes/sun/awt/KeyboardFocusManagerPeerImpl.java 2012-08-31 15:34:01.743213019 +0100 +@@ -30,8 +30,6 @@ + + import java.awt.peer.KeyboardFocusManagerPeer; + +-import java.lang.reflect.InvocationTargetException; +-import java.lang.reflect.Method; + + + public class KeyboardFocusManagerPeerImpl implements KeyboardFocusManagerPeer { +@@ -56,18 +54,7 @@ + clearNativeGlobalFocusOwner(activeWindow); + } + +- static Method m_removeLastFocusRequest = null; + public static void removeLastFocusRequest(Component heavyweight) { +- try { +- if (m_removeLastFocusRequest == null) { +- m_removeLastFocusRequest = SunToolkit.getMethod(KeyboardFocusManager.class, "removeLastFocusRequest", +- new Class[] {Component.class}); +- } +- m_removeLastFocusRequest.invoke(null, new Object[]{heavyweight}); +- } catch (InvocationTargetException ite) { +- ite.printStackTrace(); +- } catch (IllegalAccessException ex) { +- ex.printStackTrace(); +- } ++ AWTAccessor.getKeyboardFocusManagerAccessor().removeLastFocusRequest(heavyweight); + } + } +diff -Nru openjdk.orig/jdk/src/share/classes/sun/awt/SunToolkit.java openjdk/jdk/src/share/classes/sun/awt/SunToolkit.java +--- openjdk.orig/jdk/src/share/classes/sun/awt/SunToolkit.java 2011-02-28 16:06:31.000000000 +0000 ++++ openjdk/jdk/src/share/classes/sun/awt/SunToolkit.java 2012-08-31 15:34:01.743213019 +0100 +@@ -37,6 +37,7 @@ + import java.awt.geom.AffineTransform; + import java.awt.TrayIcon; + import java.awt.SystemTray; ++import java.lang.reflect.Constructor; + import java.io.*; + import java.net.URL; + import java.net.JarURLConnection; +@@ -53,14 +54,8 @@ + import sun.awt.image.*; + import sun.security.action.GetPropertyAction; + import sun.security.action.GetBooleanAction; +-import java.lang.reflect.Field; +-import java.lang.reflect.Method; +-import java.lang.reflect.Constructor; + import java.lang.reflect.InvocationTargetException; + import java.security.AccessController; +-import java.security.PrivilegedAction; +-import java.security.PrivilegedActionException; +-import java.security.PrivilegedExceptionAction; + + public abstract class SunToolkit extends Toolkit + implements WindowClosingSupport, WindowClosingListener, +@@ -83,14 +78,6 @@ + */ + public static final int GRAB_EVENT_MASK = 0x80000000; + +- private static Field syncLWRequestsField; +- private static Method wakeupMethod; +- private static Field componentKeyField; +- private static Field menuComponentKeyField; +- private static Field trayIconKeyField; +- private static Field componentAppContextField; +- private static Field menuComponentAppContextField; +- private static Field isPostedField; + /* The key to put()/get() the PostEventQueue into/from the AppContext. + */ + private static final String POST_EVENT_QUEUE_KEY = "PostEventQueue"; +@@ -226,7 +213,8 @@ + public abstract RobotPeer createRobot(Robot target, GraphicsDevice screen) + throws AWTException; + +- public KeyboardFocusManagerPeer createKeyboardFocusManagerPeer(KeyboardFocusManager manager) throws HeadlessException { ++ public KeyboardFocusManagerPeer createKeyboardFocusManagerPeer( ++ KeyboardFocusManager manager) throws HeadlessException { + KeyboardFocusManagerPeerImpl peer = new KeyboardFocusManagerPeerImpl(manager); + return peer; + } +@@ -327,52 +315,8 @@ + return appContext; + } + +- public static Field getField(final Class klass, final String fieldName) { +- return AccessController.doPrivileged(new PrivilegedAction() { +- public Field run() { +- try { +- Field field = klass.getDeclaredField(fieldName); +- assert (field != null); +- field.setAccessible(true); +- return field; +- } catch (SecurityException e) { +- assert false; +- } catch (NoSuchFieldException e) { +- assert false; +- } +- return null; +- }//run +- }); +- } +- + static void wakeupEventQueue(EventQueue q, boolean isShutdown){ +- if (wakeupMethod == null){ +- wakeupMethod = (Method)AccessController.doPrivileged(new PrivilegedAction(){ +- public Object run(){ +- try { +- Method method = EventQueue.class.getDeclaredMethod("wakeup",new Class [] {Boolean.TYPE} ); +- if (method != null) { +- method.setAccessible(true); +- } +- return method; +- } catch (NoSuchMethodException e) { +- assert false; +- } catch (SecurityException e) { +- assert false; +- } +- return null; +- }//run +- }); +- } +- try{ +- if (wakeupMethod != null){ +- wakeupMethod.invoke(q, new Object[]{Boolean.valueOf(isShutdown)}); +- } +- } catch (InvocationTargetException e){ +- assert false; +- } catch (IllegalAccessException e) { +- assert false; +- } ++ AWTAccessor.getEventQueueAccessor().wakeup(q, isShutdown); + } + + /* +@@ -421,20 +365,12 @@ + if (!(target instanceof Component) && !(target instanceof MenuComponent)) { + return false; + } +- try{ +- if (target instanceof Component){ +- if (componentAppContextField == null) { +- componentAppContextField = getField(Component.class, "appContext"); +- } +- componentAppContextField.set(target, context); +- } else if (target instanceof MenuComponent) { +- if (menuComponentAppContextField == null) { +- menuComponentAppContextField = getField(MenuComponent.class, "appContext"); +- } +- menuComponentAppContextField.set(target, context); +- } +- } catch( IllegalAccessException e){ +- assert false; ++ if (target instanceof Component){ ++ Component comp = (Component) target; ++ AWTAccessor.getComponentAccessor().setAppContext(comp, context); ++ } else if (target instanceof MenuComponent) { ++ MenuComponent menuComp = (MenuComponent) target; ++ AWTAccessor.getMenuComponentAccessor().setAppContext(menuComp, context); + } + + return true; +@@ -446,20 +382,12 @@ + */ + private static AppContext getAppContext(Object target) { + AppContext retObj = null; +- try{ +- if (target instanceof Component){ +- if (componentAppContextField == null) { +- componentAppContextField = getField(Component.class, "appContext"); +- } +- retObj = (AppContext) componentAppContextField.get(target); +- } else if (target instanceof MenuComponent) { +- if (menuComponentAppContextField == null) { +- menuComponentAppContextField = getField(MenuComponent.class, "appContext"); +- } +- retObj = (AppContext) menuComponentAppContextField.get(target); +- } +- } catch( IllegalAccessException e){ +- assert false; ++ if (target instanceof Component){ ++ Component comp = (Component) target; ++ retObj = AWTAccessor.getComponentAccessor().getAppContext(comp); ++ } else if (target instanceof MenuComponent) { ++ MenuComponent menuComp = (MenuComponent) target; ++ retObj = AWTAccessor.getMenuComponentAccessor().getAppContext(menuComp); + } + return retObj; + } +@@ -509,17 +437,8 @@ + */ + + public static void setLWRequestStatus(Window changed,boolean status){ +- if (syncLWRequestsField == null){ +- syncLWRequestsField = getField(Window.class, "syncLWRequests"); +- } +- try{ +- if (syncLWRequestsField != null){ +- syncLWRequestsField.setBoolean(changed, status); +- } +- } catch( IllegalAccessException e){ +- assert false; +- } +- }; ++ AWTAccessor.getWindowAccessor().setLWRequestStatus(changed, status); ++ } + + public static void checkAndSetPolicy(Container cont, boolean isSwingCont) + { +@@ -626,18 +545,9 @@ + * Post AWTEvent of high priority. + */ + public static void postPriorityEvent(final AWTEvent e) { +- if (isPostedField == null) { +- isPostedField = getField(AWTEvent.class, "isPosted"); +- } + PeerEvent pe = new PeerEvent(Toolkit.getDefaultToolkit(), new Runnable() { + public void run() { +- try { +- isPostedField.setBoolean(e, true); +- } catch (IllegalArgumentException e) { +- assert(false); +- } catch (IllegalAccessException e) { +- assert(false); +- } ++ AWTAccessor.getAWTEventAccessor().setPosted(e); + ((Component)e.getSource()).dispatchEvent(e); + } + }, PeerEvent.ULTIMATE_PRIORITY_EVENT); +@@ -746,36 +656,6 @@ + } + + /* +- * Returns next queue for the given EventQueue which has private access +- */ +- private static EventQueue getNextQueue(final Object o) { +- EventQueue result = null; +- try{ +- Field nextQueueField = getField(EventQueue.class, +- "nextQueue"); +- result = (EventQueue)nextQueueField.get(o); +- } catch( IllegalAccessException e){ +- assert false; +- } +- return result; +- } +- +- /* +- * Returns dispatch thread for the given EventQueue which has private access +- */ +- private static Thread getDispatchThread(final Object o) { +- Thread result = null; +- try{ +- Field dispatchThreadField = getField(EventQueue.class, +- "dispatchThread"); +- result = (Thread)dispatchThreadField.get(o); +- } catch( IllegalAccessException e){ +- assert false; +- } +- return result; +- } +- +- /* + * Returns true if the calling thread is the event dispatch thread + * contained within AppContext which associated with the given target. + * Use this call to ensure that a given task is being executed +@@ -785,13 +665,14 @@ + AppContext appContext = targetToAppContext(target); + EventQueue eq = (EventQueue)appContext.get(AppContext.EVENT_QUEUE_KEY); + +- EventQueue next = getNextQueue(eq); ++ EventQueue next = AWTAccessor.getEventQueueAccessor().getNextQueue(eq); + while (next != null) { + eq = next; +- next = getNextQueue(eq); ++ next = AWTAccessor.getEventQueueAccessor().getNextQueue(eq); + } + +- return (Thread.currentThread() == getDispatchThread(eq)); ++ return (Thread.currentThread() == AWTAccessor.getEventQueueAccessor() ++ .getDispatchThread(eq)); + } + + public Dimension getScreenSize() { +@@ -842,7 +723,8 @@ + * value is {@code false}. + */ + public static boolean getSunAwtNoerasebackground() { +- return AccessController.doPrivileged(new GetBooleanAction("sun.awt.noerasebackground")); ++ return AccessController.doPrivileged( ++ new GetBooleanAction("sun.awt.noerasebackground")); + } + + /** +@@ -850,7 +732,8 @@ + * value is {@code false}. + */ + public static boolean getSunAwtErasebackgroundonresize() { +- return AccessController.doPrivileged(new GetBooleanAction("sun.awt.erasebackgroundonresize")); ++ return AccessController.doPrivileged( ++ new GetBooleanAction("sun.awt.erasebackgroundonresize")); + } + + +@@ -1333,18 +1216,7 @@ + private static Dialog.ModalExclusionType DEFAULT_MODAL_EXCLUSION_TYPE; + + static { +- DEFAULT_MODAL_EXCLUSION_TYPE = (Dialog.ModalExclusionType)AccessController.doPrivileged(new PrivilegedAction() { +- public Object run() { +- Dialog.ModalExclusionType defaultType = Dialog.ModalExclusionType.NO_EXCLUDE; +- try { +- java.lang.reflect.Field f = Dialog.class.getDeclaredField("DEFAULT_MODAL_EXCLUSION_TYPE"); +- f.setAccessible(true); +- defaultType = (Dialog.ModalExclusionType)f.get(null); +- } catch (Exception e) { +- } +- return defaultType; +- } +- }); ++ DEFAULT_MODAL_EXCLUSION_TYPE = AWTAccessor.getDialogAccessor().getDefaultModalExclusionType(); + } + + /** +@@ -1525,22 +1397,6 @@ + || comp instanceof Window); + } + +- public static Method getMethod(final Class clz, final String methodName, final Class[] params) { +- Method res = null; +- try { +- res = AccessController.doPrivileged(new PrivilegedExceptionAction() { +- public Method run() throws Exception { +- Method m = clz.getDeclaredMethod(methodName, params); +- m.setAccessible(true); +- return m; +- } +- }); +- } catch (PrivilegedActionException ex) { +- ex.printStackTrace(); +- } +- return res; +- } +- + public static class OperationTimedOut extends RuntimeException { + public OperationTimedOut(String msg) { + super(msg); +@@ -1683,21 +1539,9 @@ + private boolean queueEmpty = false; + private final Object waitLock = "Wait Lock"; + +- static Method eqNoEvents; +- + private boolean isEQEmpty() { + EventQueue queue = getSystemEventQueueImpl(); +- synchronized(SunToolkit.class) { +- if (eqNoEvents == null) { +- eqNoEvents = getMethod(java.awt.EventQueue.class, "noEvents", null); +- } +- } +- try { +- return (Boolean)eqNoEvents.invoke(queue); +- } catch (Exception e) { +- e.printStackTrace(); +- return false; +- } ++ return AWTAccessor.getEventQueueAccessor().noEvents(queue); + } + + /** +@@ -1952,20 +1796,14 @@ + * consumeNextKeyTyped() method is not currently used, + * however Swing could use it in the future. + */ +- private static Method consumeNextKeyTypedMethod = null; + public static synchronized void consumeNextKeyTyped(KeyEvent keyEvent) { +- if (consumeNextKeyTypedMethod == null) { +- consumeNextKeyTypedMethod = getMethod(DefaultKeyboardFocusManager.class, +- "consumeNextKeyTyped", +- new Class[] {KeyEvent.class}); +- } + try { +- consumeNextKeyTypedMethod.invoke(KeyboardFocusManager.getCurrentKeyboardFocusManager(), +- keyEvent); +- } catch (IllegalAccessException iae) { +- iae.printStackTrace(); +- } catch (InvocationTargetException ite) { +- ite.printStackTrace(); ++ AWTAccessor.getDefaultKeyboardFocusManagerAccessor().consumeNextKeyTyped( ++ (DefaultKeyboardFocusManager)KeyboardFocusManager. ++ getCurrentKeyboardFocusManager(), ++ keyEvent); ++ } catch (ClassCastException cce) { ++ cce.printStackTrace(); + } + } + +diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MComponentPeer.java openjdk/jdk/src/solaris/classes/sun/awt/motif/MComponentPeer.java +--- openjdk.orig/jdk/src/solaris/classes/sun/awt/motif/MComponentPeer.java 2011-02-28 16:06:48.000000000 +0000 ++++ openjdk/jdk/src/solaris/classes/sun/awt/motif/MComponentPeer.java 2012-08-31 15:34:01.747213089 +0100 +@@ -397,19 +397,8 @@ + } + } + +- static Method requestFocusWithCause; +- + static void callRequestFocusInWindow(Component target, CausedFocusEvent.Cause cause) { +- if (requestFocusWithCause == null) { +- requestFocusWithCause = SunToolkit.getMethod(Component.class, "requestFocusInWindow", new Class[] {CausedFocusEvent.Cause.class}); +- } +- if (requestFocusWithCause != null) { +- try { +- requestFocusWithCause.invoke(target, new Object[] {cause}); +- } catch (Exception e) { +- e.printStackTrace(); +- } +- } ++ AWTAccessor.getComponentAccessor().requestFocusInWindow(target, cause); + } + + public void handleEvent(AWTEvent e) { +diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XCheckboxMenuItemPeer.java openjdk/jdk/src/solaris/classes/sun/awt/X11/XCheckboxMenuItemPeer.java +--- openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XCheckboxMenuItemPeer.java 2011-02-28 16:06:48.000000000 +0000 ++++ openjdk/jdk/src/solaris/classes/sun/awt/X11/XCheckboxMenuItemPeer.java 2012-08-31 15:34:01.743213019 +0100 +@@ -29,27 +29,12 @@ + import java.awt.peer.*; + import java.awt.event.*; + +-import java.lang.reflect.Field; +-import sun.awt.SunToolkit; ++import sun.awt.AWTAccessor; + + class XCheckboxMenuItemPeer extends XMenuItemPeer implements CheckboxMenuItemPeer { + + /************************************************ + * +- * Data members +- * +- ************************************************/ +- +- /* +- * CheckboxMenuItem's fields +- */ +- private final static Field f_state; +- static { +- f_state = SunToolkit.getField(CheckboxMenuItem.class, "state"); +- } +- +- /************************************************ +- * + * Construction + * + ************************************************/ +@@ -74,16 +59,8 @@ + * + ************************************************/ + boolean getTargetState() { +- MenuItem target = getTarget(); +- if (target == null) { +- return false; +- } +- try { +- return f_state.getBoolean(target); +- } catch (IllegalAccessException e) { +- e.printStackTrace(); +- } +- return false; ++ return AWTAccessor.getCheckboxMenuItemAccessor() ++ .getState((CheckboxMenuItem)getTarget()); + } + + /************************************************ +diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XComponentPeer.java openjdk/jdk/src/solaris/classes/sun/awt/X11/XComponentPeer.java +--- openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XComponentPeer.java 2011-02-28 16:06:48.000000000 +0000 ++++ openjdk/jdk/src/solaris/classes/sun/awt/X11/XComponentPeer.java 2012-08-31 15:34:01.743213019 +0100 +@@ -31,17 +31,13 @@ + import java.awt.Component; + import java.awt.Container; + import java.awt.Cursor; +-import java.awt.DefaultKeyboardFocusManager; + import java.awt.Dimension; +-import java.awt.Event; + import java.awt.Font; + import java.awt.FontMetrics; + import java.awt.Graphics; + import java.awt.Image; + import java.awt.Insets; + import java.awt.KeyboardFocusManager; +-import java.awt.MenuBar; +-import java.awt.Point; + import java.awt.Rectangle; + import java.awt.SystemColor; + import java.awt.Toolkit; +@@ -60,12 +56,9 @@ + import java.awt.image.ImageObserver; + import java.awt.image.ImageProducer; + import java.awt.image.VolatileImage; +-import java.awt.peer.CanvasPeer; + import java.awt.peer.ComponentPeer; + import java.awt.peer.ContainerPeer; + import java.awt.peer.LightweightPeer; +-import java.awt.peer.PanelPeer; +-import java.awt.peer.WindowPeer; + import java.lang.reflect.*; + import java.security.*; + import java.util.Collection; +@@ -352,64 +345,16 @@ + return (Window)comp; + } + +- static Method processSynchronousLightweightTransferMethod; + static boolean processSynchronousLightweightTransfer(Component heavyweight, Component descendant, + boolean temporary, boolean focusedWindowChangeAllowed, + long time) + { +- try { +- if (processSynchronousLightweightTransferMethod == null) { +- processSynchronousLightweightTransferMethod = +- (Method)AccessController.doPrivileged( +- new PrivilegedExceptionAction() { +- public Object run() throws IllegalAccessException, NoSuchMethodException +- { +- Method m = KeyboardFocusManager.class. +- getDeclaredMethod("processSynchronousLightweightTransfer", +- new Class[] {Component.class, Component.class, +- Boolean.TYPE, Boolean.TYPE, +- Long.TYPE}); +- m.setAccessible(true); +- return m; +- } +- }); +- } +- Object[] params = new Object[] { +- heavyweight, +- descendant, +- Boolean.valueOf(temporary), +- Boolean.valueOf(focusedWindowChangeAllowed), +- Long.valueOf(time) +- }; +- return ((Boolean)processSynchronousLightweightTransferMethod.invoke(null, params)).booleanValue(); +- } catch (PrivilegedActionException pae) { +- pae.printStackTrace(); +- return false; +- } catch (IllegalAccessException iae) { +- iae.printStackTrace(); +- return false; +- } catch (IllegalArgumentException iaee) { +- iaee.printStackTrace(); +- return false; +- } catch (InvocationTargetException ite) { +- ite.printStackTrace(); +- return false; +- } ++ return AWTAccessor.getKeyboardFocusManagerAccessor().processSynchronousLightweightTransfer( ++ heavyweight, descendant, temporary, focusedWindowChangeAllowed, time); + } + +- static Method requestFocusWithCause; +- + static void callRequestFocus(Component target, CausedFocusEvent.Cause cause) { +- if (requestFocusWithCause == null) { +- requestFocusWithCause = SunToolkit.getMethod(Component.class, "requestFocus", new Class[] {CausedFocusEvent.Cause.class}); +- } +- if (requestFocusWithCause != null) { +- try { +- requestFocusWithCause.invoke(target, new Object[] {cause}); +- } catch (Exception e) { +- e.printStackTrace(); +- } +- } ++ AWTAccessor.getComponentAccessor().requestFocus(target, cause); + } + + final public boolean requestFocus(Component lightweightChild, boolean temporary, +diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XEmbedCanvasPeer.java openjdk/jdk/src/solaris/classes/sun/awt/X11/XEmbedCanvasPeer.java +--- openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XEmbedCanvasPeer.java 2011-02-28 16:06:48.000000000 +0000 ++++ openjdk/jdk/src/solaris/classes/sun/awt/X11/XEmbedCanvasPeer.java 2012-08-31 15:34:01.743213019 +0100 +@@ -29,14 +29,7 @@ + import java.awt.dnd.DropTarget; + import java.awt.dnd.DropTargetListener; + import java.awt.event.*; +-import java.awt.image.ColorModel; +-import java.awt.image.ImageObserver; +-import java.awt.image.ImageProducer; +-import java.awt.image.VolatileImage; +-import java.awt.peer.*; + import sun.awt.*; +-import sun.awt.motif.X11FontMetrics; +-import java.lang.reflect.*; + import java.util.logging.*; + import java.util.*; + import static sun.awt.X11.XEmbedHelper.*; +@@ -455,16 +448,8 @@ + } + } + +- static Field bdataField; + static byte[] getBData(KeyEvent e) { +- try { +- if (bdataField == null) { +- bdataField = SunToolkit.getField(java.awt.AWTEvent.class, "bdata"); +- } +- return (byte[])bdataField.get(e); +- } catch (IllegalAccessException ex) { +- return null; +- } ++ return AWTAccessor.getAWTEventAccessor().getBData(e); + } + + void forwardKeyEvent(KeyEvent e) { +diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XEmbeddingContainer.java openjdk/jdk/src/solaris/classes/sun/awt/X11/XEmbeddingContainer.java +--- openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XEmbeddingContainer.java 2011-02-28 16:06:48.000000000 +0000 ++++ openjdk/jdk/src/solaris/classes/sun/awt/X11/XEmbeddingContainer.java 2012-08-31 15:34:01.743213019 +0100 +@@ -29,7 +29,7 @@ + import java.util.HashMap; + import java.awt.event.KeyEvent; + import java.lang.reflect.*; +-import sun.awt.SunToolkit; ++import sun.awt.AWTAccessor; + + public class XEmbeddingContainer extends XEmbedHelper implements XEventDispatcher { + HashMap children = new HashMap(); +@@ -127,20 +127,8 @@ + } + } + +- static Field bdata; +- byte[] getBData(KeyEvent e) { +- try { +- if (bdata == null) { +- bdata = SunToolkit.getField(java.awt.AWTEvent.class, "bdata"); +- } +- return (byte[])bdata.get(e); +- } catch (IllegalAccessException ex) { +- return null; +- } +- } +- + void forwardKeyEvent(long child, KeyEvent e) { +- byte[] bdata = getBData(e); ++ byte[] bdata = AWTAccessor.getAWTEventAccessor().getBData(e); + long data = Native.toData(bdata); + if (data == 0) { + return; +diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XGlobalCursorManager.java openjdk/jdk/src/solaris/classes/sun/awt/X11/XGlobalCursorManager.java +--- openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XGlobalCursorManager.java 2011-02-28 16:06:48.000000000 +0000 ++++ openjdk/jdk/src/solaris/classes/sun/awt/X11/XGlobalCursorManager.java 2012-08-31 15:34:01.743213019 +0100 +@@ -29,8 +29,7 @@ + import java.awt.peer.ComponentPeer; + import java.awt.peer.LightweightPeer; + import java.lang.ref.WeakReference; +-import java.lang.reflect.Field; +-import java.lang.reflect.Method; ++import sun.awt.AWTAccessor; + import sun.awt.ComponentAccessor; + + import sun.awt.GlobalCursorManager; +@@ -38,23 +37,6 @@ + + public final class XGlobalCursorManager extends GlobalCursorManager { + +- private static Field field_pData; +- private static Field field_type; +- private static Class cursorClass; +- private static Method method_setPData; +- static { +- cursorClass = java.awt.Cursor.class; +- field_pData = SunToolkit.getField(cursorClass, "pData"); +- field_type = SunToolkit.getField(cursorClass, "type"); +- method_setPData = SunToolkit.getMethod(cursorClass, "setPData", new Class[] {long.class}); +- if (field_pData == null || field_type == null || method_setPData == null) { +- System.out.println("Unable to initialize XGlobalCursorManager: "); +- Thread.dumpStack(); +- +- } +- } +- +- + // cached nativeContainer + private WeakReference nativeContainer; + +@@ -216,8 +198,8 @@ + long pData = 0; + int type = 0; + try { +- pData = field_pData.getLong(c); +- type = field_type.getInt(c); ++ pData = AWTAccessor.getCursorAccessor().getPData(c); ++ type = AWTAccessor.getCursorAccessor().getType(c); + } + catch (Exception e) + { +@@ -287,7 +269,7 @@ + + static void setPData(Cursor c, long pData) { + try { +- method_setPData.invoke(c, pData); ++ AWTAccessor.getCursorAccessor().setPData(c, pData); + } + catch (Exception e) + { +diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XKeyboardFocusManagerPeer.java openjdk/jdk/src/solaris/classes/sun/awt/X11/XKeyboardFocusManagerPeer.java +--- openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XKeyboardFocusManagerPeer.java 2011-02-28 16:06:48.000000000 +0000 ++++ openjdk/jdk/src/solaris/classes/sun/awt/X11/XKeyboardFocusManagerPeer.java 2012-08-31 15:34:01.743213019 +0100 +@@ -38,6 +38,7 @@ + import java.util.logging.Level; + import java.util.logging.Logger; + ++import sun.awt.AWTAccessor; + import sun.awt.CausedFocusEvent; + import sun.awt.SunToolkit; + +@@ -130,46 +131,16 @@ + return true; + } + +- static Method shouldNativelyFocusHeavyweightMethod; +- + static int shouldNativelyFocusHeavyweight(Component heavyweight, + Component descendant, boolean temporary, + boolean focusedWindowChangeAllowed, long time, CausedFocusEvent.Cause cause) + { +- if (shouldNativelyFocusHeavyweightMethod == null) { +- Class[] arg_types = +- new Class[] { Component.class, +- Component.class, +- Boolean.TYPE, +- Boolean.TYPE, +- Long.TYPE, +- CausedFocusEvent.Cause.class +- }; +- +- shouldNativelyFocusHeavyweightMethod = +- SunToolkit.getMethod(KeyboardFocusManager.class, +- "shouldNativelyFocusHeavyweight", +- arg_types); +- } +- Object[] args = new Object[] { heavyweight, +- descendant, +- Boolean.valueOf(temporary), +- Boolean.valueOf(focusedWindowChangeAllowed), +- Long.valueOf(time), cause}; +- +- int result = XComponentPeer.SNFH_FAILURE; +- if (shouldNativelyFocusHeavyweightMethod != null) { +- try { +- result = ((Integer) shouldNativelyFocusHeavyweightMethod.invoke(null, args)).intValue(); +- } +- catch (IllegalAccessException e) { +- assert false; +- } +- catch (InvocationTargetException e) { +- assert false; +- } +- } +- +- return result; ++ return AWTAccessor.getKeyboardFocusManagerAccessor() ++ .shouldNativelyFocusHeavyweight(heavyweight, ++ descendant, ++ temporary, ++ focusedWindowChangeAllowed, ++ time, ++ cause); + } + } +diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XlibWrapper.java openjdk/jdk/src/solaris/classes/sun/awt/X11/XlibWrapper.java +--- openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XlibWrapper.java 2011-02-28 16:06:48.000000000 +0000 ++++ openjdk/jdk/src/solaris/classes/sun/awt/X11/XlibWrapper.java 2012-08-31 15:34:01.747213089 +0100 +@@ -27,6 +27,7 @@ + + import java.security.AccessController; + import java.security.PrivilegedAction; ++import sun.security.action.GetPropertyAction; + import sun.misc.*; + + public class XlibWrapper implements XConstants, XUtilConstants, XProtocolConstants, +@@ -562,12 +563,8 @@ + static final boolean isBuildInternal; + + static { +- String dataModelProp = (String)AccessController.doPrivileged( +- new PrivilegedAction() { +- public Object run() { +- return System.getProperty("sun.arch.data.model"); +- } +- }); ++ String dataModelProp = AccessController.doPrivileged( ++ new GetPropertyAction("sun.arch.data.model")); + try { + dataModel = Integer.parseInt(dataModelProp); + } catch (Exception e) { +@@ -610,7 +607,8 @@ + } + + private static boolean getBuildInternal() { +- String javaVersion = XToolkit.getSystemProperty("java.version"); ++ String javaVersion = AccessController.doPrivileged( ++ new GetPropertyAction("java.version")); + return javaVersion != null && javaVersion.contains("internal"); + } + +diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XMenuBarPeer.java openjdk/jdk/src/solaris/classes/sun/awt/X11/XMenuBarPeer.java +--- openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XMenuBarPeer.java 2011-02-28 16:06:48.000000000 +0000 ++++ openjdk/jdk/src/solaris/classes/sun/awt/X11/XMenuBarPeer.java 2012-08-31 15:34:01.743213019 +0100 +@@ -31,6 +31,7 @@ + import java.lang.reflect.Field; + import java.util.Vector; + import java.util.logging.*; ++import sun.awt.AWTAccessor; + import sun.awt.SunToolkit; + + public class XMenuBarPeer extends XBaseMenuWindow implements MenuBarPeer { +@@ -67,15 +68,6 @@ + private final static int BAR_ITEM_MARGIN_TOP = 2; + private final static int BAR_ITEM_MARGIN_BOTTOM = 2; + +- //fields +- private static Field f_helpMenu; +- private static Field f_menus; +- +- static { +- f_helpMenu = SunToolkit.getField(MenuBar.class, "helpMenu"); +- f_menus = SunToolkit.getField(MenuBar.class, "menus"); +- } +- + /************************************************ + * + * Mapping data +@@ -204,16 +196,12 @@ + */ + void postInit(XCreateWindowParams params) { + super.postInit(params); +- Vector targetMenuVector = null; +- Menu targetHelpMenu = null; +- try { +- // Get menus from the target. +- targetMenuVector = (Vector)f_menus.get(menuBarTarget); +- targetHelpMenu = (Menu)f_helpMenu.get(menuBarTarget); +- reloadItems(targetMenuVector); +- } catch (IllegalAccessException iae) { +- iae.printStackTrace(); +- } ++ // Get menus from the target. ++ Vector targetMenuVector = AWTAccessor.getMenuBarAccessor() ++ .getMenus(menuBarTarget); ++ Menu targetHelpMenu = AWTAccessor.getMenuBarAccessor() ++ .getHelpMenu(menuBarTarget); ++ reloadItems(targetMenuVector); + if (targetHelpMenu != null) { + addHelpMenu(targetHelpMenu); + } +diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XMenuItemPeer.java openjdk/jdk/src/solaris/classes/sun/awt/X11/XMenuItemPeer.java +--- openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XMenuItemPeer.java 2011-02-28 16:06:48.000000000 +0000 ++++ openjdk/jdk/src/solaris/classes/sun/awt/X11/XMenuItemPeer.java 2012-08-31 15:34:01.747213089 +0100 +@@ -30,10 +30,7 @@ + + import java.util.logging.*; + +-import java.lang.reflect.Field; +-import java.lang.reflect.Method; +-import java.lang.reflect.InvocationTargetException; +-import sun.awt.SunToolkit; ++import sun.awt.AWTAccessor; + + public class XMenuItemPeer implements MenuItemPeer { + +@@ -83,24 +80,6 @@ + private final static int SEPARATOR_WIDTH = 20; + private final static int SEPARATOR_HEIGHT = 5; + +- /* +- * MenuItem's fields & methods +- */ +- private final static Field f_enabled; +- private final static Field f_label; +- private final static Field f_shortcut; +- private final static Method m_getFont; +- private final static Method m_isItemEnabled; +- private final static Method m_getActionCommand; +- static { +- f_enabled = SunToolkit.getField(MenuItem.class, "enabled"); +- f_label = SunToolkit.getField(MenuItem.class, "label"); +- f_shortcut = SunToolkit.getField(MenuItem.class, "shortcut"); +- +- m_getFont = SunToolkit.getMethod(MenuComponent.class, "getFont_NoClientCode", null); +- m_getActionCommand = SunToolkit.getMethod(MenuItem.class, "getActionCommandImpl", null); +- m_isItemEnabled = SunToolkit.getMethod(MenuItem.class, "isItemEnabled", null); +- } + /************************************************ + * + * Text Metrics +@@ -218,39 +197,21 @@ + if (target == null) { + return XWindow.defaultFont; + } +- try { +- return (Font)m_getFont.invoke(target, new Object[0]); +- } catch (IllegalAccessException e) { +- e.printStackTrace(); +- } catch (InvocationTargetException e) { +- e.printStackTrace(); +- } +- return XWindow.defaultFont; ++ return AWTAccessor.getMenuComponentAccessor().getFont_NoClientCode(target); + } + + String getTargetLabel() { + if (target == null) { + return ""; + } +- try { +- String label = (String)f_label.get(target); +- return (label == null) ? "" : label; +- } catch (IllegalAccessException e) { +- e.printStackTrace(); +- } +- return ""; ++ return AWTAccessor.getMenuItemAccessor().getLabel(target); + } + + boolean isTargetEnabled() { + if (target == null) { + return false; + } +- try { +- return f_enabled.getBoolean(target); +- } catch (IllegalAccessException e) { +- e.printStackTrace(); +- } +- return false; ++ return AWTAccessor.getMenuItemAccessor().isEnabled(target); + } + + /** +@@ -262,40 +223,21 @@ + if (target == null) { + return false; + } +- try { +- return ((Boolean)m_isItemEnabled.invoke(target, new Object[0])).booleanValue(); +- } catch (IllegalAccessException e) { +- e.printStackTrace(); +- } catch (InvocationTargetException e) { +- e.printStackTrace(); +- } +- return false; ++ return AWTAccessor.getMenuItemAccessor().isItemEnabled(target); + } + + String getTargetActionCommand() { + if (target == null) { + return ""; + } +- try { +- return (String) m_getActionCommand.invoke(target,(Object[]) null); +- } catch (IllegalAccessException e) { +- e.printStackTrace(); +- } catch (InvocationTargetException e) { +- e.printStackTrace(); +- } +- return ""; ++ return AWTAccessor.getMenuItemAccessor().getActionCommandImpl(target); + } + + MenuShortcut getTargetShortcut() { + if (target == null) { + return null; + } +- try { +- return (MenuShortcut)f_shortcut.get(target); +- } catch (IllegalAccessException e) { +- e.printStackTrace(); +- } +- return null; ++ return AWTAccessor.getMenuItemAccessor().getShortcut(target); + } + + String getShortcutText() { +diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XMenuPeer.java openjdk/jdk/src/solaris/classes/sun/awt/X11/XMenuPeer.java +--- openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XMenuPeer.java 2011-02-28 16:06:48.000000000 +0000 ++++ openjdk/jdk/src/solaris/classes/sun/awt/X11/XMenuPeer.java 2012-08-31 15:34:01.747213089 +0100 +@@ -30,6 +30,7 @@ + import java.lang.reflect.Field; + import java.util.Vector; + import java.util.logging.*; ++import sun.awt.AWTAccessor; + import sun.awt.SunToolkit; + + public class XMenuPeer extends XMenuItemPeer implements MenuPeer { +@@ -46,16 +47,6 @@ + */ + XMenuWindow menuWindow; + +- +- /* +- * Menu's fields & methods +- */ +- private final static Field f_items; +- +- static { +- f_items = SunToolkit.getField(Menu.class, "items"); +- } +- + /************************************************ + * + * Construction +@@ -153,12 +144,7 @@ + * + ************************************************/ + Vector getTargetItems() { +- try { +- return (Vector)f_items.get(getTarget()); +- } catch (IllegalAccessException iae) { +- iae.printStackTrace(); +- return null; +- } ++ return AWTAccessor.getMenuAccessor().getItems((Menu)getTarget()); + } + + /************************************************ +diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XPopupMenuPeer.java openjdk/jdk/src/solaris/classes/sun/awt/X11/XPopupMenuPeer.java +--- openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XPopupMenuPeer.java 2011-02-28 16:06:48.000000000 +0000 ++++ openjdk/jdk/src/solaris/classes/sun/awt/X11/XPopupMenuPeer.java 2012-08-31 15:34:01.747213089 +0100 +@@ -28,11 +28,8 @@ + import java.awt.peer.*; + import java.awt.event.*; + +-import java.lang.reflect.Field; +-import java.lang.reflect.Method; +-import java.lang.reflect.InvocationTargetException; +- + import java.util.Vector; ++import sun.awt.AWTAccessor; + import java.util.logging.*; + + import sun.awt.SunToolkit; +@@ -66,24 +63,6 @@ + private final static int CAPTION_MARGIN_TOP = 4; + private final static int CAPTION_SEPARATOR_HEIGHT = 6; + +- /* +- * Menu's fields & methods +- */ +- //Fix for 6184485: Popup menu is not disabled on XToolkit even when calling setEnabled (false) +- private final static Field f_enabled; +- //Fix for 6267144: PIT: Popup menu label is not shown, XToolkit +- private final static Field f_label; +- private final static Method m_getFont; +- private final static Field f_items; +- +- static { +- f_enabled = SunToolkit.getField(MenuItem.class, "enabled"); +- f_label = SunToolkit.getField(MenuItem.class, "label"); +- f_items = SunToolkit.getField(Menu.class, "items"); +- m_getFont = SunToolkit.getMethod(MenuComponent.class, "getFont_NoClientCode", null); +- } +- +- + /************************************************ + * + * Construction +@@ -96,7 +75,7 @@ + + /************************************************ + * +- * Implementaion of interface methods ++ * Implementation of interface methods + * + ************************************************/ + /* +@@ -189,27 +168,16 @@ + if (popupMenuTarget == null) { + return XWindow.defaultFont; + } +- try { +- return (Font)m_getFont.invoke(popupMenuTarget, new Object[0]); +- } catch (IllegalAccessException e) { +- e.printStackTrace(); +- } catch (InvocationTargetException e) { +- e.printStackTrace(); +- } +- return XWindow.defaultFont; ++ return AWTAccessor.getMenuComponentAccessor() ++ .getFont_NoClientCode(popupMenuTarget); + } + ++ //Fix for 6267144: PIT: Popup menu label is not shown, XToolkit + String getTargetLabel() { + if (target == null) { + return ""; + } +- try { +- String label = (String)f_label.get(popupMenuTarget); +- return (label == null) ? "" : label; +- } catch (IllegalAccessException e) { +- e.printStackTrace(); +- } +- return ""; ++ return AWTAccessor.getMenuItemAccessor().getLabel(popupMenuTarget); + } + + //Fix for 6184485: Popup menu is not disabled on XToolkit even when calling setEnabled (false) +@@ -217,21 +185,14 @@ + if (popupMenuTarget == null) { + return false; + } +- try { +- return f_enabled.getBoolean(popupMenuTarget); +- } catch (IllegalAccessException e) { +- e.printStackTrace(); +- } +- return false; ++ return AWTAccessor.getMenuItemAccessor().isEnabled(popupMenuTarget); + } + + Vector getMenuTargetItems() { +- try { +- return (Vector)f_items.get(popupMenuTarget); +- } catch (IllegalAccessException iae) { +- iae.printStackTrace(); ++ if (popupMenuTarget == null) { + return null; + } ++ return AWTAccessor.getMenuAccessor().getItems(popupMenuTarget); + } + + /************************************************ +diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XScrollPanePeer.java openjdk/jdk/src/solaris/classes/sun/awt/X11/XScrollPanePeer.java +--- openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XScrollPanePeer.java 2011-02-28 16:06:48.000000000 +0000 ++++ openjdk/jdk/src/solaris/classes/sun/awt/X11/XScrollPanePeer.java 2012-08-31 15:34:01.747213089 +0100 +@@ -29,7 +29,7 @@ + import java.awt.event.*; + import java.awt.peer.*; + import java.lang.reflect.*; +-import sun.awt.SunToolkit; ++import sun.awt.AWTAccessor; + + class XScrollPanePeer extends XComponentPeer implements ScrollPanePeer, XScrollbarClient { + +@@ -41,9 +41,7 @@ + public final static int VERTICAL = 1 << 0; + public final static int HORIZONTAL = 1 << 1; + +- private static Method m_setValue; + static { +- m_setValue = SunToolkit.getMethod(ScrollPaneAdjustable.class, "setTypedValue", new Class[] {Integer.TYPE, Integer.TYPE}); + SCROLLBAR = XToolkit.getUIDefaults().getInt("ScrollBar.defaultWidth"); + } + +@@ -316,19 +314,9 @@ + } + + void setAdjustableValue(ScrollPaneAdjustable adj, int value, int type) { +- try { +- m_setValue.invoke(adj, new Object[] {Integer.valueOf(value), Integer.valueOf(type)}); +- } catch (IllegalAccessException iae) { +- adj.setValue(value); +- } catch (IllegalArgumentException iae2) { +- adj.setValue(value); +- } catch (InvocationTargetException ite) { +- adj.setValue(value); +- ite.getCause().printStackTrace(); +- } ++ AWTAccessor.getScrollPaneAdjustableAccessor().setTypedValue(adj, value, type); + } + +- + public void paint(Graphics g) { + paintComponent(g); + } +diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XTextAreaPeer.java openjdk/jdk/src/solaris/classes/sun/awt/X11/XTextAreaPeer.java +--- openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XTextAreaPeer.java 2011-02-28 16:06:48.000000000 +0000 ++++ openjdk/jdk/src/solaris/classes/sun/awt/X11/XTextAreaPeer.java 2012-08-31 15:34:01.747213089 +0100 +@@ -59,6 +59,7 @@ + + import javax.swing.plaf.BorderUIResource; + import java.awt.im.InputMethodRequests; ++import sun.awt.AWTAccessor; + import sun.awt.CausedFocusEvent; + import sun.awt.ComponentAccessor; + +@@ -985,8 +986,10 @@ + // loading SystemFlavorMap and associated classes. + public void setTransferHandler(TransferHandler newHandler) { + TransferHandler oldHandler = (TransferHandler) +- getClientProperty(XTextTransferHelper.getTransferHandlerKey()); +- putClientProperty(XTextTransferHelper.getTransferHandlerKey(), ++ getClientProperty(AWTAccessor.getClientPropertyKeyAccessor() ++ .getJComponent_TRANSFER_HANDLER()); ++ putClientProperty(AWTAccessor.getClientPropertyKeyAccessor() ++ .getJComponent_TRANSFER_HANDLER(), + newHandler); + + firePropertyChange("transferHandler", oldHandler, newHandler); +diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XTextFieldPeer.java openjdk/jdk/src/solaris/classes/sun/awt/X11/XTextFieldPeer.java +--- openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XTextFieldPeer.java 2011-02-28 16:06:48.000000000 +0000 ++++ openjdk/jdk/src/solaris/classes/sun/awt/X11/XTextFieldPeer.java 2012-08-31 15:34:01.747213089 +0100 +@@ -53,6 +53,7 @@ + import java.awt.im.InputMethodRequests; + + import java.util.logging.*; ++import sun.awt.AWTAccessor; + import sun.awt.CausedFocusEvent; + import sun.awt.ComponentAccessor; + +@@ -714,8 +715,10 @@ + // loading SystemFlavorMap and associated classes. + public void setTransferHandler(TransferHandler newHandler) { + TransferHandler oldHandler = (TransferHandler) +- getClientProperty(XTextTransferHelper.getTransferHandlerKey()); +- putClientProperty(XTextTransferHelper.getTransferHandlerKey(), ++ getClientProperty(AWTAccessor.getClientPropertyKeyAccessor() ++ .getJComponent_TRANSFER_HANDLER()); ++ putClientProperty(AWTAccessor.getClientPropertyKeyAccessor() ++ .getJComponent_TRANSFER_HANDLER(), + newHandler); + + firePropertyChange("transferHandler", oldHandler, newHandler); +diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XTextTransferHelper.java openjdk/jdk/src/solaris/classes/sun/awt/X11/XTextTransferHelper.java +--- openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XTextTransferHelper.java 2011-02-28 16:06:48.000000000 +0000 ++++ openjdk/jdk/src/solaris/classes/sun/awt/X11/XTextTransferHelper.java 1970-01-01 01:00:00.000000000 +0100 +@@ -1,47 +0,0 @@ +-/* +- * Copyright (c) 2003, 2007, 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. Oracle designates this +- * particular file as subject to the "Classpath" exception as provided +- * by Oracle in the LICENSE file that accompanied this code. +- * +- * 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. +- */ +- +-package sun.awt.X11; +- +-import java.lang.reflect.Field; +-import sun.awt.SunToolkit; +- +-class XTextTransferHelper { +- private static Object transferHandlerKey = null; +- static Object getTransferHandlerKey() { +- if (transferHandlerKey == null) { +- try { +- Class clazz = Class.forName("javax.swing.ClientPropertyKey"); +- Field field = SunToolkit.getField(clazz, "JComponent_TRANSFER_HANDLER"); +- transferHandlerKey = field.get(null); +- } catch (IllegalAccessException ex) { +- return null; +- } catch (ClassNotFoundException cnfe) { +- cnfe.printStackTrace(); +- } +- } +- return transferHandlerKey; +- } +-} +diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XToolkit.java openjdk/jdk/src/solaris/classes/sun/awt/X11/XToolkit.java +--- openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XToolkit.java 2011-02-28 16:06:48.000000000 +0000 ++++ openjdk/jdk/src/solaris/classes/sun/awt/X11/XToolkit.java 2012-08-31 15:34:01.747213089 +0100 +@@ -48,6 +48,7 @@ + import sun.font.FontManager; + import sun.misc.PerformanceLogger; + import sun.print.PrintJob2D; ++import sun.security.action.GetPropertyAction; + import sun.security.action.GetBooleanAction; + import java.lang.reflect.*; + +@@ -102,7 +103,6 @@ + private static int screenWidth = -1, screenHeight = -1; // Dimensions of default screen + static long awt_defaultFg; // Pixel + private static XMouseInfoPeer xPeer; +- private static Method m_removeSourceEvents; + + static { + initSecurityWarning(); +@@ -120,8 +120,6 @@ + initIDs(); + setBackingStoreType(); + } +- m_removeSourceEvents = SunToolkit.getMethod(EventQueue.class, "removeSourceEvents", new Class[] {Object.class, Boolean.TYPE}) ; +- + noisyAwtHandler = AccessController.doPrivileged(new GetBooleanAction("sun.awt.noisyerrorhandler")); + } + +@@ -203,7 +201,8 @@ + + static void initSecurityWarning() { + // Enable warning only for internal builds +- String runtime = getSystemProperty("java.runtime.version"); ++ String runtime = AccessController.doPrivileged( ++ new GetPropertyAction("java.runtime.version")); + securityWarningEnabled = (runtime != null && runtime.contains("internal")); + } + +@@ -1126,14 +1125,6 @@ + } + } + +- static String getSystemProperty(final String name) { +- return (String)AccessController.doPrivileged(new PrivilegedAction() { +- public Object run() { +- return System.getProperty(name); +- } +- }); +- } +- + public PrintJob getPrintJob(final Frame frame, final String doctitle, + final Properties props) { + +@@ -1893,17 +1884,11 @@ + return null; + } + +- static void removeSourceEvents(EventQueue queue, Object source, boolean removeAllEvents) { +- try { +- m_removeSourceEvents.invoke(queue, source, removeAllEvents); +- } +- catch (IllegalAccessException e) +- { +- e.printStackTrace(); +- } +- catch (InvocationTargetException e) { +- e.printStackTrace(); +- } ++ static void removeSourceEvents(EventQueue queue, ++ Object source, ++ boolean removeAllEvents) { ++ AWTAccessor.getEventQueueAccessor() ++ .removeSourceEvents(queue, source, removeAllEvents); + } + + public boolean isAlwaysOnTopSupported() { +diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XTrayIconPeer.java openjdk/jdk/src/solaris/classes/sun/awt/X11/XTrayIconPeer.java +--- openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XTrayIconPeer.java 2011-02-28 16:06:48.000000000 +0000 ++++ openjdk/jdk/src/solaris/classes/sun/awt/X11/XTrayIconPeer.java 2012-08-31 15:34:01.747213089 +0100 +@@ -32,10 +32,8 @@ + import java.awt.image.*; + import java.text.BreakIterator; + import java.util.Vector; +-import java.lang.reflect.Field; + import java.util.logging.Logger; + import java.util.logging.Level; +-import java.util.AbstractQueue; + import java.util.concurrent.ArrayBlockingQueue; + import java.security.AccessController; + import java.security.PrivilegedAction; +diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XWindow.java openjdk/jdk/src/solaris/classes/sun/awt/X11/XWindow.java +--- openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XWindow.java 2011-02-28 16:06:48.000000000 +0000 ++++ openjdk/jdk/src/solaris/classes/sun/awt/X11/XWindow.java 2012-08-31 15:34:01.747213089 +0100 +@@ -68,7 +68,6 @@ + int oldWidth = -1; + int oldHeight = -1; + +- + protected X11GraphicsConfig graphicsConfig; + protected AwtGraphicsConfigData graphicsConfigData; + +@@ -363,18 +362,9 @@ + + static Method m_sendMessage; + static void sendEvent(final AWTEvent e) { +- if (isPostedField == null) { +- isPostedField = SunToolkit.getField(AWTEvent.class, "isPosted"); +- } + PeerEvent pe = new PeerEvent(Toolkit.getDefaultToolkit(), new Runnable() { + public void run() { +- try { +- isPostedField.setBoolean(e, true); +- } catch (IllegalArgumentException e) { +- assert(false); +- } catch (IllegalAccessException e) { +- assert(false); +- } ++ AWTAccessor.getAWTEventAccessor().setPosted(e); + ((Component)e.getSource()).dispatchEvent(e); + } + }, PeerEvent.ULTIMATE_PRIORITY_EVENT); +@@ -1250,16 +1240,8 @@ + } + + +- static Field bdata; + static void setBData(KeyEvent e, byte[] data) { +- try { +- if (bdata == null) { +- bdata = SunToolkit.getField(java.awt.AWTEvent.class, "bdata"); +- } +- bdata.set(e, data); +- } catch (IllegalAccessException ex) { +- assert false; +- } ++ AWTAccessor.getAWTEventAccessor().setBData(e, data); + } + + public void postKeyEvent(int id, long when, int keyCode, char keyChar, +diff -Nru openjdk.orig/jdk/src/windows/classes/sun/awt/windows/WCanvasPeer.java openjdk/jdk/src/windows/classes/sun/awt/windows/WCanvasPeer.java +--- openjdk.orig/jdk/src/windows/classes/sun/awt/windows/WCanvasPeer.java 2011-02-28 16:06:51.000000000 +0000 ++++ openjdk/jdk/src/windows/classes/sun/awt/windows/WCanvasPeer.java 2012-08-31 15:34:01.747213089 +0100 +@@ -27,7 +27,6 @@ + import java.awt.*; + import java.awt.peer.*; + import java.lang.ref.WeakReference; +-import java.lang.reflect.Method; + import sun.awt.ComponentAccessor; + import sun.awt.SunToolkit; + import sun.awt.Win32GraphicsDevice; +diff -Nru openjdk.orig/jdk/src/windows/classes/sun/awt/windows/WMouseDragGestureRecognizer.java openjdk/jdk/src/windows/classes/sun/awt/windows/WMouseDragGestureRecognizer.java +--- openjdk.orig/jdk/src/windows/classes/sun/awt/windows/WMouseDragGestureRecognizer.java 2011-02-28 16:06:51.000000000 +0000 ++++ openjdk/jdk/src/windows/classes/sun/awt/windows/WMouseDragGestureRecognizer.java 2012-08-31 15:34:01.747213089 +0100 +@@ -39,8 +39,6 @@ + import java.awt.event.MouseListener; + import java.awt.event.MouseMotionListener; + +-import java.lang.reflect.*; +- + import sun.awt.dnd.SunDragSourceContextPeer; + + /** +diff -Nru openjdk.orig/jdk/src/windows/classes/sun/awt/windows/WPopupMenuPeer.java openjdk/jdk/src/windows/classes/sun/awt/windows/WPopupMenuPeer.java +--- openjdk.orig/jdk/src/windows/classes/sun/awt/windows/WPopupMenuPeer.java 2011-02-28 16:06:51.000000000 +0000 ++++ openjdk/jdk/src/windows/classes/sun/awt/windows/WPopupMenuPeer.java 2012-08-31 15:34:01.747213089 +0100 +@@ -28,34 +28,23 @@ + import java.awt.peer.*; + import java.lang.reflect.Field; + ++import sun.awt.AWTAccessor; + import sun.awt.SunToolkit; + + public class WPopupMenuPeer extends WMenuPeer implements PopupMenuPeer { + // We can't use target.getParent() for TrayIcon popup + // because this method should return null for the TrayIcon + // popup regardless of that whether it has parent or not. +- private static Field f_parent; +- private static Field f_isTrayIconPopup; +- +- static { +- f_parent = SunToolkit.getField(MenuComponent.class, "parent"); +- f_isTrayIconPopup = SunToolkit.getField(PopupMenu.class, "isTrayIconPopup"); +- } + + public WPopupMenuPeer(PopupMenu target) { + this.target = target; + MenuContainer parent = null; + boolean isTrayIconPopup = false; +- try { +- isTrayIconPopup = ((Boolean)f_isTrayIconPopup.get(target)).booleanValue(); +- if (isTrayIconPopup) { +- parent = (MenuContainer)f_parent.get(target); +- } else { +- parent = target.getParent(); +- } +- } catch (IllegalAccessException iae) { +- iae.printStackTrace(); +- return; ++ isTrayIconPopup = AWTAccessor.getPopupMenuAccessor().isTrayIconPopup(target); ++ if (isTrayIconPopup) { ++ parent = AWTAccessor.getMenuComponentAccessor().getParent(target); ++ } else { ++ parent = target.getParent(); + } + + if (parent instanceof Component) { +diff -Nru openjdk.orig/jdk/src/windows/classes/sun/awt/windows/WWindowPeer.java openjdk/jdk/src/windows/classes/sun/awt/windows/WWindowPeer.java +--- openjdk.orig/jdk/src/windows/classes/sun/awt/windows/WWindowPeer.java 2011-02-28 16:06:51.000000000 +0000 ++++ openjdk/jdk/src/windows/classes/sun/awt/windows/WWindowPeer.java 2012-08-31 15:34:01.747213089 +0100 +@@ -32,8 +32,6 @@ + import java.beans.*; + + import java.lang.ref.*; +-import java.lang.reflect.*; +- + import java.security.*; + + import java.util.*; diff -r f5a3984175d3 -r e067051f7a6e patches/security/20120830/7182135-impossible_to_use_some_editors_directly.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/security/20120830/7182135-impossible_to_use_some_editors_directly.patch Fri Aug 31 16:59:45 2012 +0100 @@ -0,0 +1,519 @@ +diff --git a/make/sun/Makefile b/make/sun/Makefile +--- openjdk/jdk/make/sun/Makefile ++++ openjdk/jdk/make/sun/Makefile +@@ -64,7 +64,7 @@ + SUBDIRS = jar security javazic misc net audio $(RENDER_SUBDIR) image \ + awt splashscreen $(XAWT_SUBDIR) $(MOTIF_SUBDIRS) \ + $(HEADLESS_SUBDIR) $(DGA_SUBDIR) \ +- font jpeg cmm applet rmi $(JDBC_SUBDIR) \ ++ font jpeg cmm applet rmi beans $(JDBC_SUBDIR) \ + jawt text nio launcher management $(ORG_SUBDIR) \ + native2ascii serialver tools jconsole + +diff --git a/make/sun/beans/Makefile b/make/sun/beans/Makefile +new file mode 100644 +--- /dev/null ++++ openjdk/jdk/make/sun/beans/Makefile +@@ -0,0 +1,43 @@ ++# ++# Copyright (c) 1997, 2005, 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. Oracle designates this ++# particular file as subject to the "Classpath" exception as provided ++# by Oracle in the LICENSE file that accompanied this code. ++# ++# 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. ++# ++ ++# ++# Makefile for building sun.beans.* ++# ++ ++BUILDDIR = ../.. ++PACKAGE = sun.beans ++PRODUCT = sun ++include $(BUILDDIR)/common/Defs.gmk ++ ++# ++# Files ++# ++AUTO_FILES_JAVA_DIRS = sun/beans ++ ++# ++# Rules ++# ++include $(BUILDDIR)/common/Classes.gmk +diff --git a/src/share/classes/com/sun/beans/editors/EnumEditor.java b/src/share/classes/com/sun/beans/editors/EnumEditor.java +--- openjdk/jdk/src/share/classes/com/sun/beans/editors/EnumEditor.java ++++ openjdk/jdk/src/share/classes/com/sun/beans/editors/EnumEditor.java +@@ -42,7 +42,7 @@ + * + * @author Sergey A. Malenkov + */ +-public final class EnumEditor implements PropertyEditor { ++public class EnumEditor implements PropertyEditor { + private final List listeners = new ArrayList(); + + private final Class type; +diff --git a/src/share/classes/sun/beans/editors/BooleanEditor.java b/src/share/classes/sun/beans/editors/BooleanEditor.java +new file mode 100644 +--- /dev/null ++++ openjdk/jdk/src/share/classes/sun/beans/editors/BooleanEditor.java +@@ -0,0 +1,32 @@ ++/* ++ * Copyright (c) 2012, 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. Oracle designates this ++ * particular file as subject to the "Classpath" exception as provided ++ * by Oracle in the LICENSE file that accompanied this code. ++ * ++ * 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. ++ */ ++ ++package sun.beans.editors; ++ ++/** ++ * FOR BACKWARD COMPATIBILITY ONLY - DO NOT USE. ++ */ ++public class BooleanEditor extends com.sun.beans.editors.BooleanEditor { ++} +diff --git a/src/share/classes/sun/beans/editors/ByteEditor.java b/src/share/classes/sun/beans/editors/ByteEditor.java +new file mode 100644 +--- /dev/null ++++ openjdk/jdk/src/share/classes/sun/beans/editors/ByteEditor.java +@@ -0,0 +1,32 @@ ++/* ++ * Copyright (c) 2012, 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. Oracle designates this ++ * particular file as subject to the "Classpath" exception as provided ++ * by Oracle in the LICENSE file that accompanied this code. ++ * ++ * 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. ++ */ ++ ++package sun.beans.editors; ++ ++/** ++ * FOR BACKWARD COMPATIBILITY ONLY - DO NOT USE. ++ */ ++public class ByteEditor extends com.sun.beans.editors.ByteEditor { ++} +diff --git a/src/share/classes/sun/beans/editors/ColorEditor.java b/src/share/classes/sun/beans/editors/ColorEditor.java +new file mode 100644 +--- /dev/null ++++ openjdk/jdk/src/share/classes/sun/beans/editors/ColorEditor.java +@@ -0,0 +1,32 @@ ++/* ++ * Copyright (c) 2012, 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. Oracle designates this ++ * particular file as subject to the "Classpath" exception as provided ++ * by Oracle in the LICENSE file that accompanied this code. ++ * ++ * 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. ++ */ ++ ++package sun.beans.editors; ++ ++/** ++ * FOR BACKWARD COMPATIBILITY ONLY - DO NOT USE. ++ */ ++public class ColorEditor extends com.sun.beans.editors.ColorEditor { ++} +diff --git a/src/share/classes/sun/beans/editors/DoubleEditor.java b/src/share/classes/sun/beans/editors/DoubleEditor.java +new file mode 100644 +--- /dev/null ++++ openjdk/jdk/src/share/classes/sun/beans/editors/DoubleEditor.java +@@ -0,0 +1,32 @@ ++/* ++ * Copyright (c) 2012, 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. Oracle designates this ++ * particular file as subject to the "Classpath" exception as provided ++ * by Oracle in the LICENSE file that accompanied this code. ++ * ++ * 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. ++ */ ++ ++package sun.beans.editors; ++ ++/** ++ * FOR BACKWARD COMPATIBILITY ONLY - DO NOT USE. ++ */ ++public class DoubleEditor extends com.sun.beans.editors.DoubleEditor { ++} +diff --git a/src/share/classes/sun/beans/editors/EnumEditor.java b/src/share/classes/sun/beans/editors/EnumEditor.java +new file mode 100644 +--- /dev/null ++++ openjdk/jdk/src/share/classes/sun/beans/editors/EnumEditor.java +@@ -0,0 +1,35 @@ ++/* ++ * Copyright (c) 2012, 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. Oracle designates this ++ * particular file as subject to the "Classpath" exception as provided ++ * by Oracle in the LICENSE file that accompanied this code. ++ * ++ * 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. ++ */ ++ ++package sun.beans.editors; ++ ++/** ++ * FOR BACKWARD COMPATIBILITY ONLY - DO NOT USE. ++ */ ++public class EnumEditor extends com.sun.beans.editors.EnumEditor { ++ public EnumEditor(Class type) { ++ super(type); ++ } ++} +diff --git a/src/share/classes/sun/beans/editors/FloatEditor.java b/src/share/classes/sun/beans/editors/FloatEditor.java +new file mode 100644 +--- /dev/null ++++ openjdk/jdk/src/share/classes/sun/beans/editors/FloatEditor.java +@@ -0,0 +1,32 @@ ++/* ++ * Copyright (c) 2012, 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. Oracle designates this ++ * particular file as subject to the "Classpath" exception as provided ++ * by Oracle in the LICENSE file that accompanied this code. ++ * ++ * 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. ++ */ ++ ++package sun.beans.editors; ++ ++/** ++ * FOR BACKWARD COMPATIBILITY ONLY - DO NOT USE. ++ */ ++public class FloatEditor extends com.sun.beans.editors.FloatEditor { ++} +diff --git a/src/share/classes/sun/beans/editors/FontEditor.java b/src/share/classes/sun/beans/editors/FontEditor.java +new file mode 100644 +--- /dev/null ++++ openjdk/jdk/src/share/classes/sun/beans/editors/FontEditor.java +@@ -0,0 +1,32 @@ ++/* ++ * Copyright (c) 2012, 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. Oracle designates this ++ * particular file as subject to the "Classpath" exception as provided ++ * by Oracle in the LICENSE file that accompanied this code. ++ * ++ * 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. ++ */ ++ ++package sun.beans.editors; ++ ++/** ++ * FOR BACKWARD COMPATIBILITY ONLY - DO NOT USE. ++ */ ++public class FontEditor extends com.sun.beans.editors.FontEditor { ++} +diff --git a/src/share/classes/sun/beans/editors/IntegerEditor.java b/src/share/classes/sun/beans/editors/IntegerEditor.java +new file mode 100644 +--- /dev/null ++++ openjdk/jdk/src/share/classes/sun/beans/editors/IntegerEditor.java +@@ -0,0 +1,32 @@ ++/* ++ * Copyright (c) 2012, 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. Oracle designates this ++ * particular file as subject to the "Classpath" exception as provided ++ * by Oracle in the LICENSE file that accompanied this code. ++ * ++ * 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. ++ */ ++ ++package sun.beans.editors; ++ ++/** ++ * FOR BACKWARD COMPATIBILITY ONLY - DO NOT USE. ++ */ ++public class IntegerEditor extends com.sun.beans.editors.IntegerEditor { ++} +diff --git a/src/share/classes/sun/beans/editors/LongEditor.java b/src/share/classes/sun/beans/editors/LongEditor.java +new file mode 100644 +--- /dev/null ++++ openjdk/jdk/src/share/classes/sun/beans/editors/LongEditor.java +@@ -0,0 +1,32 @@ ++/* ++ * Copyright (c) 2012, 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. Oracle designates this ++ * particular file as subject to the "Classpath" exception as provided ++ * by Oracle in the LICENSE file that accompanied this code. ++ * ++ * 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. ++ */ ++ ++package sun.beans.editors; ++ ++/** ++ * FOR BACKWARD COMPATIBILITY ONLY - DO NOT USE. ++ */ ++public class LongEditor extends com.sun.beans.editors.LongEditor { ++} +diff --git a/src/share/classes/sun/beans/editors/NumberEditor.java b/src/share/classes/sun/beans/editors/NumberEditor.java +new file mode 100644 +--- /dev/null ++++ openjdk/jdk/src/share/classes/sun/beans/editors/NumberEditor.java +@@ -0,0 +1,32 @@ ++/* ++ * Copyright (c) 2012, 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. Oracle designates this ++ * particular file as subject to the "Classpath" exception as provided ++ * by Oracle in the LICENSE file that accompanied this code. ++ * ++ * 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. ++ */ ++ ++package sun.beans.editors; ++ ++/** ++ * FOR BACKWARD COMPATIBILITY ONLY - DO NOT USE. ++ */ ++abstract public class NumberEditor extends com.sun.beans.editors.NumberEditor { ++} +diff --git a/src/share/classes/sun/beans/editors/ShortEditor.java b/src/share/classes/sun/beans/editors/ShortEditor.java +new file mode 100644 +--- /dev/null ++++ openjdk/jdk/src/share/classes/sun/beans/editors/ShortEditor.java +@@ -0,0 +1,32 @@ ++/* ++ * Copyright (c) 2012, 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. Oracle designates this ++ * particular file as subject to the "Classpath" exception as provided ++ * by Oracle in the LICENSE file that accompanied this code. ++ * ++ * 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. ++ */ ++ ++package sun.beans.editors; ++ ++/** ++ * FOR BACKWARD COMPATIBILITY ONLY - DO NOT USE. ++ */ ++public class ShortEditor extends com.sun.beans.editors.ShortEditor { ++} +diff --git a/src/share/classes/sun/beans/editors/StringEditor.java b/src/share/classes/sun/beans/editors/StringEditor.java +new file mode 100644 +--- /dev/null ++++ openjdk/jdk/src/share/classes/sun/beans/editors/StringEditor.java +@@ -0,0 +1,32 @@ ++/* ++ * Copyright (c) 2012, 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. Oracle designates this ++ * particular file as subject to the "Classpath" exception as provided ++ * by Oracle in the LICENSE file that accompanied this code. ++ * ++ * 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. ++ */ ++ ++package sun.beans.editors; ++ ++/** ++ * FOR BACKWARD COMPATIBILITY ONLY - DO NOT USE. ++ */ ++public class StringEditor extends com.sun.beans.editors.StringEditor { ++}