openjdk-6-6b18: add pre1.8.1 releasebranch fixes up to 19 Jul 2010.
authorXerxes Rånby <xerxes@zafena.se>
Tue, 20 Jul 2010 15:30:03 +0000 (17:30 +0200)
committerXerxes Rånby <xerxes@zafena.se>
Tue, 20 Jul 2010 15:33:45 +0000 (17:33 +0200)
* openjdk-6-6b18-1.8/icedtea1.8-pre1.8.1-releasebranch-fixes.patch: Updated.
fixes origin from http://icedtea.classpath.org/hg/release/icedtea6-1.8/shortlog

recipes/openjdk/openjdk-6-6b18-1.8/icedtea1.8-pre1.8.1-releasebranch-fixes.patch
recipes/openjdk/openjdk-6_6b18-1.8.bb

index 96f00c9..b48bcf0 100644 (file)
@@ -1,7 +1,41 @@
-diff -r a0120629678b ChangeLog
---- a/ChangeLog        Wed Apr 14 12:21:03 2010 +0200
-+++ b/ChangeLog        Fri Jul 16 14:30:37 2010 +0200
-@@ -1,3 +1,227 @@
+diff -r d1ad52447673 ChangeLog
+--- a/ChangeLog        Wed Apr 14 12:21:30 2010 +0200
++++ b/ChangeLog        Tue Jul 20 16:36:52 2010 +0200
+@@ -1,3 +1,261 @@
++2010-07-19  Gary Benson  <gbenson@redhat.com>
++
++      PR icedtea/483
++      * ports/hotspot/src/share/vm/shark/sharkNativeWrapper.cpp
++      (SharkNativeWrapper::initialize): Fix signedness of T_BYTE
++      and T_CHAR results.
++
++2010-07-16  Deepak Bhole <dbhole@redhat.com>
++
++      * patches/icedtea-policy-evaluation.patch: New patch. Fixes policy
++      evaluation to match the proprietary JDK.
++
++2010-07-15  Deepak Bhole <dbhole@redhat.com>
++
++      * patches/openjdk/6678385.patch: New file. Backpatched from jdk7 for 
++      upstream bug#6678385. Fixes rhbz# 551835. Fixes jvm crashes when window is
++      resized.
++
++2010-07-14  Jon VanAlten  <jon.vanalten@redhat.com>
++
++      * patches/icedtea-override-redirect-metacity.patch: Produces the
++      "expected" behavior for full screen applications or other situations
++      where developers wish to present elements that would cover things like
++      panels.  We previously had a version of this patch since changeset 876
++      ebc064e8892d, but dropped it in changeset changeset 1731
++      83619682858e because upstream had rejected as a metacity bug[1].
++      Metacity maintains that this behavior does not break any spec and does
++      not appear likely to change either[2], so we must be the "good guys" and
++      provide the expected behavior.  See discussion[3].
++      [1] http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6514512
++      [2] https://bugzilla.gnome.org/show_bug.cgi?id=405269
++      [3] http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2010-April/008862.html
++      * Makefile.am: Apply icedtea-override-redirect-metacity.patch.
++
 +2010-07-13  Mark Wielaard  <mjw@redhat.com>
 +
 +      Reported by William Cohen <wcohen@redhat.com>
@@ -229,10 +263,29 @@ diff -r a0120629678b ChangeLog
  2010-04-12  Andrew John Hughes  <ahughes@redhat.com>
  
        PR icedtea/373
-diff -r a0120629678b Makefile.am
---- a/Makefile.am      Wed Apr 14 12:21:03 2010 +0200
-+++ b/Makefile.am      Fri Jul 16 14:30:37 2010 +0200
-@@ -374,7 +374,8 @@
+diff -r d1ad52447673 Makefile.am
+--- a/Makefile.am      Wed Apr 14 12:21:30 2010 +0200
++++ b/Makefile.am      Tue Jul 20 16:36:52 2010 +0200
+@@ -298,6 +298,7 @@
+       patches/icedtea-linux-separate-debuginfo.patch \
+       patches/icedtea-parisc.patch \
+       patches/icedtea-sh4-support.patch \
++      patches/icedtea-policy-evaluation.patch \
+       patches/libpng.patch \
+       patches/extensions/netx.patch \
+       patches/extensions/netx-dist.patch \
+@@ -326,7 +327,9 @@
+       patches/security/20100330/6932480.patch \
+       patches/ant-1.8.0.patch \
+       patches/icedtea-nss-6763530.patch \
+-      patches/nss-debug.patch
++      patches/nss-debug.patch \
++      patches/icedtea-override-redirect-metacity.patch \
++      patches/openjdk/6678385.patch
+ if WITH_RHINO
+ ICEDTEA_PATCHES += \
+@@ -374,7 +377,8 @@
  endif
  
  if ENABLE_SYSTEMTAP
@@ -242,7 +295,7 @@ diff -r a0120629678b Makefile.am
  endif
  
  if ENABLE_NSS
-@@ -2024,7 +2025,8 @@
+@@ -2024,7 +2028,8 @@
        mkdir -p test/langtools/JTwork test/langtools/JTreport
        $(ICEDTEA_BOOT_DIR)/bin/java -jar test/jtreg.jar -v1 -a -ignore:quiet \
                -w:test/langtools/JTwork -r:test/langtools/JTreport \
@@ -252,7 +305,7 @@ diff -r a0120629678b Makefile.am
                $(ICEDTEA_JTREG_OPTIONS) \
                `pwd`/openjdk/langtools/test \
            | tee test/$@.log
-@@ -2033,7 +2035,8 @@
+@@ -2033,7 +2038,8 @@
        mkdir -p test/jdk/JTwork test/jdk/JTreport
        $(ICEDTEA_BOOT_DIR)/bin/java -jar test/jtreg.jar -v1 -a -ignore:quiet \
                -w:test/jdk/JTwork -r:test/jdk/JTreport \
@@ -262,9 +315,9 @@ diff -r a0120629678b Makefile.am
                -exclude:$(abs_top_srcdir)/test/jtreg/excludelist.jdk.jtx \
                $(ICEDTEA_JTREG_OPTIONS) \
                `pwd`/openjdk/jdk/test \
-diff -r a0120629678b acinclude.m4
---- a/acinclude.m4     Wed Apr 14 12:21:03 2010 +0200
-+++ b/acinclude.m4     Fri Jul 16 14:30:37 2010 +0200
+diff -r d1ad52447673 acinclude.m4
+--- a/acinclude.m4     Wed Apr 14 12:21:30 2010 +0200
++++ b/acinclude.m4     Tue Jul 20 16:36:52 2010 +0200
 @@ -85,7 +85,7 @@
        CROSS_TARGET_ARCH=s390x
        ARCHFLAG="-m64"
@@ -351,9 +404,9 @@ diff -r a0120629678b acinclude.m4
    AC_SUBST(MOZILLA_VERSION_COLLAPSED, $xulrunner_cv_collapsed_version)
  fi
  ])
-diff -r a0120629678b netx/net/sourceforge/jnlp/Launcher.java
---- a/netx/net/sourceforge/jnlp/Launcher.java  Wed Apr 14 12:21:03 2010 +0200
-+++ b/netx/net/sourceforge/jnlp/Launcher.java  Fri Jul 16 14:30:37 2010 +0200
+diff -r d1ad52447673 netx/net/sourceforge/jnlp/Launcher.java
+--- a/netx/net/sourceforge/jnlp/Launcher.java  Wed Apr 14 12:21:30 2010 +0200
++++ b/netx/net/sourceforge/jnlp/Launcher.java  Tue Jul 20 16:36:52 2010 +0200
 @@ -442,7 +442,7 @@
              Method main = mainClass.getDeclaredMethod("main", new Class[] {String[].class} );
              String args[] = file.getApplication().getArguments();
@@ -412,9 +465,9 @@ diff -r a0120629678b netx/net/sourceforge/jnlp/Launcher.java
  
              return appletInstance;
          }
-diff -r a0120629678b netx/net/sourceforge/jnlp/Parser.java
---- a/netx/net/sourceforge/jnlp/Parser.java    Wed Apr 14 12:21:03 2010 +0200
-+++ b/netx/net/sourceforge/jnlp/Parser.java    Fri Jul 16 14:30:37 2010 +0200
+diff -r d1ad52447673 netx/net/sourceforge/jnlp/Parser.java
+--- a/netx/net/sourceforge/jnlp/Parser.java    Wed Apr 14 12:21:30 2010 +0200
++++ b/netx/net/sourceforge/jnlp/Parser.java    Tue Jul 20 16:36:52 2010 +0200
 @@ -1169,11 +1169,15 @@
              Node jnlpNode = getChildNode(document, "jnlp"); // skip comments
              */
@@ -503,9 +556,9 @@ diff -r a0120629678b netx/net/sourceforge/jnlp/Parser.java
  }
  
 -
