changeset 2583:e067051f7a6e

Add security fixes from 2012/08/30. 2012-08-31 Andrew John Hughes <ahughes@redhat.com> * 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.
author Andrew John Hughes <ahughes@redhat.com>
date Fri, 31 Aug 2012 16:59:45 +0100
parents f5a3984175d3
children fa657fd33ff2
files ChangeLog Makefile.am patches/nomotif-6706121.patch patches/openjdk/6633275-shaped_translucent_windows.patch patches/openjdk/6693253-security_warning.patch patches/openjdk/6797195-hw_lw_mixing.patch patches/openjdk/7185678-xmenuitem_peer_npe.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
diffstat 10 files changed, 7274 insertions(+), 940 deletions(-) [+]
line wrap: on
line diff
--- 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  <ahughes@redhat.com>
+
+	* 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  <ahughes@redhat.com>
 
 	* configure.ac: Bump to 1.10.9pre.
--- 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 += \
--- 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);
  
--- 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 <code>Window</code> ancestor of the component <code>comp</code>.
 -     * @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 @@
 +<?xml version="1.0" encoding="UTF-8" ?>
 +
@@ -4580,7 +4545,7 @@
 +</Form>
 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.
--- 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<XWindowPeer> windows = new HashSet<XWindowPeer>();
@@ -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 <jvm.h>
  
@@ -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.
--- 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 <code>Component</code> 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) {
--- /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() {
--- /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<PropertyChangeListener> listeners = new ArrayList<PropertyChangeListener>();
++
++    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 <code>static</code> 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.
+      * <p>     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<PropertyChangeListener> listeners = new ArrayList<PropertyChangeListener>();
+-
+-    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);
--- /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 <code>MenuComponent</code>.
+      * @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 <code>Menu</code> 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 <code>SystemTray</code> 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 <code>SystemTray</code> 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<Field>() {
+-            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<Method>() {
+-                    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<Component> 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.*;
--- /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<PropertyChangeListener> listeners = new ArrayList<PropertyChangeListener>();
+ 
+     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 {
++}