-diff -r a0120629678b netx/net/sourceforge/jnlp/SecurityDesc.java
---- a/netx/net/sourceforge/jnlp/SecurityDesc.java      Wed Apr 14 12:21:03 2010 +0200
-+++ b/netx/net/sourceforge/jnlp/SecurityDesc.java      Fri Jul 16 14:30:37 2010 +0200
+diff -r d1ad52447673 netx/net/sourceforge/jnlp/SecurityDesc.java
+--- a/netx/net/sourceforge/jnlp/SecurityDesc.java      Wed Apr 14 12:21:30 2010 +0200
++++ b/netx/net/sourceforge/jnlp/SecurityDesc.java      Tue Jul 20 16:36:52 2010 +0200
 @@ -31,12 +31,9 @@
   */
  public class SecurityDesc {
@@ -522,9 +575,9 @@ diff -r a0120629678b netx/net/sourceforge/jnlp/SecurityDesc.java
  
      /** All permissions. */
      public static final Object ALL_PERMISSIONS = "All";
-diff -r a0120629678b netx/net/sourceforge/jnlp/cache/CacheUtil.java
---- a/netx/net/sourceforge/jnlp/cache/CacheUtil.java   Wed Apr 14 12:21:03 2010 +0200
-+++ b/netx/net/sourceforge/jnlp/cache/CacheUtil.java   Fri Jul 16 14:30:37 2010 +0200
+diff -r d1ad52447673 netx/net/sourceforge/jnlp/cache/CacheUtil.java
+--- a/netx/net/sourceforge/jnlp/cache/CacheUtil.java   Wed Apr 14 12:21:30 2010 +0200
++++ b/netx/net/sourceforge/jnlp/cache/CacheUtil.java   Tue Jul 20 16:36:52 2010 +0200
 @@ -26,6 +26,7 @@
  
  import net.sourceforge.jnlp.*;
@@ -558,9 +611,9 @@ diff -r a0120629678b netx/net/sourceforge/jnlp/cache/CacheUtil.java
  
      /**
       * Waits until the resources are downloaded, while showing a
-diff -r a0120629678b netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java
---- a/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java   Wed Apr 14 12:21:03 2010 +0200
-+++ b/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java   Fri Jul 16 14:30:37 2010 +0200
+diff -r d1ad52447673 netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java
+--- a/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java   Wed Apr 14 12:21:30 2010 +0200
++++ b/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java   Tue Jul 20 16:36:52 2010 +0200
 @@ -32,6 +32,7 @@
  import java.security.Permissions;
  import java.security.PrivilegedAction;
@@ -733,9 +786,9 @@ diff -r a0120629678b netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java
      }
  
      /**
-diff -r a0120629678b netx/net/sourceforge/jnlp/runtime/JNLPSecurityManager.java
---- a/netx/net/sourceforge/jnlp/runtime/JNLPSecurityManager.java       Wed Apr 14 12:21:03 2010 +0200
-+++ b/netx/net/sourceforge/jnlp/runtime/JNLPSecurityManager.java       Fri Jul 16 14:30:37 2010 +0200
+diff -r d1ad52447673 netx/net/sourceforge/jnlp/runtime/JNLPSecurityManager.java
+--- a/netx/net/sourceforge/jnlp/runtime/JNLPSecurityManager.java       Wed Apr 14 12:21:30 2010 +0200
++++ b/netx/net/sourceforge/jnlp/runtime/JNLPSecurityManager.java       Tue Jul 20 16:36:52 2010 +0200
 @@ -23,10 +23,12 @@
  import java.awt.event.WindowEvent;
  import java.lang.ref.WeakReference;
@@ -809,9 +862,9 @@ diff -r a0120629678b netx/net/sourceforge/jnlp/runtime/JNLPSecurityManager.java
      /**
       * Asks the user whether or not to grant permission.
       * @param perm the permission to be granted
-diff -r a0120629678b netx/net/sourceforge/jnlp/services/XSingleInstanceService.java
---- a/netx/net/sourceforge/jnlp/services/XSingleInstanceService.java   Wed Apr 14 12:21:03 2010 +0200
-+++ b/netx/net/sourceforge/jnlp/services/XSingleInstanceService.java   Fri Jul 16 14:30:37 2010 +0200
+diff -r d1ad52447673 netx/net/sourceforge/jnlp/services/XSingleInstanceService.java
+--- a/netx/net/sourceforge/jnlp/services/XSingleInstanceService.java   Wed Apr 14 12:21:30 2010 +0200
++++ b/netx/net/sourceforge/jnlp/services/XSingleInstanceService.java   Tue Jul 20 16:36:52 2010 +0200
 @@ -145,14 +145,21 @@
      }
  
@@ -836,9 +889,9 @@ diff -r a0120629678b netx/net/sourceforge/jnlp/services/XSingleInstanceService.j
      }
  
      /**
-diff -r a0120629678b netx/net/sourceforge/jnlp/util/FileUtils.java
---- a/netx/net/sourceforge/jnlp/util/FileUtils.java    Wed Apr 14 12:21:03 2010 +0200
-+++ b/netx/net/sourceforge/jnlp/util/FileUtils.java    Fri Jul 16 14:30:37 2010 +0200
+diff -r d1ad52447673 netx/net/sourceforge/jnlp/util/FileUtils.java
+--- a/netx/net/sourceforge/jnlp/util/FileUtils.java    Wed Apr 14 12:21:30 2010 +0200
++++ b/netx/net/sourceforge/jnlp/util/FileUtils.java    Tue Jul 20 16:36:52 2010 +0200
 @@ -14,35 +14,58 @@
  // License along with this library; if not, write to the Free Software
  // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
@@ -912,9 +965,1308 @@ diff -r a0120629678b netx/net/sourceforge/jnlp/util/FileUtils.java
 -    
 +
  }
-diff -r a0120629678b patches/systemtap-gcc-4.5.patch
+diff -r d1ad52447673 patches/icedtea-override-redirect-metacity.patch
 --- /dev/null  Thu Jan 01 00:00:00 1970 +0000
-+++ b/patches/systemtap-gcc-4.5.patch  Fri Jul 16 14:30:37 2010 +0200
++++ b/patches/icedtea-override-redirect-metacity.patch Tue Jul 20 16:36:52 2010 +0200
+@@ -0,0 +1,11 @@
++--- openjdk/jdk/src/solaris/classes/sun/awt/X11/XWindowPeer.java.orig 2008-05-25 17:31:31.000000000 +0200
+++++ openjdk/jdk/src/solaris/classes/sun/awt/X11/XWindowPeer.java      2008-05-25 17:33:32.000000000 +0200
++@@ -1124,6 +1124,8 @@
++ 
++     boolean isOverrideRedirect() {
++         return (XWM.getWMID() == XWM.OPENLOOK_WM ? true : false) ||
+++            (XWM.getWMID() == XWM.METACITY_WM ? true : false) ||
+++            target.getName().equals("###overrideRedirect###") ||
++             ((XToolkit)Toolkit.getDefaultToolkit()).isOverrideRedirect((Window)target) ||
++             XTrayIconPeer.isTrayIconStuffWindow((Window)target);
++     }
+diff -r d1ad52447673 patches/icedtea-policy-evaluation.patch
+--- /dev/null  Thu Jan 01 00:00:00 1970 +0000
++++ b/patches/icedtea-policy-evaluation.patch  Tue Jul 20 16:36:52 2010 +0200
+@@ -0,0 +1,35 @@
++# This patch aligns policy evaluation to be the same as the proprietary JDK.
++# http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2010-July/009658.html
++# https://bugs.openjdk.java.net/show_bug.cgi?id=100142
++
++diff -up ./openjdk/jdk/src/share/classes/sun/security/provider/PolicyFile.java.sav ./jdk/src/share/classes/sun/security/provider/PolicyFile.java
++--- ./openjdk.orig/jdk/src/share/classes/sun/security/provider/PolicyFile.java.sav    2010-04-20 14:49:13.000000000 -0400
+++++ ./openjdk/jdk/src/share/classes/sun/security/provider/PolicyFile.java     2010-04-20 14:50:26.000000000 -0400
++@@ -1799,6 +1799,27 @@ public class PolicyFile extends java.sec
++ 
++         CodeSource canonCs = cs;
++         URL u = cs.getLocation();
+++        
+++        // If this is a jar protocol url, collapse it to a 
+++        // file protocol to process it as per the javadocs
+++        if (u != null && u.getProtocol().equals("jar")) {
+++            try {
+++                String fileURL = "";
+++            
+++                // remove the initial jar:
+++                fileURL = u.getPath();
+++            
+++                // remove the part after the !
+++                fileURL = fileURL.substring(0, fileURL.indexOf('!'));
+++                
+++                u = new URL(fileURL);
+++
+++            } catch (Exception e) {
+++                // Fail silently. In this case, url stays what it was above
+++            }
+++            
+++        }
+++        
++         if (u != null && u.getProtocol().equals("file")) {
++             boolean isLocalFile = false;
++             String host = u.getHost();
+diff -r d1ad52447673 patches/openjdk/6678385.patch
+--- /dev/null  Thu Jan 01 00:00:00 1970 +0000
++++ b/patches/openjdk/6678385.patch    Tue Jul 20 16:36:52 2010 +0200
+@@ -0,0 +1,1241 @@
++# HG changeset patch
++# User art
++# Date 1242387635 -14400
++# Node ID f62f7fcc9965cd0b110f07b4cd42c419f77717c1
++# Parent  b28b073e72b625a4d8b6e71010a2968b5fc85124
++6678385: Random java.lang.StackOverflowError from various JDKs
++Reviewed-by: stayer
++
++IcedTea6 note: This patch (upstream bz#6678385) fixes rhbz# 551835.
++
++diff -uNr openjdk.orig/jdk/make/sun/xawt/mapfile-vers openjdk/jdk/make/sun/xawt/mapfile-vers
++--- openjdk.orig/jdk/make/sun/xawt/mapfile-vers       2010-07-15 10:28:21.755105655 -0400
+++++ openjdk/jdk/make/sun/xawt/mapfile-vers    2010-07-15 10:28:42.630981569 -0400
++@@ -125,6 +125,7 @@
++         Java_sun_awt_X11_XlibWrapper_SetToolkitErrorHandler;
++         Java_sun_awt_X11_XlibWrapper_XSetErrorHandler;
++         Java_sun_awt_X11_XlibWrapper_CallErrorHandler;
+++        Java_sun_awt_X11_XlibWrapper_PrintXErrorEvent;
++         Java_sun_awt_X11_XlibWrapper_XInternAtoms;
++         Java_sun_awt_X11_XlibWrapper_XChangeWindowAttributes;
++         Java_sun_awt_X11_XlibWrapper_XDeleteProperty;
++@@ -269,7 +270,6 @@
++         Java_sun_awt_X11_XToolkit_getDefaultXColormap;
++         Java_sun_awt_X11_XToolkit_getDefaultScreenData;
++         Java_sun_awt_X11_XToolkit_getEnv;
++-        Java_sun_awt_X11_XToolkit_setNoisyXErrorHandler;
++         Java_sun_awt_X11_XlibWrapper_XCreateBitmapFromData;
++         Java_sun_awt_X11_XlibWrapper_XFreePixmap;
++         Java_sun_awt_X11_XlibWrapper_XAllocColor;
++diff -uNr openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/MotifDnDConstants.java openjdk/jdk/src/solaris/classes/sun/awt/X11/MotifDnDConstants.java
++--- openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/MotifDnDConstants.java   2010-07-15 10:28:21.905105617 -0400
+++++ openjdk/jdk/src/solaris/classes/sun/awt/X11/MotifDnDConstants.java        2010-07-15 10:28:42.631981678 -0400
++@@ -119,7 +119,7 @@
++                                                             false,
++                                                             XlibWrapper.AnyPropertyType);
++         try {
++-            int status = wpg.execute(XToolkit.IgnoreBadWindowHandler);
+++            int status = wpg.execute(XErrorHandler.IgnoreBadWindowHandler.getInstance());
++ 
++             if (status == XlibWrapper.Success &&
++                 wpg.getData() != 0 &&
++@@ -189,7 +189,7 @@
++                 try {
++                     Native.putLong(data, motifWindow);
++ 
++-                    XToolkit.WITH_XERROR_HANDLER(XWM.VerifyChangePropertyHandler);
+++                    XToolkit.WITH_XERROR_HANDLER(XErrorHandler.VerifyChangePropertyHandler.getInstance());
++                     XlibWrapper.XChangeProperty(XToolkit.getDisplay(),
++                                                 defaultRootWindow,
++                                                 XA_MOTIF_DRAG_WINDOW.getAtom(),
++@@ -276,7 +276,7 @@
++                                                             false,
++                                                             XA_MOTIF_DRAG_TARGETS.getAtom());
++         try {
++-            int status = wpg.execute(XToolkit.IgnoreBadWindowHandler);
+++            int status = wpg.execute(XErrorHandler.IgnoreBadWindowHandler.getInstance());
++ 
++             if (status != XlibWrapper.Success
++                 || wpg.getActualType() != XA_MOTIF_DRAG_TARGETS.getAtom()
++@@ -390,7 +390,7 @@
++                 }
++             }
++ 
++-            XToolkit.WITH_XERROR_HANDLER(XWM.VerifyChangePropertyHandler);
+++            XToolkit.WITH_XERROR_HANDLER(XErrorHandler.VerifyChangePropertyHandler.getInstance());
++             XlibWrapper.XChangeProperty(XToolkit.getDisplay(),
++                                         motifWindow,
++                                         XA_MOTIF_DRAG_TARGETS.getAtom(),
++@@ -406,7 +406,7 @@
++                 // Create a new motif window and retry.
++                 motifWindow = createMotifWindow();
++ 
++-                XToolkit.WITH_XERROR_HANDLER(XWM.VerifyChangePropertyHandler);
+++                XToolkit.WITH_XERROR_HANDLER(XErrorHandler.VerifyChangePropertyHandler.getInstance());
++                 XlibWrapper.XChangeProperty(XToolkit.getDisplay(),
++                                             motifWindow,
++                                             XA_MOTIF_DRAG_TARGETS.getAtom(),
++@@ -530,7 +530,7 @@
++             // CARD32 icc_handle
++             unsafe.putInt(structData + 4, (int)XA_MOTIF_ATOM_0.getAtom());
++ 
++-            XToolkit.WITH_XERROR_HANDLER(XWM.VerifyChangePropertyHandler);
+++            XToolkit.WITH_XERROR_HANDLER(XErrorHandler.VerifyChangePropertyHandler.getInstance());
++             XlibWrapper.XChangeProperty(XToolkit.getDisplay(), window,
++                                         XA_MOTIF_ATOM_0.getAtom(),
++                                         XA_MOTIF_DRAG_INITIATOR_INFO.getAtom(),
++@@ -563,7 +563,7 @@
++             unsafe.putShort(data + 10, (short)0); /* pad */
++             unsafe.putInt(data + 12, dataSize);
++ 
++-            XToolkit.WITH_XERROR_HANDLER(XWM.VerifyChangePropertyHandler);
+++            XToolkit.WITH_XERROR_HANDLER(XErrorHandler.VerifyChangePropertyHandler.getInstance());
++             XlibWrapper.XChangeProperty(XToolkit.getDisplay(), window,
++                                         XA_MOTIF_DRAG_RECEIVER_INFO.getAtom(),
++                                         XA_MOTIF_DRAG_RECEIVER_INFO.getAtom(),
++diff -uNr openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/MotifDnDDragSourceProtocol.java openjdk/jdk/src/solaris/classes/sun/awt/X11/MotifDnDDragSourceProtocol.java
++--- openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/MotifDnDDragSourceProtocol.java  2010-07-15 10:28:21.905105617 -0400
+++++ openjdk/jdk/src/solaris/classes/sun/awt/X11/MotifDnDDragSourceProtocol.java       2010-07-15 10:28:42.633981353 -0400
++@@ -184,7 +184,7 @@
++                                      XlibWrapper.AnyPropertyType);
++ 
++         try {
++-            int status = wpg.execute(XToolkit.IgnoreBadWindowHandler);
+++            int status = wpg.execute(XErrorHandler.IgnoreBadWindowHandler.getInstance());
++ 
++             /*
++              * DragICCI.h:
++diff -uNr openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/MotifDnDDropTargetProtocol.java openjdk/jdk/src/solaris/classes/sun/awt/X11/MotifDnDDropTargetProtocol.java
++--- openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/MotifDnDDropTargetProtocol.java  2010-07-15 10:28:21.904105558 -0400
+++++ openjdk/jdk/src/solaris/classes/sun/awt/X11/MotifDnDDropTargetProtocol.java       2010-07-15 10:28:42.636014780 -0400
++@@ -102,7 +102,7 @@
++                                      XlibWrapper.AnyPropertyType);
++ 
++         try {
++-            status = wpg.execute(XToolkit.IgnoreBadWindowHandler);
+++            status = wpg.execute(XErrorHandler.IgnoreBadWindowHandler.getInstance());
++ 
++             /*
++              * DragICCI.h:
++@@ -162,7 +162,7 @@
++                 unsafe.putInt(data + 12, dataSize);
++             }
++ 
++-            XToolkit.WITH_XERROR_HANDLER(XWM.VerifyChangePropertyHandler);
+++            XToolkit.WITH_XERROR_HANDLER(XErrorHandler.VerifyChangePropertyHandler.getInstance());
++             XlibWrapper.XChangeProperty(XToolkit.getDisplay(), embedder,
++                                         MotifDnDConstants.XA_MOTIF_DRAG_RECEIVER_INFO.getAtom(),
++                                         MotifDnDConstants.XA_MOTIF_DRAG_RECEIVER_INFO.getAtom(),
++@@ -204,7 +204,7 @@
++                                          XlibWrapper.AnyPropertyType);
++ 
++             try {
++-                status = wpg.execute(XToolkit.IgnoreBadWindowHandler);
+++                status = wpg.execute(XErrorHandler.IgnoreBadWindowHandler.getInstance());
++ 
++                 /*
++                  * DragICCI.h:
++@@ -236,7 +236,7 @@
++ 
++                     unsafe.putInt(data + 4, tproxy);
++ 
++-                    XToolkit.WITH_XERROR_HANDLER(XWM.VerifyChangePropertyHandler);
+++                    XToolkit.WITH_XERROR_HANDLER(XErrorHandler.VerifyChangePropertyHandler.getInstance());
++                     XlibWrapper.XChangeProperty(XToolkit.getDisplay(), embedder,
++                                                 MotifDnDConstants.XA_MOTIF_DRAG_RECEIVER_INFO.getAtom(),
++                                                 MotifDnDConstants.XA_MOTIF_DRAG_RECEIVER_INFO.getAtom(),
++@@ -276,7 +276,7 @@
++                                      XlibWrapper.AnyPropertyType);
++ 
++         try {
++-            status = wpg.execute(XToolkit.IgnoreBadWindowHandler);
+++            status = wpg.execute(XErrorHandler.IgnoreBadWindowHandler.getInstance());
++ 
++             /*
++              * DragICCI.h:
++@@ -325,7 +325,7 @@
++                                      XlibWrapper.AnyPropertyType);
++ 
++         try {
++-            int status = wpg.execute(XToolkit.IgnoreBadWindowHandler);
+++            int status = wpg.execute(XErrorHandler.IgnoreBadWindowHandler.getInstance());
++ 
++             if (status == (int)XlibWrapper.Success && wpg.getData() != 0 &&
++                 wpg.getActualType() != 0 && wpg.getActualFormat() == 8 &&
++@@ -375,7 +375,7 @@
++                                          MotifDnDConstants.XA_MOTIF_DRAG_INITIATOR_INFO.getAtom());
++ 
++             try {
++-                int status = wpg.execute(XToolkit.IgnoreBadWindowHandler);
+++                int status = wpg.execute(XErrorHandler.IgnoreBadWindowHandler.getInstance());
++ 
++                 if (status == XlibWrapper.Success && wpg.getData() != 0 &&
++                     wpg.getActualType() ==
++@@ -412,7 +412,7 @@
++          */
++         XWindowAttributes wattr = new XWindowAttributes();
++         try {
++-            XToolkit.WITH_XERROR_HANDLER(XToolkit.IgnoreBadWindowHandler);
+++            XToolkit.WITH_XERROR_HANDLER(XErrorHandler.IgnoreBadWindowHandler.getInstance());
++             int status = XlibWrapper.XGetWindowAttributes(XToolkit.getDisplay(),
++                                                           source_win, wattr.pData);
++ 
++@@ -429,7 +429,7 @@
++             wattr.dispose();
++         }
++ 
++-        XToolkit.WITH_XERROR_HANDLER(XToolkit.IgnoreBadWindowHandler);
+++        XToolkit.WITH_XERROR_HANDLER(XErrorHandler.IgnoreBadWindowHandler.getInstance());
++         XlibWrapper.XSelectInput(XToolkit.getDisplay(), source_win,
++                                  source_win_mask |
++                                  XlibWrapper.StructureNotifyMask);
++@@ -1020,7 +1020,7 @@
++         if (sourceWindow != 0) {
++             XToolkit.awtLock();
++             try {
++-                XToolkit.WITH_XERROR_HANDLER(XToolkit.IgnoreBadWindowHandler);
+++                XToolkit.WITH_XERROR_HANDLER(XErrorHandler.IgnoreBadWindowHandler.getInstance());
++                 XlibWrapper.XSelectInput(XToolkit.getDisplay(), sourceWindow,
++                                          sourceWindowMask);
++                 XToolkit.RESTORE_XERROR_HANDLER();
++diff -uNr openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/WindowPropertyGetter.java openjdk/jdk/src/solaris/classes/sun/awt/X11/WindowPropertyGetter.java
++--- openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/WindowPropertyGetter.java        2010-07-15 10:28:21.900105578 -0400
+++++ openjdk/jdk/src/solaris/classes/sun/awt/X11/WindowPropertyGetter.java     2010-07-15 10:28:42.637046074 -0400
++@@ -75,7 +75,7 @@
++     public int execute() {
++         return execute(null);
++     }
++-    public int execute(XToolkit.XErrorHandler errorHandler) {
+++    public int execute(XErrorHandler errorHandler) {
++ 
++         XToolkit.awtLock();
++         try {
++@@ -94,7 +94,7 @@
++ 
++             // Fix for performance problem - IgnodeBadWindowHandler is
++             // used too much without reason, just ignore it
++-            if (errorHandler == XToolkit.IgnoreBadWindowHandler) {
+++            if (errorHandler instanceof XErrorHandler.IgnoreBadWindowHandler) {
++                 errorHandler = null;
++             }
++ 
++diff -uNr openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XAWTXSettings.java openjdk/jdk/src/solaris/classes/sun/awt/X11/XAWTXSettings.java
++--- openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XAWTXSettings.java       2010-07-15 10:28:21.896105637 -0400
+++++ openjdk/jdk/src/solaris/classes/sun/awt/X11/XAWTXSettings.java    2010-07-15 10:28:42.637981716 -0400
++@@ -122,7 +122,7 @@
++                 new WindowPropertyGetter(owner, xSettingsPropertyAtom, 0, MAX_LENGTH,
++                         false, xSettingsPropertyAtom.getAtom() );
++             try {
++-                int status = getter.execute(XToolkit.IgnoreBadWindowHandler);
+++                int status = getter.execute(XErrorHandler.IgnoreBadWindowHandler.getInstance());
++ 
++                 if (status != XlibWrapper.Success || getter.getData() == 0) {
++                     if (log.isLoggable(Level.FINE)) log.fine("OH OH : getter failed  status = " + status );
++diff -uNr 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      2010-07-15 10:28:21.895105718 -0400
+++++ openjdk/jdk/src/solaris/classes/sun/awt/X11/XDecoratedPeer.java   2010-07-15 10:28:42.640232090 -0400
++@@ -1155,7 +1155,8 @@
++     }
++ 
++     boolean isOverrideRedirect() {
++-        return false;
+++//        return false;
+++        return ((XToolkit)Toolkit.getDefaultToolkit()).isOverrideRedirect((Window)target);
++     }
++ 
++     public boolean requestWindowFocus(long time, boolean timeProvided) {
++diff -uNr openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XDnDDragSourceProtocol.java openjdk/jdk/src/solaris/classes/sun/awt/X11/XDnDDragSourceProtocol.java
++--- openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XDnDDragSourceProtocol.java      2010-07-15 10:28:21.906105640 -0400
+++++ openjdk/jdk/src/solaris/classes/sun/awt/X11/XDnDDragSourceProtocol.java   2010-07-15 10:28:42.642232277 -0400
++@@ -96,7 +96,7 @@
++                 action_count++;
++             }
++ 
++-            XToolkit.WITH_XERROR_HANDLER(XWM.VerifyChangePropertyHandler);
+++            XToolkit.WITH_XERROR_HANDLER(XErrorHandler.VerifyChangePropertyHandler.getInstance());
++             XDnDConstants.XA_XdndActionList.setAtomData(window,
++                                                         XAtom.XA_ATOM,
++                                                         data, action_count);
++@@ -117,7 +117,7 @@
++         try {
++             Native.put(data, formats);
++ 
++-            XToolkit.WITH_XERROR_HANDLER(XWM.VerifyChangePropertyHandler);
+++            XToolkit.WITH_XERROR_HANDLER(XErrorHandler.VerifyChangePropertyHandler.getInstance());
++             XDnDConstants.XA_XdndTypeList.setAtomData(window,
++                                                       XAtom.XA_ATOM,
++                                                       data, formats.length);
++@@ -195,7 +195,7 @@
++             new WindowPropertyGetter(window, XDnDConstants.XA_XdndAware, 0, 1,
++                                      false, XlibWrapper.AnyPropertyType);
++ 
++-        int status = wpg1.execute(XToolkit.IgnoreBadWindowHandler);
+++        int status = wpg1.execute(XErrorHandler.IgnoreBadWindowHandler.getInstance());
++ 
++         if (status == XlibWrapper.Success &&
++             wpg1.getData() != 0 && wpg1.getActualType() == XAtom.XA_ATOM) {
++@@ -215,7 +215,7 @@
++                                              0, 1, false, XAtom.XA_WINDOW);
++ 
++                 try {
++-                    status = wpg2.execute(XToolkit.IgnoreBadWindowHandler);
+++                    status = wpg2.execute(XErrorHandler.IgnoreBadWindowHandler.getInstance());
++ 
++                     if (status == XlibWrapper.Success &&
++                         wpg2.getData() != 0 &&
++@@ -233,7 +233,7 @@
++                                                  0, 1, false, XAtom.XA_WINDOW);
++ 
++                     try {
++-                        status = wpg3.execute(XToolkit.IgnoreBadWindowHandler);
+++                        status = wpg3.execute(XErrorHandler.IgnoreBadWindowHandler.getInstance());
++ 
++                         if (status != XlibWrapper.Success ||
++                             wpg3.getData() == 0 ||
++@@ -249,7 +249,7 @@
++                                                          XlibWrapper.AnyPropertyType);
++ 
++                             try {
++-                                status = wpg4.execute(XToolkit.IgnoreBadWindowHandler);
+++                                status = wpg4.execute(XErrorHandler.IgnoreBadWindowHandler.getInstance());
++ 
++                                 if (status != XlibWrapper.Success ||
++                                     wpg4.getData() == 0 ||
++diff -uNr openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XDnDDropTargetProtocol.java openjdk/jdk/src/solaris/classes/sun/awt/X11/XDnDDropTargetProtocol.java
++--- openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XDnDDropTargetProtocol.java      2010-07-15 10:28:21.903105589 -0400
+++++ openjdk/jdk/src/solaris/classes/sun/awt/X11/XDnDDropTargetProtocol.java   2010-07-15 10:28:42.645236553 -0400
++@@ -88,7 +88,7 @@
++         try {
++             Native.putLong(data, 0, XDnDConstants.XDND_PROTOCOL_VERSION);
++ 
++-            XToolkit.WITH_XERROR_HANDLER(XWM.VerifyChangePropertyHandler);
+++            XToolkit.WITH_XERROR_HANDLER(XErrorHandler.VerifyChangePropertyHandler.getInstance());
++             XDnDConstants.XA_XdndAware.setAtomData(window, XAtom.XA_ATOM, data, 1);
++             XToolkit.RESTORE_XERROR_HANDLER();
++ 
++@@ -122,7 +122,7 @@
++                                      false, XlibWrapper.AnyPropertyType);
++ 
++         try {
++-            status = wpg1.execute(XToolkit.IgnoreBadWindowHandler);
+++            status = wpg1.execute(XErrorHandler.IgnoreBadWindowHandler.getInstance());
++ 
++             if (status == XlibWrapper.Success &&
++                 wpg1.getData() != 0 && wpg1.getActualType() == XAtom.XA_ATOM) {
++@@ -141,7 +141,7 @@
++                                          0, 1, false, XAtom.XA_WINDOW);
++ 
++             try {
++-                status = wpg2.execute(XToolkit.IgnoreBadWindowHandler);
+++                status = wpg2.execute(XErrorHandler.IgnoreBadWindowHandler.getInstance());
++ 
++                 if (status == XlibWrapper.Success &&
++                     wpg2.getData() != 0 &&
++@@ -159,7 +159,7 @@
++                                              0, 1, false, XAtom.XA_WINDOW);
++ 
++                 try {
++-                    status = wpg3.execute(XToolkit.IgnoreBadWindowHandler);
+++                    status = wpg3.execute(XErrorHandler.IgnoreBadWindowHandler.getInstance());
++ 
++                     if (status != XlibWrapper.Success ||
++                         wpg3.getData() == 0 ||
++@@ -175,7 +175,7 @@
++                                                      XlibWrapper.AnyPropertyType);
++ 
++                         try {
++-                            status = wpg4.execute(XToolkit.IgnoreBadWindowHandler);
+++                            status = wpg4.execute(XErrorHandler.IgnoreBadWindowHandler.getInstance());
++ 
++                             if (status != XlibWrapper.Success ||
++                                 wpg4.getData() == 0 ||
++@@ -205,7 +205,7 @@
++ 
++             /* The proxy window must have the XdndAware set, as XDnD protocol
++                prescribes to check the proxy window for XdndAware. */
++-            XToolkit.WITH_XERROR_HANDLER(XWM.VerifyChangePropertyHandler);
+++            XToolkit.WITH_XERROR_HANDLER(XErrorHandler.VerifyChangePropertyHandler.getInstance());
++             XDnDConstants.XA_XdndAware.setAtomData(newProxy, XAtom.XA_ATOM,
++                                                    data, 1);
++             XToolkit.RESTORE_XERROR_HANDLER();
++@@ -219,7 +219,7 @@
++             Native.putLong(data, 0, newProxy);
++ 
++             /* The proxy window must have the XdndProxy set to point to itself.*/
++-            XToolkit.WITH_XERROR_HANDLER(XWM.VerifyChangePropertyHandler);
+++            XToolkit.WITH_XERROR_HANDLER(XErrorHandler.VerifyChangePropertyHandler.getInstance());
++             XDnDConstants.XA_XdndProxy.setAtomData(newProxy, XAtom.XA_WINDOW,
++                                                    data, 1);
++             XToolkit.RESTORE_XERROR_HANDLER();
++@@ -232,7 +232,7 @@
++ 
++             Native.putLong(data, 0, XDnDConstants.XDND_PROTOCOL_VERSION);
++ 
++-            XToolkit.WITH_XERROR_HANDLER(XWM.VerifyChangePropertyHandler);
+++            XToolkit.WITH_XERROR_HANDLER(XErrorHandler.VerifyChangePropertyHandler.getInstance());
++             XDnDConstants.XA_XdndAware.setAtomData(embedder, XAtom.XA_ATOM,
++                                                    data, 1);
++             XToolkit.RESTORE_XERROR_HANDLER();
++@@ -245,7 +245,7 @@
++ 
++             Native.putLong(data, 0, newProxy);
++ 
++-            XToolkit.WITH_XERROR_HANDLER(XWM.VerifyChangePropertyHandler);
+++            XToolkit.WITH_XERROR_HANDLER(XErrorHandler.VerifyChangePropertyHandler.getInstance());
++             XDnDConstants.XA_XdndProxy.setAtomData(embedder, XAtom.XA_WINDOW,
++                                                    data, 1);
++             XToolkit.RESTORE_XERROR_HANDLER();
++@@ -278,7 +278,7 @@
++             try {
++                 Native.putLong(data, 0, entry.getVersion());
++ 
++-                XToolkit.WITH_XERROR_HANDLER(XWM.VerifyChangePropertyHandler);
+++                XToolkit.WITH_XERROR_HANDLER(XErrorHandler.VerifyChangePropertyHandler.getInstance());
++                 XDnDConstants.XA_XdndAware.setAtomData(embedder, XAtom.XA_ATOM,
++                                                        data, 1);
++                 XToolkit.RESTORE_XERROR_HANDLER();
++@@ -291,7 +291,7 @@
++ 
++                 Native.putLong(data, 0, (int)entry.getProxy());
++ 
++-                XToolkit.WITH_XERROR_HANDLER(XWM.VerifyChangePropertyHandler);
+++                XToolkit.WITH_XERROR_HANDLER(XErrorHandler.VerifyChangePropertyHandler.getInstance());
++                 XDnDConstants.XA_XdndProxy.setAtomData(embedder, XAtom.XA_WINDOW,
++                                                        data, 1);
++                 XToolkit.RESTORE_XERROR_HANDLER();
++@@ -329,7 +329,7 @@
++                                      false, XlibWrapper.AnyPropertyType);
++ 
++         try {
++-            status = wpg1.execute(XToolkit.IgnoreBadWindowHandler);
+++            status = wpg1.execute(XErrorHandler.IgnoreBadWindowHandler.getInstance());
++ 
++             if (status == XlibWrapper.Success &&
++                 wpg1.getData() != 0 && wpg1.getActualType() == XAtom.XA_ATOM) {
++@@ -348,7 +348,7 @@
++                                          0, 1, false, XAtom.XA_WINDOW);
++ 
++             try {
++-                status = wpg2.execute(XToolkit.IgnoreBadWindowHandler);
+++                status = wpg2.execute(XErrorHandler.IgnoreBadWindowHandler.getInstance());
++ 
++                 if (status == XlibWrapper.Success &&
++                     wpg2.getData() != 0 &&
++@@ -366,7 +366,7 @@
++                                              0, 1, false, XAtom.XA_WINDOW);
++ 
++                 try {
++-                    status = wpg3.execute(XToolkit.IgnoreBadWindowHandler);
+++                    status = wpg3.execute(XErrorHandler.IgnoreBadWindowHandler.getInstance());
++ 
++                     if (status != XlibWrapper.Success ||
++                         wpg3.getData() == 0 ||
++@@ -382,7 +382,7 @@
++                                                      XlibWrapper.AnyPropertyType);
++ 
++                         try {
++-                            status = wpg4.execute(XToolkit.IgnoreBadWindowHandler);
+++                            status = wpg4.execute(XErrorHandler.IgnoreBadWindowHandler.getInstance());
++ 
++                             if (status != XlibWrapper.Success ||
++                                 wpg4.getData() == 0 ||
++@@ -411,7 +411,7 @@
++                                      false, XlibWrapper.AnyPropertyType);
++ 
++         try {
++-            int status = wpg1.execute(XToolkit.IgnoreBadWindowHandler);
+++            int status = wpg1.execute(XErrorHandler.IgnoreBadWindowHandler.getInstance());
++ 
++             if (status == XlibWrapper.Success &&
++                 wpg1.getData() != 0 && wpg1.getActualType() == XAtom.XA_ATOM) {
++@@ -473,7 +473,7 @@
++                                          0, 0xFFFF, false,
++                                          XAtom.XA_ATOM);
++             try {
++-                wpg.execute(XToolkit.IgnoreBadWindowHandler);
+++                wpg.execute(XErrorHandler.IgnoreBadWindowHandler.getInstance());
++ 
++                 if (wpg.getActualType() == XAtom.XA_ATOM &&
++                     wpg.getActualFormat() == 32) {
++@@ -505,7 +505,7 @@
++                                          0, 0xFFFF, false,
++                                          XAtom.XA_ATOM);
++             try {
++-                wpg.execute(XToolkit.IgnoreBadWindowHandler);
+++                wpg.execute(XErrorHandler.IgnoreBadWindowHandler.getInstance());
++ 
++                 if (wpg.getActualType() == XAtom.XA_ATOM &&
++                     wpg.getActualFormat() == 32) {
++@@ -541,7 +541,7 @@
++          */
++         XWindowAttributes wattr = new XWindowAttributes();
++         try {
++-            XToolkit.WITH_XERROR_HANDLER(XToolkit.IgnoreBadWindowHandler);
+++            XToolkit.WITH_XERROR_HANDLER(XErrorHandler.IgnoreBadWindowHandler.getInstance());
++             int status = XlibWrapper.XGetWindowAttributes(XToolkit.getDisplay(),
++                                                           source_win, wattr.pData);
++ 
++@@ -558,7 +558,7 @@
++             wattr.dispose();
++         }
++ 
++-        XToolkit.WITH_XERROR_HANDLER(XToolkit.IgnoreBadWindowHandler);
+++        XToolkit.WITH_XERROR_HANDLER(XErrorHandler.IgnoreBadWindowHandler.getInstance());
++         XlibWrapper.XSelectInput(XToolkit.getDisplay(), source_win,
++                                  source_win_mask |
++                                  XlibWrapper.StructureNotifyMask);
++@@ -963,7 +963,7 @@
++         if (sourceWindow != 0) {
++             XToolkit.awtLock();
++             try {
++-                XToolkit.WITH_XERROR_HANDLER(XToolkit.IgnoreBadWindowHandler);
+++                XToolkit.WITH_XERROR_HANDLER(XErrorHandler.IgnoreBadWindowHandler.getInstance());
++                 XlibWrapper.XSelectInput(XToolkit.getDisplay(), sourceWindow,
++                                          sourceWindowMask);
++                 XToolkit.RESTORE_XERROR_HANDLER();
++@@ -1104,14 +1104,14 @@
++                                                  0, 0xFFFF, false,
++                                                  XAtom.XA_ATOM);
++                     try {
++-                        wpg.execute(XToolkit.IgnoreBadWindowHandler);
+++                        wpg.execute(XErrorHandler.IgnoreBadWindowHandler.getInstance());
++ 
++                         if (wpg.getActualType() == XAtom.XA_ATOM &&
++                             wpg.getActualFormat() == 32) {
++ 
++                             XToolkit.awtLock();
++                             try {
++-                                XToolkit.WITH_XERROR_HANDLER(XWM.VerifyChangePropertyHandler);
+++                                XToolkit.WITH_XERROR_HANDLER(XErrorHandler.VerifyChangePropertyHandler.getInstance());
++                                 XDnDConstants.XA_XdndTypeList.setAtomData(xclient.get_window(),
++                                                                           XAtom.XA_ATOM,
++                                                                           wpg.getData(),
++diff -uNr openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XDragSourceProtocol.java openjdk/jdk/src/solaris/classes/sun/awt/X11/XDragSourceProtocol.java
++--- openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XDragSourceProtocol.java 2010-07-15 10:28:21.896105637 -0400
+++++ openjdk/jdk/src/solaris/classes/sun/awt/X11/XDragSourceProtocol.java      2010-07-15 10:28:42.646232066 -0400
++@@ -181,7 +181,7 @@
++                                    long time) {
++         XWindowAttributes wattr = new XWindowAttributes();
++         try {
++-            XToolkit.WITH_XERROR_HANDLER(XToolkit.IgnoreBadWindowHandler);
+++            XToolkit.WITH_XERROR_HANDLER(XErrorHandler.IgnoreBadWindowHandler.getInstance());
++             int status = XlibWrapper.XGetWindowAttributes(XToolkit.getDisplay(),
++                                                           targetWindow, wattr.pData);
++ 
++@@ -198,7 +198,7 @@
++             wattr.dispose();
++         }
++ 
++-        XToolkit.WITH_XERROR_HANDLER(XToolkit.IgnoreBadWindowHandler);
+++        XToolkit.WITH_XERROR_HANDLER(XErrorHandler.IgnoreBadWindowHandler.getInstance());
++         XlibWrapper.XSelectInput(XToolkit.getDisplay(), targetWindow,
++                                  targetWindowMask |
++                                  XlibWrapper.StructureNotifyMask);
++@@ -214,7 +214,7 @@
++     }
++ 
++     protected final void finalizeDrop() {
++-        XToolkit.WITH_XERROR_HANDLER(XToolkit.IgnoreBadWindowHandler);
+++        XToolkit.WITH_XERROR_HANDLER(XErrorHandler.IgnoreBadWindowHandler.getInstance());
++         XlibWrapper.XSelectInput(XToolkit.getDisplay(), targetWindow,
++                                  targetWindowMask);
++         XToolkit.RESTORE_XERROR_HANDLER();
++diff -uNr openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XDropTargetRegistry.java openjdk/jdk/src/solaris/classes/sun/awt/X11/XDropTargetRegistry.java
++--- openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XDropTargetRegistry.java 2010-07-15 10:28:21.906105640 -0400
+++++ openjdk/jdk/src/solaris/classes/sun/awt/X11/XDropTargetRegistry.java      2010-07-15 10:28:42.648232198 -0400
++@@ -172,7 +172,7 @@
++                 if (dest_x >= 0 && dest_y >= 0) {
++                     XWindowAttributes wattr = new XWindowAttributes();
++                     try {
++-                        XToolkit.WITH_XERROR_HANDLER(XToolkit.IgnoreBadWindowHandler);
+++                        XToolkit.WITH_XERROR_HANDLER(XErrorHandler.IgnoreBadWindowHandler.getInstance());
++                         int status = XlibWrapper.XGetWindowAttributes(XToolkit.getDisplay(),
++                                                                       window, wattr.pData);
++                         XToolkit.RESTORE_XERROR_HANDLER();
++@@ -226,7 +226,7 @@
++             long event_mask = 0;
++             XWindowAttributes wattr = new XWindowAttributes();
++             try {
++-                XToolkit.WITH_XERROR_HANDLER(XToolkit.IgnoreBadWindowHandler);
+++                XToolkit.WITH_XERROR_HANDLER(XErrorHandler.IgnoreBadWindowHandler.getInstance());
++                 int status = XlibWrapper.XGetWindowAttributes(XToolkit.getDisplay(),
++                                                               embedder, wattr.pData);
++                 XToolkit.RESTORE_XERROR_HANDLER();
++@@ -244,7 +244,7 @@
++             }
++ 
++             if ((event_mask & XlibWrapper.PropertyChangeMask) == 0) {
++-                XToolkit.WITH_XERROR_HANDLER(XToolkit.IgnoreBadWindowHandler);
+++                XToolkit.WITH_XERROR_HANDLER(XErrorHandler.IgnoreBadWindowHandler.getInstance());
++                 XlibWrapper.XSelectInput(XToolkit.getDisplay(), embedder,
++                                          event_mask | XlibWrapper.PropertyChangeMask);
++                 XToolkit.RESTORE_XERROR_HANDLER();
++@@ -398,7 +398,7 @@
++ 
++             /* Restore the original event mask for the embedder. */
++             if ((event_mask & XlibWrapper.PropertyChangeMask) == 0) {
++-                XToolkit.WITH_XERROR_HANDLER(XToolkit.IgnoreBadWindowHandler);
+++                XToolkit.WITH_XERROR_HANDLER(XErrorHandler.IgnoreBadWindowHandler.getInstance());
++                 XlibWrapper.XSelectInput(XToolkit.getDisplay(), embedder,
++                                          event_mask);
++                 XToolkit.RESTORE_XERROR_HANDLER();
++diff -uNr 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    2010-07-15 10:28:21.897105547 -0400
+++++ openjdk/jdk/src/solaris/classes/sun/awt/X11/XEmbedCanvasPeer.java 2010-07-15 10:28:42.650232331 -0400
++@@ -301,7 +301,7 @@
++         try {
++             XWindowAttributes wattr = new XWindowAttributes();
++             try {
++-                XToolkit.WITH_XERROR_HANDLER(XToolkit.IgnoreBadWindowHandler);
+++                XToolkit.WITH_XERROR_HANDLER(XErrorHandler.IgnoreBadWindowHandler.getInstance());
++                 int status = XlibWrapper.XGetWindowAttributes(XToolkit.getDisplay(),
++                                                               xembed.handle, wattr.pData);
++ 
++diff -uNr openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XErrorHandler.java openjdk/jdk/src/solaris/classes/sun/awt/X11/XErrorHandler.java
++--- openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XErrorHandler.java       1969-12-31 19:00:00.000000000 -0500
+++++ openjdk/jdk/src/solaris/classes/sun/awt/X11/XErrorHandler.java    2010-07-15 10:28:42.651989313 -0400
++@@ -0,0 +1,79 @@
+++/*
+++ * Copyright 2009 Sun Microsystems, Inc.  All Rights Reserved.
+++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+++ *
+++ * This code is free software; you can redistribute it and/or modify it
+++ * under the terms of the GNU General Public License version 2 only, as
+++ * published by the Free Software Foundation.  Sun designates this
+++ * particular file as subject to the "Classpath" exception as provided
+++ * by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+++ * CA 95054 USA or visit www.sun.com if you need additional information or
+++ * have any questions.
+++ */
+++package sun.awt.X11;
+++
+++public abstract class XErrorHandler {
+++
+++    /*
+++     * Called under AWT lock
+++     */
+++    public abstract int handleError(long display, XErrorEvent err);
+++
+++    /*
+++     * Forwards all the errors to saved error handler (which was
+++     * set before XToolkit had been initialized).
+++     */
+++    public static class XBaseErrorHandler extends XErrorHandler {
+++        @Override
+++        public int handleError(long display, XErrorEvent err) {
+++            return XToolkit.SAVED_ERROR_HANDLER(display, err);
+++        }
+++    }
+++
+++    /*
+++     * Instead of validating window id, we simply call XGetWindowProperty,
+++     * but temporary install this function as the error handler to ignore
+++     * BadWindow error.
+++     */
+++    public static class IgnoreBadWindowHandler extends XBaseErrorHandler {
+++        @Override
+++        public int handleError(long display, XErrorEvent err) {
+++            if (err.get_error_code() == XConstants.BadWindow) {
+++                return 0;
+++            }
+++            return super.handleError(display, err);
+++        }
+++        // Shared instance
+++        private static IgnoreBadWindowHandler theInstance = new IgnoreBadWindowHandler();
+++        public static IgnoreBadWindowHandler getInstance() {
+++            return theInstance;
+++        }
+++    }
+++
+++    public static class VerifyChangePropertyHandler extends XBaseErrorHandler {
+++        @Override
+++        public int handleError(long display, XErrorEvent err) {
+++            if (err.get_request_code() == XProtocolConstants.X_ChangeProperty) {
+++                return 0;
+++            }
+++            return super.handleError(display, err);
+++        }
+++        // Shared instance
+++        private static IgnoreBadWindowHandler theInstance = new IgnoreBadWindowHandler();
+++        public static IgnoreBadWindowHandler getInstance() {
+++            return theInstance;
+++        }
+++    }
+++}
++diff -uNr openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XlibUtil.java openjdk/jdk/src/solaris/classes/sun/awt/X11/XlibUtil.java
++--- openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XlibUtil.java    2010-07-15 10:28:21.893105473 -0400
+++++ openjdk/jdk/src/solaris/classes/sun/awt/X11/XlibUtil.java 2010-07-15 10:28:42.651989313 -0400
++@@ -149,7 +149,7 @@
++                 new XTranslateCoordinates(src, dst, p.x, p.y);
++             try
++             {
++-                int status = xtc.execute(XToolkit.IgnoreBadWindowHandler);
+++                int status = xtc.execute(XErrorHandler.IgnoreBadWindowHandler.getInstance());
++                 if ((status != 0) &&
++                     ((XToolkit.saved_error == null) ||
++                      (XToolkit.saved_error.get_error_code() == XlibWrapper.Success)))
++@@ -306,7 +306,7 @@
++                                          XWM.XA_WM_STATE);
++             try
++             {
++-                wpg.execute(XToolkit.IgnoreBadWindowHandler);
+++                wpg.execute(XErrorHandler.IgnoreBadWindowHandler.getInstance());
++                 if (wpg.getActualType() == XWM.XA_WM_STATE.getAtom())
++                 {
++                     return true;
++@@ -345,7 +345,7 @@
++         XWindowAttributes wattr = new XWindowAttributes();
++         try
++         {
++-            XToolkit.WITH_XERROR_HANDLER(XToolkit.IgnoreBadWindowHandler);
+++            XToolkit.WITH_XERROR_HANDLER(XErrorHandler.IgnoreBadWindowHandler.getInstance());
++             int status = XlibWrapper.XGetWindowAttributes(XToolkit.getDisplay(),
++                                                           window, wattr.pData);
++             XToolkit.RESTORE_XERROR_HANDLER();
++diff -uNr 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 2010-07-15 10:28:21.905105617 -0400
+++++ openjdk/jdk/src/solaris/classes/sun/awt/X11/XlibWrapper.java      2010-07-15 10:28:42.654187919 -0400
++@@ -613,4 +613,6 @@
++         String javaVersion = XToolkit.getSystemProperty("java.version");
++         return javaVersion != null && javaVersion.contains("internal");
++     }
+++
+++    static native void PrintXErrorEvent(long display, long event_ptr);
++ }
++diff -uNr openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XProtocol.java openjdk/jdk/src/solaris/classes/sun/awt/X11/XProtocol.java
++--- openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XProtocol.java   2010-07-15 10:28:21.893105473 -0400
+++++ openjdk/jdk/src/solaris/classes/sun/awt/X11/XProtocol.java        2010-07-15 10:28:42.655357930 -0400
++@@ -35,20 +35,6 @@
++     private Map<XAtom, XAtomList> atomToList = new HashMap<XAtom, XAtomList>();
++     private Map<XAtom, Long> atomToAnchor = new HashMap<XAtom, Long>();
++ 
++-    /*
++-     * Temporary error handler that ensures that we know if
++-     * XChangeProperty succeeded or not.
++-     */
++-    static XToolkit.XErrorHandler VerifyChangePropertyHandler = new XToolkit.XErrorHandler() {
++-            public int handleError(long display, XErrorEvent err) {
++-                XToolkit.XERROR_SAVE(err);
++-                if (err.get_request_code() == XlibWrapper.X_ChangeProperty) {
++-                    return 0;
++-                } else {
++-                    return XToolkit.SAVED_ERROR_HANDLER(display, err);
++-                }
++-            }
++-        };
++     volatile boolean firstCheck = true;
++     /*
++      * Check that that the list of protocols specified by WM in property
++diff -uNr openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XQueryTree.java openjdk/jdk/src/solaris/classes/sun/awt/X11/XQueryTree.java
++--- openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XQueryTree.java  2010-07-15 10:28:21.894105746 -0400
+++++ openjdk/jdk/src/solaris/classes/sun/awt/X11/XQueryTree.java       2010-07-15 10:28:42.662356819 -0400
++@@ -51,7 +51,7 @@
++         public int execute() {
++                 return execute(null);
++         }
++-        public int execute(XToolkit.XErrorHandler errorHandler) {
+++        public int execute(XErrorHandler errorHandler) {
++                 XToolkit.awtLock();
++                 try {
++                     if (isDisposed()) {
++diff -uNr 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    2010-07-15 10:28:21.896105637 -0400
+++++ openjdk/jdk/src/solaris/classes/sun/awt/X11/XToolkit.java 2010-07-15 10:30:45.039232001 -0400
++@@ -48,6 +48,7 @@
++ import sun.font.FontManager;
++ import sun.misc.PerformanceLogger;
++ import sun.print.PrintJob2D;
+++import sun.security.action.GetBooleanAction;
++ import java.lang.reflect.*;
++ 
++ public class XToolkit extends UNIXToolkit implements Runnable, XConstants {
++@@ -120,62 +121,78 @@
++             setBackingStoreType();
++         }
++         m_removeSourceEvents = SunToolkit.getMethod(EventQueue.class, "removeSourceEvents", new Class[] {Object.class, Boolean.TYPE}) ;
+++        noisyAwtHandler = AccessController.doPrivileged(new GetBooleanAction("sun.awt.noisyerrorhandler"));
+++
++     }
++ 
++-    // Error handler stuff
++-    static XErrorEvent saved_error;
++-    static long saved_error_handler;
++-    static XErrorHandler curErrorHandler;
++-    // Should be called under LOCK, before releasing LOCK RESTORE_XERROR_HANDLER should be called
++-    static void WITH_XERROR_HANDLER(XErrorHandler handler) {
+++    //---- ERROR HANDLER CODE ----//
+++
+++    /*
+++     * Error handler at the moment of XToolkit initialization
+++     */
+++    private static long saved_error_handler;
+++
+++    /*
+++     * XErrorEvent being handled
+++     */
+++    static volatile XErrorEvent saved_error;
+++
+++    /*
+++     * Current error handler or null if no error handler is set
+++     */
+++    private static XErrorHandler current_error_handler;
+++
+++    /*
+++     * Value of sun.awt.noisyerrorhandler system property
+++     */
+++    private static boolean noisyAwtHandler;
+++
+++    public static void WITH_XERROR_HANDLER(XErrorHandler handler) {
++         saved_error = null;
++-        curErrorHandler = handler;
++-        XSync();
++-        saved_error_handler = XlibWrapper.SetToolkitErrorHandler();
++-    }
++-    static void XERROR_SAVE(XErrorEvent event) {
++-        saved_error = event;
+++        current_error_handler = handler;
++     }
++-    // Should be called under LOCK
++-    static void RESTORE_XERROR_HANDLER() {
++-       XSync();
++-        XlibWrapper.XSetErrorHandler(saved_error_handler);
++-        curErrorHandler = null;
+++
+++    public static void RESTORE_XERROR_HANDLER() {
+++        current_error_handler = null;
++     }
+++
++     // Should be called under LOCK
++-    static int SAVED_ERROR_HANDLER(long display, XErrorEvent error) {
++-        return XlibWrapper.CallErrorHandler(saved_error_handler, display, error.pData);
++-    }
++-    interface XErrorHandler {
++-        int handleError(long display, XErrorEvent err);
+++    public static int SAVED_ERROR_HANDLER(long display, XErrorEvent error) {
+++        if (saved_error_handler != 0) {
+++            // Default XErrorHandler may just terminate the process. Don't call it.
+++            // return XlibWrapper.CallErrorHandler(saved_error_handler, display, error.pData);
+++        }
+++        if (log.isLoggable(Level.FINE)) {
+++            log.log(Level.FINE, "Unhandled XErrorEvent: " +
+++                    "id=" + error.get_resourceid() + ", " +
+++                    "serial=" + error.get_serial() + ", " +
+++                    "ec=" + error.get_error_code() + ", " +
+++                    "rc=" + error.get_request_code() + ", " +
+++                    "mc=" + error.get_minor_code());
+++        }
+++        return 0;
++     }
++-    static int GlobalErrorHandler(long display, long event_ptr) {
+++
+++    // Called from the native code when an error occurs
+++    private static int globalErrorHandler(long display, long event_ptr) {
+++        if (noisyAwtHandler) {
+++            XlibWrapper.PrintXErrorEvent(display, event_ptr);
+++        }
++         XErrorEvent event = new XErrorEvent(event_ptr);
+++        saved_error = event;
++         try {
++-            if (curErrorHandler != null) {
++-                return curErrorHandler.handleError(display, event);
+++            if (current_error_handler != null) {
+++                return current_error_handler.handleError(display, event);
++             } else {
++                 return SAVED_ERROR_HANDLER(display, event);
++             }
++-        } finally {
+++        } catch (Throwable z) {
+++            log.log(Level.FINE, "Error in GlobalErrorHandler", z);
++         }
+++        return 0;
++     }
++ 
++-/*
++- * Instead of validating window id, we simply call XGetWindowProperty,
++- * but temporary install this function as the error handler to ignore
++- * BadWindow error.
++- */
++-    static XErrorHandler IgnoreBadWindowHandler = new XErrorHandler() {
++-            public int handleError(long display, XErrorEvent err) {
++-                XERROR_SAVE(err);
++-                if (err.get_error_code() == BadWindow) {
++-                    return 0;
++-                } else {
++-                    return SAVED_ERROR_HANDLER(display, err);
++-                }
++-            }
++-        };
+++    //---- END OF ERROR HANDLER CODE ----//
++ 
++ 
++     private native static void initIDs();
++@@ -269,17 +286,27 @@
++ 
++             arrowCursor = XlibWrapper.XCreateFontCursor(XToolkit.getDisplay(),
++                 XCursorFontConstants.XC_arrow);
+++
+++            saved_error_handler = XlibWrapper.SetToolkitErrorHandler();
+++
++         } finally {
++             awtUnlock();
++         }
++ 
++-        if (log.isLoggable(Level.FINE)) {
++-            Runtime.getRuntime().addShutdownHook(new Thread() {
++-                    public void run() {
+++        Runtime.getRuntime().addShutdownHook(new Thread() {
+++            public void run() {
+++                if (log.isLoggable(Level.FINE)) {
++                         dumpPeers();
++-                    }
++-                });
++-        }
+++                }
+++
+++                awtLock();
+++                try {
+++                        XlibWrapper.XSetErrorHandler(saved_error_handler);
+++                } finally {
+++                        awtUnlock();
+++                }
+++            }
+++        });
++     }
++ 
++     static String getCorrectXIDString(String val) {
++@@ -2162,5 +2189,4 @@
++         return new XDesktopPeer();
++     }
++ 
++-    public static native void setNoisyXErrorHandler();
++ }
++diff -uNr openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XTranslateCoordinates.java openjdk/jdk/src/solaris/classes/sun/awt/X11/XTranslateCoordinates.java
++--- openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XTranslateCoordinates.java       2010-07-15 10:28:21.900105578 -0400
+++++ openjdk/jdk/src/solaris/classes/sun/awt/X11/XTranslateCoordinates.java    2010-07-15 10:28:42.666356882 -0400
++@@ -57,7 +57,7 @@
++         public int execute() {
++                 return execute(null);
++         }
++-        public int execute(XToolkit.XErrorHandler errorHandler) {
+++        public int execute(XErrorHandler errorHandler) {
++                 XToolkit.awtLock();
++                 try {
++                 if (isDisposed()) {
++diff -uNr 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 2010-07-15 10:28:21.896105637 -0400
+++++ openjdk/jdk/src/solaris/classes/sun/awt/X11/XWM.java      2010-07-15 10:28:42.668356704 -0400
++@@ -273,7 +273,7 @@
++             winmgr_running = false;
++             substruct.set_event_mask(XlibWrapper.SubstructureRedirectMask);
++ 
++-            XToolkit.WITH_XERROR_HANDLER(DetectWMHandler);
+++            XToolkit.WITH_XERROR_HANDLER(detectWMHandler);
++             XlibWrapper.XChangeWindowAttributes(XToolkit.getDisplay(),
++                                                 XToolkit.getDefaultRootWindow(),
++                                                 XlibWrapper.CWEventMask,
++@@ -318,7 +318,7 @@
++             new WindowPropertyGetter(window, XA_ENLIGHTENMENT_COMMS, 0, 14, false,
++                                      XAtom.XA_STRING);
++         try {
++-            int status = getter.execute(XToolkit.IgnoreBadWindowHandler);
+++            int status = getter.execute(XErrorHandler.IgnoreBadWindowHandler.getInstance());
++             if (status != XlibWrapper.Success || getter.getData() == 0) {
++                 return 0;
++             }
++@@ -442,7 +442,7 @@
++                 new WindowPropertyGetter(wmwin, XA_DT_SM_STATE_INFO, 0, 1,
++                                          false, XA_DT_SM_STATE_INFO);
++             try {
++-                status = getter2.execute(XToolkit.IgnoreBadWindowHandler);
+++                status = getter2.execute(XErrorHandler.IgnoreBadWindowHandler.getInstance());
++ 
++ 
++                 if (status != XlibWrapper.Success || getter2.getData() == 0) {
++@@ -574,21 +574,6 @@
++     }
++ 
++     /*
++-     * Temporary error handler that ensures that we know if
++-     * XChangeProperty succeeded or not.
++-     */
++-    static XToolkit.XErrorHandler VerifyChangePropertyHandler = new XToolkit.XErrorHandler() {
++-            public int handleError(long display, XErrorEvent err) {
++-                XToolkit.XERROR_SAVE(err);
++-                if (err.get_request_code() == XlibWrapper.X_ChangeProperty) {
++-                    return 0;
++-                } else {
++-                    return XToolkit.SAVED_ERROR_HANDLER(display, err);
++-                }
++-            }
++-        };
++-
++-    /*
++      * Prepare IceWM check.
++      *
++      * The only way to detect IceWM, seems to be by setting
++@@ -623,7 +608,7 @@
++ 
++         XToolkit.awtLock();
++         try {
++-            XToolkit.WITH_XERROR_HANDLER(VerifyChangePropertyHandler);
+++            XToolkit.WITH_XERROR_HANDLER(XErrorHandler.VerifyChangePropertyHandler.getInstance());
++             XlibWrapper.XChangePropertyS(XToolkit.getDisplay(), XToolkit.getDefaultRootWindow(),
++                                          XA_ICEWM_WINOPTHINT.getAtom(),
++                                          XA_ICEWM_WINOPTHINT.getAtom(),
++@@ -691,20 +676,19 @@
++      * Temporary error handler that checks if selecting for
++      * SubstructureRedirect failed.
++      */
++-    static boolean winmgr_running = false;
++-    static XToolkit.XErrorHandler DetectWMHandler = new XToolkit.XErrorHandler() {
++-            public int handleError(long display, XErrorEvent err) {
++-                XToolkit.XERROR_SAVE(err);
++-                if (err.get_request_code() == XlibWrapper.X_ChangeWindowAttributes
++-                    && err.get_error_code() == XlibWrapper.BadAccess)
++-                {
++-                    winmgr_running = true;
++-                    return 0;
++-                } else {
++-                    return XToolkit.SAVED_ERROR_HANDLER(display, err);
++-                }
+++    private static boolean winmgr_running = false;
+++    private static XErrorHandler detectWMHandler = new XErrorHandler.XBaseErrorHandler() {
+++        @Override
+++        public int handleError(long display, XErrorEvent err) {
+++            if ((err.get_request_code() == XProtocolConstants.X_ChangeWindowAttributes) &&
+++                (err.get_error_code() == XConstants.BadAccess))
+++            {
+++                winmgr_running = true;
+++                return 0;
++             }
++-        };
+++            return super.handleError(display, err);
+++        }
+++    };
++ 
++     /*
++      * Make an educated guess about running window manager.
++diff -uNr 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     2010-07-15 10:28:21.866105645 -0400
+++++ openjdk/jdk/src/solaris/native/sun/awt/awt_GraphicsEnv.c  2010-07-15 10:28:42.670355820 -0400
++@@ -175,42 +175,11 @@
++ }
++ 
++ #ifndef HEADLESS
+++
++ /*
++- * error handlers
+++ * XIOErrorHandler
++  */
++-
++-int
++-xerror_handler(Display * disp, XErrorEvent * err)
++-{
++-/* #ifdef DEBUG */
++-    char msg[128];
++-    char buf[128];
++-    char *ev = getenv("NOISY_AWT");
++-
++-    if (!ev || !ev[0])
++-        return 0;
++-    XGetErrorText(disp, err->error_code, msg, sizeof(msg));
++-    jio_fprintf(stderr, "Xerror %s, XID %x, ser# %d\n", msg, err->resourceid, err->serial);
++-    jio_snprintf(buf, sizeof(buf), "%d", err->request_code);
++-    XGetErrorDatabaseText(disp, "XRequest", buf, "Unknown", msg, sizeof(msg));
++-    jio_fprintf(stderr, "Major opcode %d (%s)\n", err->request_code, msg);
++-    if (err->request_code > 128) {
++-        jio_fprintf(stderr, "Minor opcode %d\n", err->minor_code);
++-    }
++-    if (awtLockInited) {
++-        /*SignalError(lockedee->lastpc, lockedee, "fp/ade/gui/GUIException", msg); */
++-    }
++-    if (strcasecmp(ev, "abort") == 0) {
++-        JNIEnv *env = (JNIEnv *)JNU_GetEnv(jvm, JNI_VERSION_1_2);
++-
++-        (*env)->FatalError(env, "xerror_handler abort");
++-    }
++-/* #endif */
++-    return 0;
++-}
++-
++-static int
++-xioerror_handler(Display * disp)
+++static int xioerror_handler(Display *disp)
++ {
++     if (awtLockInited) {
++         if (errno == EPIPE) {
++@@ -806,7 +775,6 @@
++         return NULL;
++     }
++ 
++-    XSetErrorHandler(xerror_handler);
++     XSetIOErrorHandler(xioerror_handler);
++ 
++     /* set awt_numScreens, and whether or not we're using Xinerama */
++diff -uNr openjdk.orig/jdk/src/solaris/native/sun/awt/awt_InputMethod.c openjdk/jdk/src/solaris/native/sun/awt/awt_InputMethod.c
++--- openjdk.orig/jdk/src/solaris/native/sun/awt/awt_InputMethod.c     2010-07-15 10:28:21.865105640 -0400
+++++ openjdk/jdk/src/solaris/native/sun/awt/awt_InputMethod.c  2010-07-15 10:28:42.671355975 -0400
++@@ -1458,7 +1458,6 @@
++ }
++ 
++ static void OpenXIMCallback(Display *display, XPointer client_data, XPointer call_data) {
++-    extern int xerror_handler();
++     XIMCallback ximCallback;
++ 
++     X11im = XOpenIM(display, NULL, NULL, NULL);
++@@ -1469,13 +1468,6 @@
++     ximCallback.callback = (XIMProc)DestroyXIMCallback;
++     ximCallback.client_data = NULL;
++     XSetIMValues(X11im, XNDestroyCallback, &ximCallback, NULL);
++-
++-    /* Workaround for Solaris 2.6 bug 4097754. We're affected by this problem
++-     * because Motif also calls XOpenIM for us. Re-registering the error handler
++-     * that MToolkit has registered already after calling XOpenIM avoids the
++-     * problem.
++-     */
++-    XSetErrorHandler(xerror_handler);
++ }
++ 
++ static void DestroyXIMCallback(XIM im, XPointer client_data, XPointer call_data) {
++diff -uNr 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-07-15 10:28:21.867105700 -0400
+++++ openjdk/jdk/src/solaris/native/sun/awt/awt_MToolkit.c     2010-07-15 10:28:42.673355929 -0400
++@@ -1926,26 +1926,6 @@
++               XtAppProcessEvent(awt_appContext, iMask & ~XtIMXEvent);
++             }
++ 
++-            /*
++-            ** Bug #4361799: Forte4J sometimes crashes on Solaris:
++-            ** There is an underlying bug in Selection.c in Xt lib.
++-            ** The routine HandleSelectionEvents, can call EndProtectedSection()
++-            ** more than  StartProtectedSection(), and then EndProtectedSection
++-            ** will restore the default XError handler.  As a result awt's
++-            ** XError handler gets removed and we later crash on an XError.
++-            **
++-            ** This happens when we call XtAppProcessEvent with event type 1e
++-            ** (SelectionRequest) when running two copies of Forte
++-            **
++-            ** XSetErrorHandler can safely be called repeatedly, so we are
++-            ** fixing this with the sledgehammer, and resetting our XError
++-            ** handler every time through the loop:
++-            */
++-            {
++-                extern int32_t xerror_handler();
++-                XSetErrorHandler(xerror_handler);
++-            }
++-
++ } /* processOneEvent() */
++ 
++ /*
++diff -uNr 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        2010-07-15 10:28:21.882105738 -0400
+++++ openjdk/jdk/src/solaris/native/sun/xawt/XlibWrapper.c     2010-07-15 10:28:42.675169363 -0400
++@@ -1097,7 +1097,7 @@
++ static int ToolkitErrorHandler(Display * dpy, XErrorEvent * event) {
++     if (jvm != NULL) {
++         JNIEnv * env = (JNIEnv *)JNU_GetEnv(jvm, JNI_VERSION_1_2);
++-        return JNU_CallStaticMethodByName(env, NULL, "sun/awt/X11/XToolkit", "GlobalErrorHandler", "(JJ)I",
+++        return JNU_CallStaticMethodByName(env, NULL, "sun/awt/X11/XToolkit", "globalErrorHandler", "(JJ)I",
++                                           ptr_to_jlong(dpy), ptr_to_jlong(event)).i;
++     } else {
++         return 0;
++@@ -1140,6 +1140,28 @@
++     return (*(XErrorHandler)jlong_to_ptr(handler))((Display*) jlong_to_ptr(display), (XErrorEvent*) jlong_to_ptr(event_ptr));
++ }
++ 
+++/*
+++ * Class:     sun_awt_X11_XlibWrapper
+++ * Method:    PrintXErrorEvent
+++ * Signature: (JJ)V
+++ */
+++JNIEXPORT void JNICALL Java_sun_awt_X11_XlibWrapper_PrintXErrorEvent
+++(JNIEnv *env, jclass clazz, jlong display, jlong event_ptr)
+++{
+++    char msg[128];
+++    char buf[128];
+++
+++    XErrorEvent* err = (XErrorEvent *)jlong_to_ptr(event_ptr);
+++
+++    XGetErrorText((Display *)jlong_to_ptr(display), err->error_code, msg, sizeof(msg));
+++    jio_fprintf(stderr, "Xerror %s, XID %x, ser# %d\n", msg, err->resourceid, err->serial);
+++    jio_snprintf(buf, sizeof(buf), "%d", err->request_code);
+++    XGetErrorDatabaseText((Display *)jlong_to_ptr(display), "XRequest", buf, "Unknown", msg, sizeof(msg));
+++    jio_fprintf(stderr, "Major opcode %d (%s)\n", err->request_code, msg);
+++    if (err->request_code > 128) {
+++        jio_fprintf(stderr, "Minor opcode %d\n", err->minor_code);
+++    }
+++}
++ 
++ 
++ /*
++diff -uNr openjdk.orig/jdk/src/solaris/native/sun/xawt/XToolkit.c openjdk/jdk/src/solaris/native/sun/xawt/XToolkit.c
++--- openjdk.orig/jdk/src/solaris/native/sun/xawt/XToolkit.c   2010-07-15 10:28:21.883105599 -0400
+++++ openjdk/jdk/src/solaris/native/sun/xawt/XToolkit.c        2010-07-15 10:28:42.676355933 -0400
++@@ -581,7 +581,6 @@
++         pollFds[1].revents = 0;
++     }
++ 
++-
++     AWT_NOFLUSH_UNLOCK();
++ 
++     /* ACTUALLY DO THE POLL() */
++@@ -690,8 +689,6 @@
++     return ret;
++ }
++ 
++-static XErrorHandler saved_error_handler = NULL;
++-
++ #ifdef __linux__
++ void print_stack(void)
++ {
++@@ -712,38 +709,6 @@
++ }
++ #endif
++ 
++-static int NoisyXErrorHandler(Display * dpy, XErrorEvent * event) {
++-    fprintf(stderr, "id=%x, serial=%x, ec=%d, rc=%d, mc=%d\n",
++-            event->resourceid, event->serial, event->error_code,
++-            event->request_code, event->minor_code);
++-    /*
++-    #ifdef __linux__
++-        print_stack();
++-    #endif
++-    */
++-    if (jvm != NULL) {
++-      JNIEnv * env = (JNIEnv *)JNU_GetEnv(jvm, JNI_VERSION_1_2);
++-      JNU_CallStaticMethodByName(env, NULL, "java/lang/Thread", "dumpStack", "()V");
++-    }
++-    if (!saved_error_handler) {
++-        return saved_error_handler(dpy, event);
++-    }
++-    return 0;
++-}
++-
++-/*
++- * Class:     sun_awt_X11_XToolkit
++- * Method:    setNoisyXErrorHandler
++- * Signature: ()V
++- */
++-JNIEXPORT void JNICALL Java_sun_awt_X11_XToolkit_setNoisyXErrorHandler
++-(JNIEnv *env , jclass clazz)
++-{
++-    (*env)->GetJavaVM(env, &jvm);
++-    saved_error_handler = XSetErrorHandler(NoisyXErrorHandler);
++-}
++-
++-
++ Window get_xawt_root_shell(JNIEnv *env) {
++   static jclass classXRootWindow = NULL;
++   static jmethodID methodGetXRootWindow = NULL;
+diff -r d1ad52447673 patches/systemtap-gcc-4.5.patch
+--- /dev/null  Thu Jan 01 00:00:00 1970 +0000
++++ b/patches/systemtap-gcc-4.5.patch  Tue Jul 20 16:36:52 2010 +0200
 @@ -0,0 +1,11 @@
 +--- openjdk.orig/hotspot/src/share/vm/prims/jni.cpp   2010-04-28 08:51:29.000000000 +0100
 ++++ openjdk/hotspot/src/share/vm/prims/jni.cpp        2010-04-28 09:29:22.000000000 +0100
@@ -927,9 +2279,9 @@ diff -r a0120629678b patches/systemtap-gcc-4.5.patch
 +       return NULL;
 +     }
 +   }
-diff -r a0120629678b plugin/icedteanp/IcedTeaJavaRequestProcessor.cc
---- a/plugin/icedteanp/IcedTeaJavaRequestProcessor.cc  Wed Apr 14 12:21:03 2010 +0200
-+++ b/plugin/icedteanp/IcedTeaJavaRequestProcessor.cc  Fri Jul 16 14:30:37 2010 +0200
+diff -r d1ad52447673 plugin/icedteanp/IcedTeaJavaRequestProcessor.cc
+--- a/plugin/icedteanp/IcedTeaJavaRequestProcessor.cc  Wed Apr 14 12:21:30 2010 +0200
++++ b/plugin/icedteanp/IcedTeaJavaRequestProcessor.cc  Tue Jul 20 16:36:52 2010 +0200
 @@ -179,7 +179,7 @@
  
  JavaRequestProcessor::JavaRequestProcessor()
@@ -994,9 +2346,9 @@ diff -r a0120629678b plugin/icedteanp/IcedTeaJavaRequestProcessor.cc
  
                  std::string array_id = std::string();
                  std::string java_array_type = std::string();
-diff -r a0120629678b plugin/icedteanp/IcedTeaNPPlugin.cc
---- a/plugin/icedteanp/IcedTeaNPPlugin.cc      Wed Apr 14 12:21:03 2010 +0200
-+++ b/plugin/icedteanp/IcedTeaNPPlugin.cc      Fri Jul 16 14:30:37 2010 +0200
+diff -r d1ad52447673 plugin/icedteanp/IcedTeaNPPlugin.cc
+--- a/plugin/icedteanp/IcedTeaNPPlugin.cc      Wed Apr 14 12:21:30 2010 +0200
++++ b/plugin/icedteanp/IcedTeaNPPlugin.cc      Tue Jul 20 16:36:52 2010 +0200
 @@ -262,7 +262,7 @@
           int16_t argc, char* argn[], char* argv[],
           NPSavedData* saved)
@@ -1236,10 +2588,9 @@ diff -r a0120629678b plugin/icedteanp/IcedTeaNPPlugin.cc
                 NPBool seekable, uint16_t* stype)
  {
 -  PLUGIN_DEBUG_0ARG ("ITNP_NewStream\n");
--
--  PLUGIN_DEBUG_0ARG ("ITNP_NewStream return\n");
 +  PLUGIN_DEBUG ("ITNP_NewStream\n");
-+
+-  PLUGIN_DEBUG_0ARG ("ITNP_NewStream return\n");
 +  PLUGIN_DEBUG ("ITNP_NewStream return\n");
  
    return NPERR_NO_ERROR;
@@ -1249,10 +2600,9 @@ diff -r a0120629678b plugin/icedteanp/IcedTeaNPPlugin.cc
  ITNP_StreamAsFile (NPP instance, NPStream* stream, const char* filename)
  {
 -  PLUGIN_DEBUG_0ARG ("ITNP_StreamAsFile\n");
--
--  PLUGIN_DEBUG_0ARG ("ITNP_StreamAsFile return\n");
 +  PLUGIN_DEBUG ("ITNP_StreamAsFile\n");
-+
+-  PLUGIN_DEBUG_0ARG ("ITNP_StreamAsFile return\n");
 +  PLUGIN_DEBUG ("ITNP_StreamAsFile return\n");
  }
  
@@ -1260,10 +2610,9 @@ diff -r a0120629678b plugin/icedteanp/IcedTeaNPPlugin.cc
  ITNP_DestroyStream (NPP instance, NPStream* stream, NPReason reason)
  {
 -  PLUGIN_DEBUG_0ARG ("ITNP_DestroyStream\n");
--
--  PLUGIN_DEBUG_0ARG ("ITNP_DestroyStream return\n");
 +  PLUGIN_DEBUG ("ITNP_DestroyStream\n");
-+
+-  PLUGIN_DEBUG_0ARG ("ITNP_DestroyStream return\n");
 +  PLUGIN_DEBUG ("ITNP_DestroyStream return\n");
  
    return NPERR_NO_ERROR;
@@ -1273,10 +2622,9 @@ diff -r a0120629678b plugin/icedteanp/IcedTeaNPPlugin.cc
  ITNP_WriteReady (NPP instance, NPStream* stream)
  {
 -  PLUGIN_DEBUG_0ARG ("ITNP_WriteReady\n");
--
--  PLUGIN_DEBUG_0ARG ("ITNP_WriteReady return\n");
 +  PLUGIN_DEBUG ("ITNP_WriteReady\n");
-+
+-  PLUGIN_DEBUG_0ARG ("ITNP_WriteReady return\n");
 +  PLUGIN_DEBUG ("ITNP_WriteReady return\n");
  
    return 0;
@@ -1286,10 +2634,9 @@ diff -r a0120629678b plugin/icedteanp/IcedTeaNPPlugin.cc
             void* buffer)
  {
 -  PLUGIN_DEBUG_0ARG ("ITNP_Write\n");
--
--  PLUGIN_DEBUG_0ARG ("ITNP_Write return\n");
 +  PLUGIN_DEBUG ("ITNP_Write\n");
-+
+-  PLUGIN_DEBUG_0ARG ("ITNP_Write return\n");
 +  PLUGIN_DEBUG ("ITNP_Write return\n");
  
    return 0;
@@ -1299,10 +2646,9 @@ diff -r a0120629678b plugin/icedteanp/IcedTeaNPPlugin.cc
  ITNP_Print (NPP instance, NPPrint* platformPrint)
  {
 -  PLUGIN_DEBUG_0ARG ("ITNP_Print\n");
--
--  PLUGIN_DEBUG_0ARG ("ITNP_Print return\n");
 +  PLUGIN_DEBUG ("ITNP_Print\n");
-+
+-  PLUGIN_DEBUG_0ARG ("ITNP_Print return\n");
 +  PLUGIN_DEBUG ("ITNP_Print return\n");
  }
  
@@ -1310,10 +2656,9 @@ diff -r a0120629678b plugin/icedteanp/IcedTeaNPPlugin.cc
  ITNP_HandleEvent (NPP instance, void* event)
  {
 -  PLUGIN_DEBUG_0ARG ("ITNP_HandleEvent\n");
--
--  PLUGIN_DEBUG_0ARG ("ITNP_HandleEvent return\n");
 +  PLUGIN_DEBUG ("ITNP_HandleEvent\n");
-+
+-  PLUGIN_DEBUG_0ARG ("ITNP_HandleEvent return\n");
 +  PLUGIN_DEBUG ("ITNP_HandleEvent return\n");
  
    return 0;
@@ -1323,10 +2668,9 @@ diff -r a0120629678b plugin/icedteanp/IcedTeaNPPlugin.cc
                 void* notifyData)
  {
 -  PLUGIN_DEBUG_0ARG ("ITNP_URLNotify\n");
--
--  PLUGIN_DEBUG_0ARG ("ITNP_URLNotify return\n");
 +  PLUGIN_DEBUG ("ITNP_URLNotify\n");
-+
+-  PLUGIN_DEBUG_0ARG ("ITNP_URLNotify return\n");
 +  PLUGIN_DEBUG ("ITNP_URLNotify return\n");
  }
  
@@ -1363,10 +2707,9 @@ diff -r a0120629678b plugin/icedteanp/IcedTeaNPPlugin.cc
  
   cleanup_done:
 -  PLUGIN_DEBUG_0ARG ("plugin_get_documentbase return\n");
--
--  PLUGIN_DEBUG_1ARG("plugin_get_documentbase returning: %s\n", documentbase_copy);
 +  PLUGIN_DEBUG ("plugin_get_documentbase return\n");
-+
+-  PLUGIN_DEBUG_1ARG("plugin_get_documentbase returning: %s\n", documentbase_copy);
 +  PLUGIN_DEBUG("plugin_get_documentbase returning: %s\n", documentbase_copy);
    return documentbase_copy;
  }
@@ -1387,8 +2730,9 @@ diff -r a0120629678b plugin/icedteanp/IcedTeaNPPlugin.cc
 -  std::string script_str = std::string();
 -  NPVariant* location = new NPVariant();
 -  std::string location_str = std::string();
--
-   browser_functions.getvalue(instance, NPNVWindowNPObject, &window);
++  browser_functions.getvalue(instance, NPNVWindowNPObject, &window);
+-  browser_functions.getvalue(instance, NPNVWindowNPObject, &window);
 -  script_str += "window.location.href";
 -#if MOZILLA_VERSION_COLLAPSED < 1090200
 -  script.utf8characters = script_str.c_str();
@@ -1398,7 +2742,6 @@ diff -r a0120629678b plugin/icedteanp/IcedTeaNPPlugin.cc
 -  script.UTF8Length = script_str.size();
 -#endif
 -  browser_functions.evaluate(instance, window, &script, location);
-+
 +  NPVariant location;
 +  NPIdentifier location_id = browser_functions.getstringidentifier("location");
 +  browser_functions.getproperty(instance, window, location_id, &location);
@@ -1578,10 +2921,9 @@ diff -r a0120629678b plugin/icedteanp/IcedTeaNPPlugin.cc
    ITNPPluginData* data = (ITNPPluginData*) plugin_data;
  
 -  PLUGIN_DEBUG_0ARG ("plugin_out_pipe_callback: appletviewer has stopped.\n");
--
--  PLUGIN_DEBUG_0ARG ("plugin_out_pipe_callback return\n");
 +  PLUGIN_DEBUG ("plugin_out_pipe_callback: appletviewer has stopped.\n");
-+
+-  PLUGIN_DEBUG_0ARG ("plugin_out_pipe_callback return\n");
 +  PLUGIN_DEBUG ("plugin_out_pipe_callback return\n");
  
    return FALSE;
@@ -1758,10 +3100,9 @@ diff -r a0120629678b plugin/icedteanp/IcedTeaNPPlugin.cc
    plugin_instance_mutex = g_mutex_new ();
  
 -  PLUGIN_DEBUG_1ARG ("NP_Initialize: using %s\n", appletviewer_executable);
--
--  PLUGIN_DEBUG_0ARG ("NP_Initialize return\n");
 +  PLUGIN_DEBUG ("NP_Initialize: using %s\n", appletviewer_executable);
-+
+-  PLUGIN_DEBUG_0ARG ("NP_Initialize return\n");
 +  PLUGIN_DEBUG ("NP_Initialize return\n");
  
    plugin_req_proc = new PluginRequestProcessor();
@@ -1771,10 +3112,9 @@ diff -r a0120629678b plugin/icedteanp/IcedTeaNPPlugin.cc
  NP_GetMIMEDescription ()
  {
 -  PLUGIN_DEBUG_0ARG ("NP_GetMIMEDescription\n");
--
--  PLUGIN_DEBUG_0ARG ("NP_GetMIMEDescription return\n");
 +  PLUGIN_DEBUG ("NP_GetMIMEDescription\n");
-+
+-  PLUGIN_DEBUG_0ARG ("NP_GetMIMEDescription return\n");
 +  PLUGIN_DEBUG ("NP_GetMIMEDescription return\n");
  
    return (char*) PLUGIN_MIME_DESC;
@@ -1862,9 +3202,9 @@ diff -r a0120629678b plugin/icedteanp/IcedTeaNPPlugin.cc
 +      PLUGIN_DEBUG("Allocating new scriptable object\n");
        return new IcedTeaScriptablePluginObject(npp);
  }
-diff -r a0120629678b plugin/icedteanp/IcedTeaPluginRequestProcessor.cc
---- a/plugin/icedteanp/IcedTeaPluginRequestProcessor.cc        Wed Apr 14 12:21:03 2010 +0200
-+++ b/plugin/icedteanp/IcedTeaPluginRequestProcessor.cc        Fri Jul 16 14:30:37 2010 +0200
+diff -r d1ad52447673 plugin/icedteanp/IcedTeaPluginRequestProcessor.cc
+--- a/plugin/icedteanp/IcedTeaPluginRequestProcessor.cc        Wed Apr 14 12:21:30 2010 +0200
++++ b/plugin/icedteanp/IcedTeaPluginRequestProcessor.cc        Tue Jul 20 16:36:52 2010 +0200
 @@ -73,7 +73,7 @@
  
  PluginRequestProcessor::~PluginRequestProcessor()
@@ -2033,9 +3373,9 @@ diff -r a0120629678b plugin/icedteanp/IcedTeaPluginRequestProcessor.cc
 +    PLUGIN_DEBUG("_getString returning\n");
  }
  
-diff -r a0120629678b plugin/icedteanp/IcedTeaPluginUtils.cc
---- a/plugin/icedteanp/IcedTeaPluginUtils.cc   Wed Apr 14 12:21:03 2010 +0200
-+++ b/plugin/icedteanp/IcedTeaPluginUtils.cc   Fri Jul 16 14:30:37 2010 +0200
+diff -r d1ad52447673 plugin/icedteanp/IcedTeaPluginUtils.cc
+--- a/plugin/icedteanp/IcedTeaPluginUtils.cc   Wed Apr 14 12:21:30 2010 +0200
++++ b/plugin/icedteanp/IcedTeaPluginUtils.cc   Tue Jul 20 16:36:52 2010 +0200
 @@ -157,7 +157,7 @@
  
        result->append(id_str);
@@ -2401,9 +3741,9 @@ diff -r a0120629678b plugin/icedteanp/IcedTeaPluginUtils.cc
 -    PLUGIN_DEBUG_1ARG("%p unlocked...\n", &msg_queue_mutex);
 +    PLUGIN_DEBUG("%p unlocked...\n", &msg_queue_mutex);
  }
-diff -r a0120629678b plugin/icedteanp/IcedTeaPluginUtils.h
---- a/plugin/icedteanp/IcedTeaPluginUtils.h    Wed Apr 14 12:21:03 2010 +0200
-+++ b/plugin/icedteanp/IcedTeaPluginUtils.h    Fri Jul 16 14:30:37 2010 +0200
+diff -r d1ad52447673 plugin/icedteanp/IcedTeaPluginUtils.h
+--- a/plugin/icedteanp/IcedTeaPluginUtils.h    Wed Apr 14 12:21:30 2010 +0200
++++ b/plugin/icedteanp/IcedTeaPluginUtils.h    Tue Jul 20 16:36:52 2010 +0200
 @@ -66,64 +66,14 @@
  
  #include "IcedTeaNPPlugin.h"
@@ -2488,9 +3828,9 @@ diff -r a0120629678b plugin/icedteanp/IcedTeaPluginUtils.h
       *c - '0')
  
  #define IS_VALID_HEX(c) \
-diff -r a0120629678b plugin/icedteanp/IcedTeaScriptablePluginObject.cc
---- a/plugin/icedteanp/IcedTeaScriptablePluginObject.cc        Wed Apr 14 12:21:03 2010 +0200
-+++ b/plugin/icedteanp/IcedTeaScriptablePluginObject.cc        Fri Jul 16 14:30:37 2010 +0200
+diff -r d1ad52447673 plugin/icedteanp/IcedTeaScriptablePluginObject.cc
+--- a/plugin/icedteanp/IcedTeaScriptablePluginObject.cc        Wed Apr 14 12:21:30 2010 +0200
++++ b/plugin/icedteanp/IcedTeaScriptablePluginObject.cc        Tue Jul 20 16:36:52 2010 +0200
 @@ -135,7 +135,7 @@
  NPObject*
  allocate_scriptable_jp_object(NPP npp, NPClass *aClass)
@@ -2744,9 +4084,9 @@ diff -r a0120629678b plugin/icedteanp/IcedTeaScriptablePluginObject.cc
 +    PLUGIN_DEBUG("IcedTeaScriptableJavaObject::construct returning.\n");
      return true;
  }
-diff -r a0120629678b plugin/icedteanp/java/netscape/security/ForbiddenTargetException.java
+diff -r d1ad52447673 plugin/icedteanp/java/netscape/security/ForbiddenTargetException.java
 --- /dev/null  Thu Jan 01 00:00:00 1970 +0000
-+++ b/plugin/icedteanp/java/netscape/security/ForbiddenTargetException.java    Fri Jul 16 14:30:37 2010 +0200
++++ b/plugin/icedteanp/java/netscape/security/ForbiddenTargetException.java    Tue Jul 20 16:36:52 2010 +0200
 @@ -0,0 +1,52 @@
 +/* ForbiddenTargetException.java
 +   Copyright (C) 2010  Red Hat
@@ -2800,9 +4140,9 @@ diff -r a0120629678b plugin/icedteanp/java/netscape/security/ForbiddenTargetExce
 +    }
 +
 +}
-diff -r a0120629678b plugin/icedteanp/java/sun/applet/PluginAppletViewer.java
---- a/plugin/icedteanp/java/sun/applet/PluginAppletViewer.java Wed Apr 14 12:21:03 2010 +0200
-+++ b/plugin/icedteanp/java/sun/applet/PluginAppletViewer.java Fri Jul 16 14:30:37 2010 +0200
+diff -r d1ad52447673 plugin/icedteanp/java/sun/applet/PluginAppletViewer.java
+--- a/plugin/icedteanp/java/sun/applet/PluginAppletViewer.java Wed Apr 14 12:21:30 2010 +0200
++++ b/plugin/icedteanp/java/sun/applet/PluginAppletViewer.java Tue Jul 20 16:36:52 2010 +0200
 @@ -1,4 +1,4 @@
 -/* VoidPluginCallRequest -- represent Java-to-JavaScript requests
 +/* PluginAppletViewer -- Handles embedding of the applet panel
@@ -2860,9 +4200,9 @@ diff -r a0120629678b plugin/icedteanp/java/sun/applet/PluginAppletViewer.java
                   if (countApplets() == 0) {
                       appletSystemExit();
                   }
-diff -r a0120629678b plugin/icedteanp/java/sun/applet/PluginMessageConsumer.java
---- a/plugin/icedteanp/java/sun/applet/PluginMessageConsumer.java      Wed Apr 14 12:21:03 2010 +0200
-+++ b/plugin/icedteanp/java/sun/applet/PluginMessageConsumer.java      Fri Jul 16 14:30:37 2010 +0200
+diff -r d1ad52447673 plugin/icedteanp/java/sun/applet/PluginMessageConsumer.java
+--- a/plugin/icedteanp/java/sun/applet/PluginMessageConsumer.java      Wed Apr 14 12:21:30 2010 +0200
++++ b/plugin/icedteanp/java/sun/applet/PluginMessageConsumer.java      Tue Jul 20 16:36:52 2010 +0200
 @@ -61,6 +61,7 @@
        PluginStreamHandler streamHandler = null;
        AppletSecurity as;
@@ -2930,9 +4270,9 @@ diff -r a0120629678b plugin/icedteanp/java/sun/applet/PluginMessageConsumer.java
 +              }
 +      }
  }
-diff -r a0120629678b plugin/icedteanp/java/sun/applet/PluginMessageHandlerWorker.java
---- a/plugin/icedteanp/java/sun/applet/PluginMessageHandlerWorker.java Wed Apr 14 12:21:03 2010 +0200
-+++ b/plugin/icedteanp/java/sun/applet/PluginMessageHandlerWorker.java Fri Jul 16 14:30:37 2010 +0200
+diff -r d1ad52447673 plugin/icedteanp/java/sun/applet/PluginMessageHandlerWorker.java
+--- a/plugin/icedteanp/java/sun/applet/PluginMessageHandlerWorker.java Wed Apr 14 12:21:30 2010 +0200
++++ b/plugin/icedteanp/java/sun/applet/PluginMessageHandlerWorker.java Tue Jul 20 16:36:52 2010 +0200
 @@ -72,7 +72,7 @@
  
                        if (message != null) {
@@ -2960,9 +4300,9 @@ diff -r a0120629678b plugin/icedteanp/java/sun/applet/PluginMessageHandlerWorker
 +              return "Worker #" + this.id + "/IsPriority=" + this.isPriorityWorker + "/IsFree=" + this.free + "/Message=" + message;  
 +      }
  }
-diff -r a0120629678b ports/hotspot/src/share/vm/shark/sharkNativeWrapper.cpp
---- a/ports/hotspot/src/share/vm/shark/sharkNativeWrapper.cpp  Wed Apr 14 12:21:03 2010 +0200
-+++ b/ports/hotspot/src/share/vm/shark/sharkNativeWrapper.cpp  Fri Jul 16 14:30:37 2010 +0200
+diff -r d1ad52447673 ports/hotspot/src/share/vm/shark/sharkNativeWrapper.cpp
+--- a/ports/hotspot/src/share/vm/shark/sharkNativeWrapper.cpp  Wed Apr 14 12:21:30 2010 +0200
++++ b/ports/hotspot/src/share/vm/shark/sharkNativeWrapper.cpp  Tue Jul 20 16:36:52 2010 +0200
 @@ -98,7 +98,8 @@
    if (is_static()) {
      builder()->CreateStore(
@@ -2973,9 +4313,23 @@ diff -r a0120629678b ports/hotspot/src/share/vm/shark/sharkNativeWrapper.cpp
        oop_tmp_slot());
  
      param_types.push_back(box_type);
-diff -r a0120629678b ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp
---- a/ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp  Wed Apr 14 12:21:03 2010 +0200
-+++ b/ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp  Fri Jul 16 14:30:37 2010 +0200
+@@ -326,11 +327,11 @@
+       needs_cast = true;
+       break;
+-    case T_BYTE:
++    case T_CHAR:
+       needs_cast = true;
+       break;
+-    case T_CHAR:
++    case T_BYTE:
+     case T_SHORT:
+       needs_cast = true;
+       is_signed = true;
+diff -r d1ad52447673 ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp
+--- a/ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp  Wed Apr 14 12:21:30 2010 +0200
++++ b/ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp  Tue Jul 20 16:36:52 2010 +0200
 @@ -691,12 +691,6 @@
    SharkValue *index = pop();
    SharkValue *array = pop();
@@ -3062,9 +4416,9 @@ diff -r a0120629678b ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp
    return NULL;
  }
  
-diff -r a0120629678b pulseaudio/src/java/org/classpath/icedtea/pulseaudio/PulseAudioDataLine.java
---- a/pulseaudio/src/java/org/classpath/icedtea/pulseaudio/PulseAudioDataLine.java     Wed Apr 14 12:21:03 2010 +0200
-+++ b/pulseaudio/src/java/org/classpath/icedtea/pulseaudio/PulseAudioDataLine.java     Fri Jul 16 14:30:37 2010 +0200
+diff -r d1ad52447673 pulseaudio/src/java/org/classpath/icedtea/pulseaudio/PulseAudioDataLine.java
+--- a/pulseaudio/src/java/org/classpath/icedtea/pulseaudio/PulseAudioDataLine.java     Wed Apr 14 12:21:30 2010 +0200
++++ b/pulseaudio/src/java/org/classpath/icedtea/pulseaudio/PulseAudioDataLine.java     Tue Jul 20 16:36:52 2010 +0200
 @@ -86,7 +86,7 @@
        protected void open(AudioFormat format, int bufferSize)
                        throws LineUnavailableException {
@@ -3157,9 +4511,9 @@ diff -r a0120629678b pulseaudio/src/java/org/classpath/icedtea/pulseaudio/PulseA
  
                        Operation o;
                        synchronized (eventLoop.threadLock) {
-diff -r a0120629678b pulseaudio/src/java/org/classpath/icedtea/pulseaudio/PulseAudioLine.java
---- a/pulseaudio/src/java/org/classpath/icedtea/pulseaudio/PulseAudioLine.java Wed Apr 14 12:21:03 2010 +0200
-+++ b/pulseaudio/src/java/org/classpath/icedtea/pulseaudio/PulseAudioLine.java Fri Jul 16 14:30:37 2010 +0200
+diff -r d1ad52447673 pulseaudio/src/java/org/classpath/icedtea/pulseaudio/PulseAudioLine.java
+--- a/pulseaudio/src/java/org/classpath/icedtea/pulseaudio/PulseAudioLine.java Wed Apr 14 12:21:30 2010 +0200
++++ b/pulseaudio/src/java/org/classpath/icedtea/pulseaudio/PulseAudioLine.java Tue Jul 20 16:36:52 2010 +0200
 @@ -62,7 +62,7 @@
  
        @Override
@@ -3187,9 +4541,9 @@ diff -r a0120629678b pulseaudio/src/java/org/classpath/icedtea/pulseaudio/PulseA
                        return new Control[] {};
                }
  
-diff -r a0120629678b pulseaudio/src/java/org/classpath/icedtea/pulseaudio/PulseAudioSourceDataLine.java
---- a/pulseaudio/src/java/org/classpath/icedtea/pulseaudio/PulseAudioSourceDataLine.java       Wed Apr 14 12:21:03 2010 +0200
-+++ b/pulseaudio/src/java/org/classpath/icedtea/pulseaudio/PulseAudioSourceDataLine.java       Fri Jul 16 14:30:37 2010 +0200
+diff -r d1ad52447673 pulseaudio/src/java/org/classpath/icedtea/pulseaudio/PulseAudioSourceDataLine.java
+--- a/pulseaudio/src/java/org/classpath/icedtea/pulseaudio/PulseAudioSourceDataLine.java       Wed Apr 14 12:21:30 2010 +0200
++++ b/pulseaudio/src/java/org/classpath/icedtea/pulseaudio/PulseAudioSourceDataLine.java       Tue Jul 20 16:36:52 2010 +0200
 @@ -142,8 +142,9 @@
                        writeInterrupted = false;
                }
@@ -3270,9 +4624,9 @@ diff -r a0120629678b pulseaudio/src/java/org/classpath/icedtea/pulseaudio/PulseA
                }
  
                writeInterrupted = true;
-diff -r a0120629678b pulseaudio/src/java/org/classpath/icedtea/pulseaudio/PulseAudioTargetDataLine.java
---- a/pulseaudio/src/java/org/classpath/icedtea/pulseaudio/PulseAudioTargetDataLine.java       Wed Apr 14 12:21:03 2010 +0200
-+++ b/pulseaudio/src/java/org/classpath/icedtea/pulseaudio/PulseAudioTargetDataLine.java       Fri Jul 16 14:30:37 2010 +0200
+diff -r d1ad52447673 pulseaudio/src/java/org/classpath/icedtea/pulseaudio/PulseAudioTargetDataLine.java
+--- a/pulseaudio/src/java/org/classpath/icedtea/pulseaudio/PulseAudioTargetDataLine.java       Wed Apr 14 12:21:30 2010 +0200
++++ b/pulseaudio/src/java/org/classpath/icedtea/pulseaudio/PulseAudioTargetDataLine.java       Tue Jul 20 16:36:52 2010 +0200
 @@ -76,15 +76,19 @@
  
        @Override
@@ -3416,9 +4770,9 @@ diff -r a0120629678b pulseaudio/src/java/org/classpath/icedtea/pulseaudio/PulseA
                }
  
                synchronized (eventLoop.threadLock) {
-diff -r a0120629678b tapset/hotspot.stp.in
---- a/tapset/hotspot.stp.in    Wed Apr 14 12:21:03 2010 +0200
-+++ b/tapset/hotspot.stp.in    Fri Jul 16 14:30:37 2010 +0200
+diff -r d1ad52447673 tapset/hotspot.stp.in
+--- a/tapset/hotspot.stp.in    Wed Apr 14 12:21:30 2010 +0200
++++ b/tapset/hotspot.stp.in    Tue Jul 20 16:36:52 2010 +0200
 @@ -120,7 +120,7 @@
    name = "object_alloc";
    thread_id = $arg1;
index ac7d757..4dfb16a 100644 (file)
@@ -1,3 +1,3 @@
 require openjdk-6-release-6b18.inc
 
-PR = "${INC_PR}.5"
+PR = "${INC_PR}.6"