changeset 2657:27b37759ec5f

Update to 7u40 b31 / IcedTea 2.4.1 tag. 2013-07-01 Andrew John Hughes <gnu.andrew@member.fsf.org> * Makefile.am: (OPENJDK_VERSION): Bump to b31. (CORBA_CHANGESET): Update to IcedTea 2.4.1 tag. (JAXP_CHANGESET): Likewise. (JAXWS_CHANGESET): Likewise. (JDK_CHANGESET): Likewise. (LANGTOOLS_CHANGESET): Likewise. (OPENJDK_CHANGESET): Likewise. (CORBA_SHA256SUM): Likewise. (JAXP_SHA256SUM): Likewise. (JAXWS_SHA256SUM): Likewise. (JDK_SHA256SUM): Likewise. (LANGTOOLS_SHA256SUM): Likewise. (OPENJDK_SHA256SUM): Likewise. * hotspot.map: Update default to IcedTea 2.4.1 tag. * patches/boot/ecj-diamond.patch, * patches/boot/ecj-multicatch.patch: Add new cases. * patches/boot/ecj-stringswitch.patch: Update MethodHandleNatives patch, including adding new case. * patches/boot/tobin.patch: Update following move from sun.awt.X11 to sun.awt. * patches/rhino.patch, * patches/systemtap_gc.patch: Regenerated.
author Andrew John Hughes <gnu_andrew@member.fsf.org>
date Tue, 02 Jul 2013 05:35:39 +0100
parents 861abb252466
children 6a58091e7912
files ChangeLog Makefile.am hotspot.map patches/boot/ecj-diamond.patch patches/boot/ecj-multicatch.patch patches/boot/ecj-stringswitch.patch patches/boot/tobin.patch patches/rhino.patch patches/systemtap_gc.patch
diffstat 9 files changed, 423 insertions(+), 237 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Tue Jun 11 11:09:13 2013 +0100
+++ b/ChangeLog	Tue Jul 02 05:35:39 2013 +0100
@@ -1,3 +1,33 @@
+2013-07-01  Andrew John Hughes  <gnu.andrew@member.fsf.org>
+
+	* Makefile.am:
+	(OPENJDK_VERSION): Bump to b31.
+	(CORBA_CHANGESET): Update to IcedTea 2.4.1 tag.
+	(JAXP_CHANGESET): Likewise.
+	(JAXWS_CHANGESET): Likewise.
+	(JDK_CHANGESET): Likewise.
+	(LANGTOOLS_CHANGESET): Likewise.
+	(OPENJDK_CHANGESET): Likewise.
+	(CORBA_SHA256SUM): Likewise.
+	(JAXP_SHA256SUM): Likewise.
+	(JAXWS_SHA256SUM): Likewise.
+	(JDK_SHA256SUM): Likewise.
+	(LANGTOOLS_SHA256SUM): Likewise.
+	(OPENJDK_SHA256SUM): Likewise.
+	* hotspot.map: Update default to IcedTea 2.4.1 tag.
+	* patches/boot/ecj-diamond.patch,
+	* patches/boot/ecj-multicatch.patch:
+	Add new cases.
+	* patches/boot/ecj-stringswitch.patch:
+	Update MethodHandleNatives patch, including
+	adding new case.
+	* patches/boot/tobin.patch:
+	Update following move from sun.awt.X11
+	to sun.awt.
+	* patches/rhino.patch,
+	* patches/systemtap_gc.patch:
+	Regenerated.
+
 2013-06-11  Andrew John Hughes  <gnu.andrew@member.fsf.org>
 
 	* configure.ac: Bump to 2.4.1pre.
--- a/Makefile.am	Tue Jun 11 11:09:13 2013 +0100
+++ b/Makefile.am	Tue Jul 02 05:35:39 2013 +0100
@@ -1,22 +1,22 @@
 # Dependencies
 
-OPENJDK_VERSION = b20
+OPENJDK_VERSION = b31
 JDK_UPDATE_VERSION = 40
 COMBINED_VERSION = $(JDK_UPDATE_VERSION)-$(OPENJDK_VERSION)
 
-CORBA_CHANGESET = 71d5ec2f3dfb
-JAXP_CHANGESET = 5eaf3bca7f68
-JAXWS_CHANGESET = 9d2007a13c02
-JDK_CHANGESET = 29ce11184945
-LANGTOOLS_CHANGESET = ffb1b6bc4750
-OPENJDK_CHANGESET = 9c74cb4a3ae8
+CORBA_CHANGESET = 23ae4e0e0cce
+JAXP_CHANGESET = 5be6b670d08b
+JAXWS_CHANGESET = c0e48fdfb695
+JDK_CHANGESET = 65d95818d79e
+LANGTOOLS_CHANGESET = 91c95fd8eea8
+OPENJDK_CHANGESET = ae86c6974e8e
 
-CORBA_SHA256SUM = 0191c678935dac77c0ad085bedb59e6bcc93e0712c3a4ef2b7171562e129807c
-JAXP_SHA256SUM = 25bb13db8a426c2d84e13eed0d598c88c447af41de3f678a70680897c38083fd
-JAXWS_SHA256SUM = 4cff8300b4c23e9327607f7c09295a99ef7d1032d8397429c7879ba489d14456
-JDK_SHA256SUM = 13024c623bb37c4d44cb3b724876d7827924868fb8f94428faa87ddb11492352
-LANGTOOLS_SHA256SUM = 80cbe75f7c268e97619e8007f8d29ecbbb7584062c1286c8b470f875526028f3
-OPENJDK_SHA256SUM = 4adfde4b056ea8f35b639156c7cad8bac140ba7957ea8ce49b440089babc6579
+CORBA_SHA256SUM = 618bb237f262a4a703edb88bd873fd80fe33d7fb07b8a113bfc701227b748395
+JAXP_SHA256SUM = df2d15089890a7565b0dd89f867d7b2931839652d29029d63f8201358b0ecd34
+JAXWS_SHA256SUM = 972de06b968a6da85b1d9216c5617325135fc63c90ffb5e1d7721dce5843b037
+JDK_SHA256SUM = 97edcd78d316f33a43278c5549cb58a06f67305b63ad51b7c1a1fca7c45c6432
+LANGTOOLS_SHA256SUM = 6ff5cdcca8184526a5928bb8ff0bcc38b897d463559cc9f2b10e439931a8f561
+OPENJDK_SHA256SUM = f9f2925af3eac91ec4b0389b5316f840239558048569db2193b9e2ae34ffe32a
 
 CACAO_VERSION = e215e36be9fc
 CACAO_SHA256SUM = 4966514c72ee7ed108b882d9b6e65c3adf8a8f9c2dccb029f971b3c8cb4870ab
--- a/hotspot.map	Tue Jun 11 11:09:13 2013 +0100
+++ b/hotspot.map	Tue Jul 02 05:35:39 2013 +0100
@@ -1,2 +1,2 @@
 # version url changeset sha256sum
-default http://icedtea.classpath.org/hg/release/icedtea7-forest-2.4/hotspot c67fd7874b1a 34e60aba6db2f7a5cac7861058db283bd1edcdd9194a5490114cf76edd71696d
+default http://icedtea.classpath.org/hg/release/icedtea7-forest-2.4/hotspot 5f53e7717116 f2cfd6da6ff85dff4e6f5d40e21bc48cf15325bcd69d6c36e8f27e1fca74bd42
--- a/patches/boot/ecj-diamond.patch	Tue Jun 11 11:09:13 2013 +0100
+++ b/patches/boot/ecj-diamond.patch	Tue Jul 02 05:35:39 2013 +0100
@@ -6997,3 +6997,63 @@
          List<Thread> threads = new ArrayList<Thread>();
          for (int i = 0; i < threadCount; i++) {
              RandomCollector r = new RandomCollector();
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/io/ObjectStreamClass.java openjdk-boot/jdk/src/share/classes/java/io/ObjectStreamClass.java
+--- openjdk-boot.orig/jdk/src/share/classes/java/io/ObjectStreamClass.java	2013-06-27 16:06:42.289384018 +0100
++++ openjdk-boot/jdk/src/share/classes/java/io/ObjectStreamClass.java	2013-06-27 16:07:06.489768521 +0100
+@@ -1164,7 +1164,7 @@
+             end = end.getSuperclass();
+         }
+ 
+-        HashSet<String> oscNames = new HashSet<>(3);
++        HashSet<String> oscNames = new HashSet<String>(3);
+ 
+         for (ObjectStreamClass d = this; d != null; d = d.superDesc) {
+             if (oscNames.contains(d.name)) {
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/font/CreatedFontTracker.java openjdk-boot/jdk/src/share/classes/sun/font/CreatedFontTracker.java
+--- openjdk-boot.orig/jdk/src/share/classes/sun/font/CreatedFontTracker.java	2013-06-27 16:06:53.297558922 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/font/CreatedFontTracker.java	2013-06-27 16:07:32.294178507 +0100
+@@ -106,7 +106,7 @@
+      * Note that this only applies to createFont() from an InputStream object.
+      */
+     private static class TempFileDeletionHook {
+-        private static HashMap<File, OutputStream> files = new HashMap<>();
++        private static HashMap<File, OutputStream> files = new HashMap<File, OutputStream>();
+ 
+         private static Thread t = null;
+         static void init() {
+diff --git a/src/share/classes/com/sun/media/sound/AbstractLine.java b/src/share/classes/com/sun/media/sound/AbstractLine.java
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/media/sound/AbstractLine.java
++++ openjdk-boot/jdk/src/share/classes/com/sun/media/sound/AbstractLine.java
+@@ -54,7 +54,7 @@
+      * Contains event dispatcher per thread group.
+      */
+     private static final Map<ThreadGroup, EventDispatcher> dispatchers =
+-            new WeakHashMap<>();
++      new WeakHashMap<ThreadGroup, EventDispatcher>();
+ 
+     /**
+      * Constructs a new AbstractLine.
+diff --git a/src/share/classes/com/sun/media/sound/RealTimeSequencer.java b/src/share/classes/com/sun/media/sound/RealTimeSequencer.java
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/media/sound/RealTimeSequencer.java
++++ openjdk-boot/jdk/src/share/classes/com/sun/media/sound/RealTimeSequencer.java
+@@ -59,7 +59,7 @@
+      * dispatcher instance with a factory in EventDispatcher
+      */
+     private static final Map<ThreadGroup, EventDispatcher> dispatchers =
+-            new WeakHashMap<>();
++      new WeakHashMap<ThreadGroup, EventDispatcher>();
+ 
+     /**
+      * All RealTimeSequencers share this info object.
+diff -Nru openjdk-boot.orig/jdk/src/solaris/classes/sun/nio/ch/SctpNet.java openjdk-boot/jdk/src/solaris/classes/sun/nio/ch/SctpNet.java
+--- openjdk-boot.orig/jdk/src/solaris/classes/sun/nio/ch/SctpNet.java	2013-06-27 20:05:19.200970932 +0100
++++ openjdk-boot/jdk/src/solaris/classes/sun/nio/ch/SctpNet.java	2013-06-27 20:05:33.857203747 +0100
+@@ -113,7 +113,7 @@
+             SocketAddress[] saa)
+     {
+          SecurityManager sm = System.getSecurityManager();
+-         Set<SocketAddress> set = new HashSet<>(saa.length);
++         Set<SocketAddress> set = new HashSet<SocketAddress>(saa.length);
+          for (SocketAddress sa : saa) {
+              set.add(getRevealedLocalAddress(sa, sm));
+          }
--- a/patches/boot/ecj-multicatch.patch	Tue Jun 11 11:09:13 2013 +0100
+++ b/patches/boot/ecj-multicatch.patch	Tue Jul 02 05:35:39 2013 +0100
@@ -401,3 +401,54 @@
              throw new InternalError(e.toString());
          } catch (InvocationTargetException e) {
              Throwable t = e.getCause();
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/jmx/remote/internal/ArrayNotificationBuffer.java openjdk-boot/jdk/src/share/classes/com/sun/jmx/remote/internal/ArrayNotificationBuffer.java
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/jmx/remote/internal/ArrayNotificationBuffer.java	2013-06-27 15:56:57.456088537 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/jmx/remote/internal/ArrayNotificationBuffer.java	2013-06-27 16:02:12.857102777 +0100
+@@ -402,7 +402,13 @@
+                         try {
+                             ServerNotifForwarder.checkMBeanPermission(this.mBeanServer,
+                                                       candidate.getObjectName(),"addNotificationListener");
+-                        } catch (InstanceNotFoundException | SecurityException e) {
++                        } catch (InstanceNotFoundException e) {
++                            if (logger.debugOn()) {
++                                logger.debug("fetchNotifications", "candidate: " + candidate + " skipped. exception " + e);
++                            }
++                            ++nextSeq;
++                            continue;
++                        } catch (SecurityException e) {
+                             if (logger.debugOn()) {
+                                 logger.debug("fetchNotifications", "candidate: " + candidate + " skipped. exception " + e);
+                             }
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/ProcessBuilder.java openjdk-boot/jdk/src/share/classes/java/lang/ProcessBuilder.java
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/ProcessBuilder.java	2013-06-27 15:56:27.295609027 +0100
++++ openjdk-boot/jdk/src/share/classes/java/lang/ProcessBuilder.java	2013-06-27 16:00:59.631938678 +0100
+@@ -1024,10 +1024,10 @@
+                                      dir,
+                                      redirects,
+                                      redirectErrorStream);
+-        } catch (IOException | IllegalArgumentException e) {
++        } catch (IOException e) {
+             String exceptionInfo = ": " + e.getMessage();
+             Throwable cause = e;
+-            if ((e instanceof IOException) && security != null) {
++            if (security != null) {
+                 // Can not disclose the fail reason for read-protected files.
+                 try {
+                     security.checkRead(prog);
+@@ -1039,6 +1039,16 @@
+             // It's much easier for us to create a high-quality error
+             // message than the low-level C code which found the problem.
+             throw new IOException(
++                "Cannot run program \"" + prog + "\""
++                + (dir == null ? "" : " (in directory \"" + dir + "\")")
++                + exceptionInfo,
++                cause);
++        } catch (IllegalArgumentException e) {
++            String exceptionInfo = ": " + e.getMessage();
++            Throwable cause = e;
++            // It's much easier for us to create a high-quality error
++            // message than the low-level C code which found the problem.
++            throw new IOException(
+                 "Cannot run program \"" + prog + "\""
+                 + (dir == null ? "" : " (in directory \"" + dir + "\")")
+                 + exceptionInfo,
--- a/patches/boot/ecj-stringswitch.patch	Tue Jun 11 11:09:13 2013 +0100
+++ b/patches/boot/ecj-stringswitch.patch	Tue Jul 02 05:35:39 2013 +0100
@@ -1,6 +1,6 @@
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/ClassReader.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/ClassReader.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/ClassReader.java	2013-04-03 14:18:05.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/ClassReader.java	2013-04-04 13:22:25.036506097 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/ClassReader.java	2013-07-01 15:22:10.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/ClassReader.java	2013-07-02 03:38:10.090272900 +0100
 @@ -350,19 +350,16 @@
              if (attrCommands != null) {
                  Object lkey = Attribute.keyForLookup(ctype, name);
@@ -32,8 +32,8 @@
              // Find canonical instance of the requested attribute.
              Attribute a = Attribute.lookup(Package.attrDefs, ctype, name);
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java	2013-04-03 14:18:05.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java	2013-04-04 13:22:25.048506291 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java	2013-07-01 15:22:10.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java	2013-07-02 03:38:10.106273156 +0100
 @@ -73,16 +73,14 @@
          {
              // Non-standard, undocumented "--unpack" switch enables unpack mode.
@@ -91,8 +91,8 @@
  
          if (logFile != null && !logFile.equals("")) {
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Package.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Package.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Package.java	2013-04-03 14:18:05.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Package.java	2013-04-04 13:22:25.052506355 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Package.java	2013-07-01 15:22:10.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Package.java	2013-07-02 03:38:10.106273156 +0100
 @@ -1116,30 +1116,25 @@
          // what is one of { Debug, Compile, Constant, Exceptions, InnerClasses }
          if (verbose > 0)
@@ -144,8 +144,8 @@
      }
  
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/security/ntlm/NTLM.java openjdk-boot/jdk/src/share/classes/com/sun/security/ntlm/NTLM.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/security/ntlm/NTLM.java	2013-04-03 14:18:05.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/security/ntlm/NTLM.java	2013-04-04 13:22:25.056506419 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/security/ntlm/NTLM.java	2013-07-01 15:22:10.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/security/ntlm/NTLM.java	2013-07-02 03:38:10.106273156 +0100
 @@ -64,17 +64,23 @@
  
      protected NTLM(String version) throws NTLMException {
@@ -182,9 +182,9 @@
              fac = SecretKeyFactory.getInstance ("DES");
              cipher = Cipher.getInstance ("DES/ECB/NoPadding");
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/MethodHandleNatives.java openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandleNatives.java
---- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/MethodHandleNatives.java	2013-04-03 14:18:05.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandleNatives.java	2013-04-04 13:32:45.886517863 +0100
-@@ -327,12 +327,11 @@
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/MethodHandleNatives.java	2013-07-01 15:22:10.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandleNatives.java	2013-07-02 03:42:53.718781065 +0100
+@@ -328,12 +328,11 @@
                                       Object[] appendixResult) {
          try {
              if (defc == MethodHandle.class && refKind == REF_invokeVirtual) {
@@ -202,59 +202,24 @@
              }
          } catch (Throwable ex) {
              if (ex instanceof LinkageError)
-@@ -395,111 +394,106 @@
-     static boolean isCallerSensitive(MemberName mem) {
-         if (!mem.isInvocable())  return false;  // fields are not caller sensitive
-         Class<?> defc = mem.getDeclaringClass();
--        switch (mem.getName()) {
+@@ -403,122 +402,118 @@
+     // this method is also called by test/sun/reflect/CallerSensitiveFinder
+     // to validate the hand-maintained list
+     private static boolean isCallerSensitiveMethod(Class<?> defc, String method) {
+-        switch (method) {
 -        case "doPrivileged":
 -        case "doPrivilegedWithCombiner":
-+	String memName = mem.getName();
-+	if ("doPrivileged".equals(memName) ||
-+	    "doPrivilegedWithCombiner".equals(memName)) {
++	if ("doPrivileged".equals(method) ||
++	    "doPrivilegedWithCombiner".equals(method)) {
              return defc == java.security.AccessController.class;
 -        case "checkMemberAccess":
-+	} else if ("checkMemberAccess".equals(memName)) {
-             return canBeCalledVirtual(mem, java.lang.SecurityManager.class);
+-            return defc == java.lang.SecurityManager.class;
 -        case "getUnsafe":
 -            return defc == sun.misc.Unsafe.class;
 -        case "lookup":
-+        } else if ("getUnsafe".equals(memName)) {
-+             return defc == sun.misc.Unsafe.class;
-+	} else if ("lookup".equals(memName)) {
-             return defc == java.lang.invoke.MethodHandles.class;
--        case "findStatic":
--        case "findVirtual":
--        case "findConstructor":
--        case "findSpecial":
--        case "findGetter":
--        case "findSetter":
--        case "findStaticGetter":
--        case "findStaticSetter":
--        case "bind":
--        case "unreflect":
--        case "unreflectSpecial":
--        case "unreflectConstructor":
--        case "unreflectGetter":
--        case "unreflectSetter":
-+	} else if ("findStatic".equals(memName) ||
-+		   "findVirtual".equals(memName) || 
-+		   "findConstructor".equals(memName) ||
-+		   "findSpecial".equals(memName) ||
-+		   "findGetter".equals(memName) ||
-+		   "findSetter".equals(memName) ||
-+		   "findStaticGetter".equals(memName) ||
-+		   "findStaticSetter".equals(memName) ||
-+		   "bind".equals(memName) ||
-+		   "unreflect".equals(memName) ||
-+		   "unreflectSpecial".equals(memName) ||
-+		   "unreflectConstructor".equals(memName) ||
-+		   "unreflectGetter".equals(memName) ||
-+		   "unreflectSetter".equals(memName)) {
-             return defc == java.lang.invoke.MethodHandles.Lookup.class;
+-            return defc == java.lang.invoke.MethodHandles.class;
 -        case "invoke":
-+        } else if ("invoke".equals(memName)) {
-             return defc == java.lang.reflect.Method.class;
+-            return defc == java.lang.reflect.Method.class;
 -        case "get":
 -        case "getBoolean":
 -        case "getByte":
@@ -273,33 +238,17 @@
 -        case "setLong":
 -        case "setFloat":
 -        case "setDouble":
-+	} else if ("get".equals(memName) ||
-+		   "getBoolean".equals(memName) ||
-+		   "getByte".equals(memName) ||
-+		   "getChar".equals(memName) ||
-+		   "getShort".equals(memName) ||
-+		   "getInt".equals(memName) ||
-+		   "getFloat".equals(memName) ||
-+		   "getDouble".equals(memName) ||
-+		   "set".equals(memName) ||
-+		   "setBoolean".equals(memName) ||
-+		   "setByte".equals(memName) ||
-+		   "setChar".equals(memName) ||
-+		   "setShort".equals(memName) ||
-+		   "setInt".equals(memName) ||
-+		   "setLong".equals(memName) ||
-+		   "setFloat".equals(memName) ||
-+		   "setDouble".equals(memName)) {
-             return defc == java.lang.reflect.Field.class;
+-            return defc == java.lang.reflect.Field.class;
 -        case "newInstance":
-+	} else if ("newInstance".equals(memName)) {
-             if (defc == java.lang.reflect.Constructor.class)  return true;
-             if (defc == java.lang.Class.class)  return true;
+-            if (defc == java.lang.reflect.Constructor.class)  return true;
+-            if (defc == java.lang.Class.class)  return true;
 -            break;
+-        case "getFields":
+-            return defc == java.lang.Class.class ||
+-                   defc == javax.sql.rowset.serial.SerialJavaObject.class;
 -        case "forName":
 -        case "getClassLoader":
 -        case "getClasses":
--        case "getFields":
 -        case "getMethods":
 -        case "getConstructors":
 -        case "getDeclaredClasses":
@@ -312,88 +261,178 @@
 -        case "getDeclaredField":
 -        case "getDeclaredMethod":
 -        case "getDeclaredConstructor":
-+	} else if ("forName".equals(memName) ||
-+		   "getClassLoader".equals(memName) ||
-+		   "getClasses".equals(memName) ||
-+		   "getFields".equals(memName) ||
-+		   "getMethods".equals(memName) ||
-+		   "getConstructors".equals(memName) ||
-+		   "getDeclaredClasses".equals(memName) ||
-+		   "getDeclaredFields".equals(memName) ||
-+		   "getDeclaredMethods".equals(memName) ||
-+		   "getDeclaredConstructors".equals(memName) ||
-+		   "getField".equals(memName) ||
-+		   "getMethod".equals(memName) ||
-+		   "getConstructor".equals(memName) ||
-+		   "getDeclaredField".equals(memName) ||
-+		   "getDeclaredMethod".equals(memName) ||
-+		   "getDeclaredConstructor".equals(memName)) {
-             return defc == java.lang.Class.class;
+-        case "getEnclosingClass":
+-        case "getEnclosingMethod":
+-        case "getEnclosingConstructor":
+-            return defc == java.lang.Class.class;
 -        case "getConnection":
 -        case "getDriver":
 -        case "getDrivers":
 -        case "deregisterDriver":
-+	} else if ("getConnection".equals(memName) ||
-+		   "getDriver".equals(memName) ||
-+		   "getDrivers".equals(memName) ||
-+		   "deregisterDriver".equals(memName)) {
-             return defc == java.sql.DriverManager.class;
+-            return defc == java.sql.DriverManager.class;
 -        case "newUpdater":
-+        } else if ("newUpdater".equals(memName)) {
-             if (defc == java.util.concurrent.atomic.AtomicIntegerFieldUpdater.class)  return true;
-             if (defc == java.util.concurrent.atomic.AtomicLongFieldUpdater.class)  return true;
-             if (defc == java.util.concurrent.atomic.AtomicReferenceFieldUpdater.class)  return true;
+-            if (defc == java.util.concurrent.atomic.AtomicIntegerFieldUpdater.class)  return true;
+-            if (defc == java.util.concurrent.atomic.AtomicLongFieldUpdater.class)  return true;
+-            if (defc == java.util.concurrent.atomic.AtomicReferenceFieldUpdater.class)  return true;
+-            break;
+-        case "getContextClassLoader":
+-            return defc == java.lang.Thread.class;
+-        case "getPackage":
+-        case "getPackages":
+-            return defc == java.lang.Package.class;
+-        case "getParent":
+-        case "getSystemClassLoader":
+-            return defc == java.lang.ClassLoader.class;
+-        case "load":
+-        case "loadLibrary":
+-            if (defc == java.lang.Runtime.class)  return true;
+-            if (defc == java.lang.System.class)  return true;
+-            break;
+-        case "getCallerClass":
+-            if (defc == sun.reflect.Reflection.class)  return true;
+-            if (defc == java.lang.System.class)  return true;
 -            break;
+-        case "getCallerClassLoader":
+-            return defc == java.lang.ClassLoader.class;
+-        case "registerAsParallelCapable":
+-            return defc == java.lang.ClassLoader.class;
+-        case "getProxyClass":
+-        case "newProxyInstance":
+-            return defc == java.lang.reflect.Proxy.class;
+-        case "asInterfaceInstance":
+-            return defc == java.lang.invoke.MethodHandleProxies.class;
+-        case "getBundle":
+-        case "clearCache":
+-            return defc == java.util.ResourceBundle.class;
+-        case "getType":
+-            return defc == java.io.ObjectStreamField.class;
+-        case "forClass":
+-            return defc == java.io.ObjectStreamClass.class;
+-        case "getLogger":
+-            return defc == java.util.logging.Logger.class;
+-        case "getAnonymousLogger":
+-            return defc == java.util.logging.Logger.class;
+-        }
+-        return false;
++	} else if ("checkMemberAccess".equals(method)) {
++             return defc == java.lang.SecurityManager.class;
++        } else if ("getUnsafe".equals(method)) {
++             return defc == sun.misc.Unsafe.class;
++	} else if ("lookup".equals(method)) {
++             return defc == java.lang.invoke.MethodHandles.class;
++	} else if ("invoke".equals(method)) {
++             return defc == java.lang.reflect.Method.class;
++	} else if ("get".equals(method) ||
++		   "getBoolean".equals(method) ||
++		   "getByte".equals(method) ||
++		   "getChar".equals(method) ||
++		   "getShort".equals(method) ||
++		   "getInt".equals(method) ||
++		   "getLong".equals(method) ||
++		   "getFloat".equals(method) ||
++		   "getDouble".equals(method) ||
++		   "set".equals(method) ||
++		   "setBoolean".equals(method) ||
++		   "setByte".equals(method) ||
++		   "setChar".equals(method) ||
++		   "setShort".equals(method) ||
++		   "setInt".equals(method) ||
++		   "setLong".equals(method) ||
++		   "setFloat".equals(method) ||
++		   "setDouble".equals(method)) {
++             return defc == java.lang.reflect.Field.class;
++	} else if ("newInstance".equals(method)) {
++             if (defc == java.lang.reflect.Constructor.class)  return true;
++             if (defc == java.lang.Class.class)  return true;
++	} else if ("getFields".equals(method)) {
++             return defc == java.lang.Class.class ||
++                    defc == javax.sql.rowset.serial.SerialJavaObject.class;
++	} else if ("forName".equals(method) ||
++		   "getClassLoader".equals(method) ||
++		   "getClasses".equals(method) ||
++		   "getFields".equals(method) ||
++		   "getMethods".equals(method) ||
++		   "getConstructors".equals(method) ||
++		   "getDeclaredClasses".equals(method) ||
++		   "getDeclaredFields".equals(method) ||
++		   "getDeclaredMethods".equals(method) ||
++		   "getDeclaredConstructors".equals(method) ||
++		   "getField".equals(method) ||
++		   "getMethod".equals(method) ||
++		   "getConstructor".equals(method) ||
++		   "getDeclaredField".equals(method) ||
++		   "getDeclaredMethod".equals(method) ||
++		   "getDeclaredConstructor".equals(method) ||
++		   "getEnclosingClass".equals(method) ||
++		   "getEnclosingMethod".equals(method) ||
++		   "getEnclosingConstructor".equals(method)) {
++             return defc == java.lang.Class.class;
++	} else if ("getConnection".equals(method) ||
++		   "getDriver".equals(method) ||
++		   "getDrivers".equals(method) ||
++		   "deregisterDriver".equals(method)) {
++             return defc == java.sql.DriverManager.class;
++        } else if ("newUpdater".equals(method)) {
++             if (defc == java.util.concurrent.atomic.AtomicIntegerFieldUpdater.class)  return true;
++             if (defc == java.util.concurrent.atomic.AtomicLongFieldUpdater.class)  return true;
++             if (defc == java.util.concurrent.atomic.AtomicReferenceFieldUpdater.class)  return true;
++        } else if ("getContextClassLoader".equals(method)) {
++             return defc == java.lang.Thread.class;
++        } else if ("getPackage".equals(method) ||
++		   "getPackages".equals(method)) {
++             return defc == java.lang.Package.class;
++        } else if ("getParent".equals(method) ||
++		   "getSystemClassLoader".equals(method)) {
++             return defc == java.lang.ClassLoader.class;
++        } else if ("load".equals(method) ||
++		   "loadLibrary".equals(method)) {
++             if (defc == java.lang.Runtime.class)  return true;
++             if (defc == java.lang.System.class)  return true;
++        } else if ("getCallerClass".equals(method)) {
++             if (defc == sun.reflect.Reflection.class)  return true;
++             if (defc == java.lang.System.class)  return true;
++	} else if ("getCallerClassLoader".equals(method)) {
++             return defc == java.lang.ClassLoader.class;
++        } else if ("registerAsParallelCapable".equals(method)) {
++             return defc == java.lang.ClassLoader.class;
++        } else if ("getProxyClass".equals(method) ||
++		   "newProxyInstance".equals(method)) {
++             return defc == java.lang.reflect.Proxy.class;
++        } else if ("asInterfaceInstance".equals(method)) {
++             return defc == java.lang.invoke.MethodHandleProxies.class;
++        } else if ("getBundle".equals(method) ||
++		   "clearCache".equals(method)) {
++             return defc == java.util.ResourceBundle.class;
++        } else if ("getType".equals(method)) {
++             return defc == java.io.ObjectStreamField.class;
++        } else if ("forClass".equals(method)) {
++             return defc == java.io.ObjectStreamClass.class;
++        } else if ("getLogger".equals(method)) {
++             return defc == java.util.logging.Logger.class;
++        } else if ("getAnonymousLogger".equals(method)) {
++             return defc == java.util.logging.Logger.class;
++         }
++         return false;
+     }
+ 
+ 
+     private static boolean canBeCalledVirtual(MemberName mem) {
+         assert(mem.isInvocable());
+         Class<?> defc = mem.getDeclaringClass();
+-        switch (mem.getName()) {
+-        case "checkMemberAccess":
++	String memName = mem.getName();
++	if ("checkMemberAccess".equals(memName)) {
+             return canBeCalledVirtual(mem, java.lang.SecurityManager.class);
 -        case "getContextClassLoader":
 +        } else if ("getContextClassLoader".equals(memName)) {
              return canBeCalledVirtual(mem, java.lang.Thread.class);
--        case "getPackage":
--        case "getPackages":
-+        } else if ("getPackage".equals(memName) ||
-+		   "getPackages".equals(memName)) {
-             return defc == java.lang.Package.class;
--        case "getParent":
--        case "getSystemClassLoader":
-+        } else if ("getParent".equals(memName) ||
-+		   "getSystemClassLoader".equals(memName)) {
-             return defc == java.lang.ClassLoader.class;
--        case "load":
--        case "loadLibrary":
-+        } else if ("load".equals(memName) ||
-+		   "loadLibrary".equals(memName)) {
-             if (defc == java.lang.Runtime.class)  return true;
-             if (defc == java.lang.System.class)  return true;
--            break;
--        case "getCallerClass":
-+        } else if ("getCallerClass".equals(memName)) {
-             if (defc == sun.reflect.Reflection.class)  return true;
-             if (defc == java.lang.System.class)  return true;
--            break;
--        case "getCallerClassLoader":
-+	} else if ("getCallerClassLoader".equals(memName)) {
-             return defc == java.lang.ClassLoader.class;
--        case "registerAsParallelCapable":
-+        } else if ("registerAsParallelCapable".equals(memName)) {
-             return canBeCalledVirtual(mem, java.lang.ClassLoader.class);
--        case "getProxyClass":
--        case "newProxyInstance":
-+        } else if ("getProxyClass".equals(memName) ||
-+		   "newProxyInstance".equals(memName)) {
-             return defc == java.lang.reflect.Proxy.class;
--        case "asInterfaceInstance":
-+        } else if ("asInterfaceInstance".equals(memName)) {
-             return defc == java.lang.invoke.MethodHandleProxies.class;
--        case "getBundle":
--        case "clearCache":
-+        } else if ("getBundle".equals(memName) ||
-+		   "clearCache".equals(memName)) {
-             return defc == java.util.ResourceBundle.class;
          }
          return false;
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/MethodHandleProxies.java openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandleProxies.java
---- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/MethodHandleProxies.java	2013-04-03 14:18:05.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandleProxies.java	2013-04-04 13:22:25.068506613 +0100
-@@ -268,14 +268,16 @@
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/MethodHandleProxies.java	2013-07-01 15:22:10.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandleProxies.java	2013-07-02 03:38:10.106273156 +0100
+@@ -269,14 +269,16 @@
  
      private static
      boolean isObjectMethod(Method m) {
@@ -414,7 +453,7 @@
              return (m.getReturnType() == boolean.class
                      && m.getParameterTypes().length == 1
                      && m.getParameterTypes()[0] == Object.class);
-@@ -286,12 +288,14 @@
+@@ -287,12 +289,14 @@
      private static
      Object callObjectMethod(Object self, Method m, Object[] args) {
          assert(isObjectMethod(m)) : m;
@@ -434,8 +473,8 @@
          }
          return null;
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/launcher/LauncherHelper.java openjdk-boot/jdk/src/share/classes/sun/launcher/LauncherHelper.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/launcher/LauncherHelper.java	2013-04-03 14:18:05.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/launcher/LauncherHelper.java	2013-04-04 13:22:25.068506613 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/launcher/LauncherHelper.java	2013-07-01 15:22:10.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/launcher/LauncherHelper.java	2013-07-02 03:38:10.106273156 +0100
 @@ -119,24 +119,20 @@
          String optStr = (opts.length > 1 && opts[1] != null)
                  ? opts[1].trim()
@@ -473,8 +512,8 @@
  
      /*
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/util/DisabledAlgorithmConstraints.java openjdk-boot/jdk/src/share/classes/sun/security/util/DisabledAlgorithmConstraints.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/util/DisabledAlgorithmConstraints.java	2013-04-03 14:18:05.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/util/DisabledAlgorithmConstraints.java	2013-04-04 13:22:25.080506807 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/util/DisabledAlgorithmConstraints.java	2013-07-01 15:22:10.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/util/DisabledAlgorithmConstraints.java	2013-07-02 03:38:10.106273156 +0100
 @@ -378,19 +378,23 @@
              GE;         // ">="
  
--- a/patches/boot/tobin.patch	Tue Jun 11 11:09:13 2013 +0100
+++ b/patches/boot/tobin.patch	Tue Jul 02 05:35:39 2013 +0100
@@ -1,38 +1,44 @@
-diff -Nru ../openjdk.orig/openjdk-boot/jdk/make/sun/xawt/Makefile openjdk-boot/jdk/make/sun/xawt/Makefile
---- ../openjdk.orig/openjdk-boot/jdk/make/sun/xawt/Makefile	2009-10-30 16:49:39.000000000 +0000
-+++ openjdk-boot/jdk/make/sun/xawt/Makefile	2009-10-30 16:59:16.000000000 +0000
-@@ -294,11 +294,7 @@
+diff -Nru openjdk-boot.orig/jdk/make/sun/awt/Makefile openjdk-boot/jdk/make/sun/awt/Makefile
+--- openjdk-boot.orig/jdk/make/sun/awt/Makefile	2013-06-25 16:52:46.810177400 +0100
++++ openjdk-boot/jdk/make/sun/awt/Makefile	2013-06-25 16:54:43.856035962 +0100
+@@ -245,16 +245,12 @@
+    $(ICONPATH)/security-icon-yellow48.png
  
  TEMPDIR_CLASSES = $(TEMPDIR)/classes
+-   
++
+ generated.clean:
+ 	$(RM) -r $(GEN_DIR)/*.java
+ 	$(RM) -r $(TEMPDIR)/.gen_icons   
  
--$(TEMPDIR_CLASSES)/sun/awt/X11/ToBin.class: ToBin.java
+-$(TEMPDIR_CLASSES)/sun/awt/ToBin.class: ToBin.java
 -	@$(prep-target)
 -	$(BOOT_JAVAC_CMD) -d $(TEMPDIR_CLASSES) $<
 -
--$(TEMPDIR)/.gen_icons: $(TEMPDIR_CLASSES)/sun/awt/X11/ToBin.class $(ICONS)
+-$(TEMPDIR)/.gen_icons: $(TEMPDIR_CLASSES)/sun/awt/ToBin.class $(ICONS)
 +$(TEMPDIR)/.gen_icons: $(ICONS)
  	$(prep-target)
  	for i in $(ICONS); do \
              filename=`basename $$i`; \
-@@ -308,20 +304,14 @@
- 	    $(ECHO) "package sun.awt.X11;" >> $$classname ; \
- 	    $(ECHO) "public class XAWTIcon32_$$name {" >> $$classname; \
- 	    $(ECHO) "public static int[] $$name = { " >> $$classname;  \
+@@ -264,20 +260,14 @@
+ 	    $(ECHO) "package sun.awt;" >> $$classname ; \
+ 	    $(ECHO) "public class AWTIcon32_$$name {" >> $$classname; \
+ 	    $(ECHO) "public final static int[] $$name = { " >> $$classname;  \
 -	    $(CAT) $$i | \
 -	      $(BOOT_JAVA_CMD) -cp $(TEMPDIR_CLASSES)  \
 -		-Djava.awt.headless=true \
--		sun.awt.X11.ToBin >> $$classname; \
+-		sun.awt.ToBin >> $$classname; \
 +	    $(ECHO) "0,0" >> $$classname ;  \
  	    $(ECHO) "}; }" >> $$classname;  \
-             classname=$(GEN_DIR)/XAWTIcon64_$$name.java; \
+             classname=$(GEN_DIR)/AWTIcon64_$$name.java; \
  	    $(RM) $$classname; \
- 	    $(ECHO) "package sun.awt.X11;" >> $$classname ; \
- 	    $(ECHO) "public class XAWTIcon64_$$name {" >> $$classname; \
- 	    $(ECHO) "public static long[] $$name = { " >> $$classname;  \
+ 	    $(ECHO) "package sun.awt;" >> $$classname ; \
+ 	    $(ECHO) "public class AWTIcon64_$$name {" >> $$classname; \
+ 	    $(ECHO) "public final static long[] $$name = { " >> $$classname;  \
 -	    $(CAT) $$i | \
 -	      $(BOOT_JAVA_CMD) -cp $(TEMPDIR_CLASSES)  \
 -		-Djava.awt.headless=true \
--		sun.awt.X11.ToBin >> $$classname; \
+-		sun.awt.ToBin >> $$classname; \
 +	    $(ECHO) "0,0" >> $$classname ;  \
  	    $(ECHO) "}; }" >> $$classname;  \
  	done
--- a/patches/rhino.patch	Tue Jun 11 11:09:13 2013 +0100
+++ b/patches/rhino.patch	Tue Jul 02 05:35:39 2013 +0100
@@ -1,6 +1,6 @@
 diff -Nru openjdk.orig/jdk/make/com/sun/Makefile openjdk/jdk/make/com/sun/Makefile
---- openjdk.orig/jdk/make/com/sun/Makefile	2012-03-12 17:25:51.000000000 +0000
-+++ openjdk/jdk/make/com/sun/Makefile	2012-03-18 18:29:38.835009659 +0000
+--- openjdk.orig/jdk/make/com/sun/Makefile	2013-07-01 15:22:10.000000000 +0100
++++ openjdk/jdk/make/com/sun/Makefile	2013-07-02 03:23:41.216478448 +0100
 @@ -31,13 +31,6 @@
  PRODUCT = sun
  include $(BUILDDIR)/common/Defs.gmk
@@ -19,14 +19,14 @@
  SUBDIRS_desktop    = image
  SUBDIRS_enterprise = crypto/provider jndi \
                       org rowset net/httpserver
--SUBDIRS_misc       = $(SCRIPT_SUBDIR) tracing servicetag nio demo
-+SUBDIRS_misc       = script tracing servicetag nio demo
+-SUBDIRS_misc       = $(SCRIPT_SUBDIR) tracing nio demo
++SUBDIRS_misc       = script tracing nio demo
  
  # Omit mirror since it's built with the apt tool.
  SUBDIRS_tools      = tools
 diff -Nru openjdk.orig/jdk/make/com/sun/script/Makefile openjdk/jdk/make/com/sun/script/Makefile
---- openjdk.orig/jdk/make/com/sun/script/Makefile	2012-03-12 17:25:51.000000000 +0000
-+++ openjdk/jdk/make/com/sun/script/Makefile	2012-03-18 18:29:38.843009789 +0000
+--- openjdk.orig/jdk/make/com/sun/script/Makefile	2013-07-01 15:22:10.000000000 +0100
++++ openjdk/jdk/make/com/sun/script/Makefile	2013-07-02 03:20:37.373563985 +0100
 @@ -31,6 +31,8 @@
  
  AUTO_FILES_JAVA_DIRS = com/sun/script
@@ -37,9 +37,9 @@
  # Files that need to be copied
  #
 diff -Nru openjdk.orig/jdk/make/common/Release.gmk openjdk/jdk/make/common/Release.gmk
---- openjdk.orig/jdk/make/common/Release.gmk	2012-03-12 17:25:51.000000000 +0000
-+++ openjdk/jdk/make/common/Release.gmk	2012-03-18 18:30:00.367359553 +0000
-@@ -821,6 +821,7 @@
+--- openjdk.orig/jdk/make/common/Release.gmk	2013-07-01 15:22:10.000000000 +0100
++++ openjdk/jdk/make/common/Release.gmk	2013-07-02 03:20:37.381564110 +0100
+@@ -838,6 +838,7 @@
  	$(CP) $(RT_JAR) $(JRE_IMAGE_DIR)/lib/rt.jar
  	$(CP) $(RESOURCES_JAR) $(JRE_IMAGE_DIR)/lib/resources.jar
  	$(CP) $(JSSE_JAR) $(JRE_IMAGE_DIR)/lib/jsse.jar
@@ -48,8 +48,8 @@
  	$(CP) $(JFR_JAR) $(JRE_IMAGE_DIR)/lib/jfr.jar
  endif
 diff -Nru openjdk.orig/jdk/src/share/classes/com/sun/script/javascript/ExternalScriptable.java openjdk/jdk/src/share/classes/com/sun/script/javascript/ExternalScriptable.java
---- openjdk.orig/jdk/src/share/classes/com/sun/script/javascript/ExternalScriptable.java	2012-03-12 17:25:51.000000000 +0000
-+++ openjdk/jdk/src/share/classes/com/sun/script/javascript/ExternalScriptable.java	2012-03-18 18:29:38.843009789 +0000
+--- openjdk.orig/jdk/src/share/classes/com/sun/script/javascript/ExternalScriptable.java	2013-07-01 15:22:10.000000000 +0100
++++ openjdk/jdk/src/share/classes/com/sun/script/javascript/ExternalScriptable.java	2013-07-02 03:20:37.381564110 +0100
 @@ -24,7 +24,7 @@
   */
  
@@ -60,8 +60,8 @@
  import java.util.*;
  
 diff -Nru openjdk.orig/jdk/src/share/classes/com/sun/script/javascript/JavaAdapter.java openjdk/jdk/src/share/classes/com/sun/script/javascript/JavaAdapter.java
---- openjdk.orig/jdk/src/share/classes/com/sun/script/javascript/JavaAdapter.java	2012-03-12 17:25:51.000000000 +0000
-+++ openjdk/jdk/src/share/classes/com/sun/script/javascript/JavaAdapter.java	2012-03-18 18:29:38.843009789 +0000
+--- openjdk.orig/jdk/src/share/classes/com/sun/script/javascript/JavaAdapter.java	2013-07-01 15:22:10.000000000 +0100
++++ openjdk/jdk/src/share/classes/com/sun/script/javascript/JavaAdapter.java	2013-07-02 03:20:37.385564173 +0100
 @@ -26,7 +26,7 @@
  package com.sun.script.javascript;
  
@@ -72,8 +72,8 @@
  /**
   * This class implements Rhino-like JavaAdapter to help implement a Java
 diff -Nru openjdk.orig/jdk/src/share/classes/com/sun/script/javascript/JSAdapter.java openjdk/jdk/src/share/classes/com/sun/script/javascript/JSAdapter.java
---- openjdk.orig/jdk/src/share/classes/com/sun/script/javascript/JSAdapter.java	2012-03-12 17:25:51.000000000 +0000
-+++ openjdk/jdk/src/share/classes/com/sun/script/javascript/JSAdapter.java	2012-03-18 18:29:38.843009789 +0000
+--- openjdk.orig/jdk/src/share/classes/com/sun/script/javascript/JSAdapter.java	2013-07-01 15:22:10.000000000 +0100
++++ openjdk/jdk/src/share/classes/com/sun/script/javascript/JSAdapter.java	2013-07-02 03:20:37.385564173 +0100
 @@ -25,7 +25,7 @@
  
  package com.sun.script.javascript;
@@ -84,8 +84,8 @@
  
  /**
 diff -Nru openjdk.orig/jdk/src/share/classes/com/sun/script/javascript/RhinoClassShutter.java openjdk/jdk/src/share/classes/com/sun/script/javascript/RhinoClassShutter.java
---- openjdk.orig/jdk/src/share/classes/com/sun/script/javascript/RhinoClassShutter.java	2012-03-12 17:25:51.000000000 +0000
-+++ openjdk/jdk/src/share/classes/com/sun/script/javascript/RhinoClassShutter.java	2012-03-18 18:29:38.843009789 +0000
+--- openjdk.orig/jdk/src/share/classes/com/sun/script/javascript/RhinoClassShutter.java	2013-07-01 15:22:10.000000000 +0100
++++ openjdk/jdk/src/share/classes/com/sun/script/javascript/RhinoClassShutter.java	2013-07-02 03:20:37.385564173 +0100
 @@ -26,7 +26,7 @@
  package com.sun.script.javascript;
  
@@ -96,8 +96,8 @@
  /**
   * This class prevents script access to certain sensitive classes.
 diff -Nru openjdk.orig/jdk/src/share/classes/com/sun/script/javascript/RhinoCompiledScript.java openjdk/jdk/src/share/classes/com/sun/script/javascript/RhinoCompiledScript.java
---- openjdk.orig/jdk/src/share/classes/com/sun/script/javascript/RhinoCompiledScript.java	2012-03-12 17:25:51.000000000 +0000
-+++ openjdk/jdk/src/share/classes/com/sun/script/javascript/RhinoCompiledScript.java	2012-03-18 18:29:38.843009789 +0000
+--- openjdk.orig/jdk/src/share/classes/com/sun/script/javascript/RhinoCompiledScript.java	2013-07-01 15:22:10.000000000 +0100
++++ openjdk/jdk/src/share/classes/com/sun/script/javascript/RhinoCompiledScript.java	2013-07-02 03:20:37.385564173 +0100
 @@ -25,7 +25,7 @@
  
  package com.sun.script.javascript;
@@ -108,8 +108,8 @@
  /**
   * Represents compiled JavaScript code.
 diff -Nru openjdk.orig/jdk/src/share/classes/com/sun/script/javascript/RhinoScriptEngineFactory.java openjdk/jdk/src/share/classes/com/sun/script/javascript/RhinoScriptEngineFactory.java
---- openjdk.orig/jdk/src/share/classes/com/sun/script/javascript/RhinoScriptEngineFactory.java	2012-03-12 17:25:51.000000000 +0000
-+++ openjdk/jdk/src/share/classes/com/sun/script/javascript/RhinoScriptEngineFactory.java	2012-03-18 18:29:38.843009789 +0000
+--- openjdk.orig/jdk/src/share/classes/com/sun/script/javascript/RhinoScriptEngineFactory.java	2013-07-01 15:22:10.000000000 +0100
++++ openjdk/jdk/src/share/classes/com/sun/script/javascript/RhinoScriptEngineFactory.java	2013-07-02 03:20:37.385564173 +0100
 @@ -26,7 +26,7 @@
  package com.sun.script.javascript;
  import javax.script.*;
@@ -120,8 +120,8 @@
  
  /**
 diff -Nru openjdk.orig/jdk/src/share/classes/com/sun/script/javascript/RhinoScriptEngine.java openjdk/jdk/src/share/classes/com/sun/script/javascript/RhinoScriptEngine.java
---- openjdk.orig/jdk/src/share/classes/com/sun/script/javascript/RhinoScriptEngine.java	2012-03-12 17:25:51.000000000 +0000
-+++ openjdk/jdk/src/share/classes/com/sun/script/javascript/RhinoScriptEngine.java	2012-03-18 18:29:38.843009789 +0000
+--- openjdk.orig/jdk/src/share/classes/com/sun/script/javascript/RhinoScriptEngine.java	2013-07-01 15:22:10.000000000 +0100
++++ openjdk/jdk/src/share/classes/com/sun/script/javascript/RhinoScriptEngine.java	2013-07-02 03:20:37.385564173 +0100
 @@ -26,7 +26,7 @@
  package com.sun.script.javascript;
  import com.sun.script.util.*;
@@ -132,8 +132,8 @@
  import java.io.*;
  import java.security.*;
 diff -Nru openjdk.orig/jdk/src/share/classes/com/sun/script/javascript/RhinoTopLevel.java openjdk/jdk/src/share/classes/com/sun/script/javascript/RhinoTopLevel.java
---- openjdk.orig/jdk/src/share/classes/com/sun/script/javascript/RhinoTopLevel.java	2012-03-12 17:25:51.000000000 +0000
-+++ openjdk/jdk/src/share/classes/com/sun/script/javascript/RhinoTopLevel.java	2012-03-18 18:29:38.843009789 +0000
+--- openjdk.orig/jdk/src/share/classes/com/sun/script/javascript/RhinoTopLevel.java	2013-07-01 15:22:10.000000000 +0100
++++ openjdk/jdk/src/share/classes/com/sun/script/javascript/RhinoTopLevel.java	2013-07-02 03:20:37.385564173 +0100
 @@ -25,7 +25,7 @@
  
  package com.sun.script.javascript;
@@ -144,8 +144,8 @@
  import javax.script.*;
  import java.security.AccessControlContext;
 diff -Nru openjdk.orig/jdk/src/share/classes/com/sun/script/javascript/RhinoWrapFactory.java openjdk/jdk/src/share/classes/com/sun/script/javascript/RhinoWrapFactory.java
---- openjdk.orig/jdk/src/share/classes/com/sun/script/javascript/RhinoWrapFactory.java	2012-03-12 17:25:51.000000000 +0000
-+++ openjdk/jdk/src/share/classes/com/sun/script/javascript/RhinoWrapFactory.java	2012-03-18 18:29:38.843009789 +0000
+--- openjdk.orig/jdk/src/share/classes/com/sun/script/javascript/RhinoWrapFactory.java	2013-07-01 15:22:10.000000000 +0100
++++ openjdk/jdk/src/share/classes/com/sun/script/javascript/RhinoWrapFactory.java	2013-07-02 03:20:37.385564173 +0100
 @@ -27,7 +27,7 @@
  
  import java.lang.reflect.*;
--- a/patches/systemtap_gc.patch	Tue Jun 11 11:09:13 2013 +0100
+++ b/patches/systemtap_gc.patch	Tue Jul 02 05:35:39 2013 +0100
@@ -1,6 +1,6 @@
 diff -Nru openjdk.orig/hotspot/src/share/vm/compiler/oopMap.cpp openjdk/hotspot/src/share/vm/compiler/oopMap.cpp
---- openjdk.orig/hotspot/src/share/vm/compiler/oopMap.cpp	2013-04-23 23:15:10.000000000 +0100
-+++ openjdk/hotspot/src/share/vm/compiler/oopMap.cpp	2013-04-24 09:29:58.431723500 +0100
+--- openjdk.orig/hotspot/src/share/vm/compiler/oopMap.cpp	2013-07-01 15:21:44.000000000 +0100
++++ openjdk/hotspot/src/share/vm/compiler/oopMap.cpp	2013-07-02 03:27:01.515655212 +0100
 @@ -33,9 +33,13 @@
  #include "memory/resourceArea.hpp"
  #include "runtime/frame.inline.hpp"
@@ -26,8 +26,8 @@
      // Delete entry
      delete entry;
 diff -Nru openjdk.orig/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp openjdk/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp
---- openjdk.orig/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp	2013-04-23 23:15:10.000000000 +0100
-+++ openjdk/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp	2013-04-24 09:29:58.439723629 +0100
+--- openjdk.orig/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp	2013-07-01 15:21:44.000000000 +0100
++++ openjdk/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp	2013-07-02 03:27:01.527655402 +0100
 @@ -59,6 +59,12 @@
  #include "runtime/vmThread.hpp"
  #include "services/memoryService.hpp"
@@ -41,7 +41,7 @@
  
  // statics
  CMSCollector* ConcurrentMarkSweepGeneration::_collector = NULL;
-@@ -1646,7 +1652,13 @@
+@@ -1647,7 +1653,13 @@
                                              size_t size,
                                              bool   tlab)
  {
@@ -56,8 +56,8 @@
  
  void CMSCollector::collect(bool   full,
 diff -Nru openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/g1MarkSweep.cpp openjdk/hotspot/src/share/vm/gc_implementation/g1/g1MarkSweep.cpp
---- openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/g1MarkSweep.cpp	2013-04-23 23:15:10.000000000 +0100
-+++ openjdk/hotspot/src/share/vm/gc_implementation/g1/g1MarkSweep.cpp	2013-04-24 09:29:58.439723629 +0100
+--- openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/g1MarkSweep.cpp	2013-07-01 15:21:44.000000000 +0100
++++ openjdk/hotspot/src/share/vm/gc_implementation/g1/g1MarkSweep.cpp	2013-07-02 03:27:01.527655402 +0100
 @@ -50,8 +50,13 @@
  #include "runtime/thread.hpp"
  #include "runtime/vmThread.hpp"
@@ -93,8 +93,8 @@
    // CHF: cheating for now!!!
    //  Universe::set_heap_capacity_at_last_gc(Universe::heap()->capacity());
 diff -Nru openjdk.orig/hotspot/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.cpp openjdk/hotspot/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.cpp
---- openjdk.orig/hotspot/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.cpp	2013-04-23 23:15:10.000000000 +0100
-+++ openjdk/hotspot/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.cpp	2013-04-24 09:29:58.443723700 +0100
+--- openjdk.orig/hotspot/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.cpp	2013-07-01 15:21:44.000000000 +0100
++++ openjdk/hotspot/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.cpp	2013-07-02 03:27:01.527655402 +0100
 @@ -43,8 +43,14 @@
  #include "runtime/java.hpp"
  #include "runtime/vmThread.hpp"
@@ -110,7 +110,7 @@
  PSYoungGen*  ParallelScavengeHeap::_young_gen = NULL;
  PSOldGen*    ParallelScavengeHeap::_old_gen = NULL;
  PSPermGen*   ParallelScavengeHeap::_perm_gen = NULL;
-@@ -811,7 +817,13 @@
+@@ -816,7 +822,13 @@
    }
  
    VM_ParallelGCSystemGC op(gc_count, full_gc_count, cause);
@@ -125,8 +125,8 @@
  
  // This interface assumes that it's being called by the
 diff -Nru openjdk.orig/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp openjdk/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp
---- openjdk.orig/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp	2013-04-23 23:15:10.000000000 +0100
-+++ openjdk/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp	2013-04-24 09:29:58.447723769 +0100
+--- openjdk.orig/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp	2013-07-01 15:21:44.000000000 +0100
++++ openjdk/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp	2013-07-02 03:28:20.476907895 +0100
 @@ -58,11 +58,18 @@
  #include "services/management.hpp"
  #include "services/memoryService.hpp"
@@ -144,9 +144,9 @@
 +#endif /* !USDT2 */
 +
  // All sizes are in HeapWords.
- const size_t ParallelCompactData::Log2RegionSize  = 9; // 512 words
+ const size_t ParallelCompactData::Log2RegionSize  = 16; // 64K words
  const size_t ParallelCompactData::RegionSize      = (size_t)1 << Log2RegionSize;
-@@ -440,6 +447,9 @@
+@@ -469,6 +476,9 @@
  
  void ParallelCompactData::clear()
  {
@@ -154,9 +154,9 @@
 +  HS_DTRACE_PROBE2(hotspot, gc__collection__ParallelCompact__clear, &_region_data, _region_data->data_location());
 +#endif /* !USDT2 */
    memset(_region_data, 0, _region_vspace->committed_size());
+   memset(_block_data, 0, _block_vspace->committed_size());
  }
- 
-@@ -1980,6 +1990,9 @@
+@@ -2012,6 +2022,9 @@
           "should be in vm thread");
  
    ParallelScavengeHeap* heap = gc_heap();
@@ -166,7 +166,7 @@
    GCCause::Cause gc_cause = heap->gc_cause();
    assert(!heap->is_gc_active(), "not reentrant");
  
-@@ -3397,6 +3410,9 @@
+@@ -3511,6 +3524,9 @@
    // past the end of the partial object entering the region (if any).
    HeapWord* const dest_addr = sd.partial_obj_end(dp_region);
    HeapWord* const new_top = _space_info[space_id].new_top();
@@ -177,8 +177,8 @@
    const size_t words = pointer_delta(new_top, dest_addr);
  
 diff -Nru openjdk.orig/hotspot/src/share/vm/gc_implementation/parallelScavenge/psScavenge.cpp openjdk/hotspot/src/share/vm/gc_implementation/parallelScavenge/psScavenge.cpp
---- openjdk.orig/hotspot/src/share/vm/gc_implementation/parallelScavenge/psScavenge.cpp	2013-04-23 23:15:10.000000000 +0100
-+++ openjdk/hotspot/src/share/vm/gc_implementation/parallelScavenge/psScavenge.cpp	2013-04-24 09:29:58.447723769 +0100
+--- openjdk.orig/hotspot/src/share/vm/gc_implementation/parallelScavenge/psScavenge.cpp	2013-07-01 15:21:44.000000000 +0100
++++ openjdk/hotspot/src/share/vm/gc_implementation/parallelScavenge/psScavenge.cpp	2013-07-02 03:27:01.527655402 +0100
 @@ -55,8 +55,17 @@
  #include "runtime/vmThread.hpp"
  #include "runtime/vm_operations.hpp"
@@ -234,8 +234,8 @@
    }
  
 diff -Nru openjdk.orig/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp openjdk/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp
---- openjdk.orig/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp	2013-04-23 23:15:10.000000000 +0100
-+++ openjdk/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp	2013-04-24 09:29:58.451723832 +0100
+--- openjdk.orig/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp	2013-07-01 15:21:44.000000000 +0100
++++ openjdk/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp	2013-07-02 03:27:01.531655466 +0100
 @@ -54,6 +54,12 @@
  #include "utilities/copy.hpp"
  #include "utilities/globalDefinitions.hpp"
@@ -271,8 +271,8 @@
      TASKQUEUE_STATS_ONLY(thread_state_set.print_termination_stats());
      TASKQUEUE_STATS_ONLY(thread_state_set.print_taskqueue_stats());
 diff -Nru openjdk.orig/hotspot/src/share/vm/memory/defNewGeneration.cpp openjdk/hotspot/src/share/vm/memory/defNewGeneration.cpp
---- openjdk.orig/hotspot/src/share/vm/memory/defNewGeneration.cpp	2013-04-23 23:15:10.000000000 +0100
-+++ openjdk/hotspot/src/share/vm/memory/defNewGeneration.cpp	2013-04-24 09:30:36.336328227 +0100
+--- openjdk.orig/hotspot/src/share/vm/memory/defNewGeneration.cpp	2013-07-01 15:21:44.000000000 +0100
++++ openjdk/hotspot/src/share/vm/memory/defNewGeneration.cpp	2013-07-02 03:27:01.531655466 +0100
 @@ -42,6 +42,7 @@
  #include "oops/oop.inline.hpp"
  #include "runtime/java.hpp"
@@ -315,8 +315,8 @@
    gc_tracer.report_tenuring_threshold(tenuring_threshold());
  
 diff -Nru openjdk.orig/hotspot/src/share/vm/memory/generation.cpp openjdk/hotspot/src/share/vm/memory/generation.cpp
---- openjdk.orig/hotspot/src/share/vm/memory/generation.cpp	2013-04-23 23:15:10.000000000 +0100
-+++ openjdk/hotspot/src/share/vm/memory/generation.cpp	2013-04-24 09:29:58.459723953 +0100
+--- openjdk.orig/hotspot/src/share/vm/memory/generation.cpp	2013-07-01 15:21:44.000000000 +0100
++++ openjdk/hotspot/src/share/vm/memory/generation.cpp	2013-07-02 03:27:01.531655466 +0100
 @@ -41,8 +41,14 @@
  #include "oops/oop.inline.hpp"
  #include "runtime/java.hpp"
@@ -347,8 +347,8 @@
    gc_timer->register_gc_end(os::elapsed_counter());
  
 diff -Nru openjdk.orig/hotspot/src/share/vm/memory/tenuredGeneration.cpp openjdk/hotspot/src/share/vm/memory/tenuredGeneration.cpp
---- openjdk.orig/hotspot/src/share/vm/memory/tenuredGeneration.cpp	2013-04-23 23:15:10.000000000 +0100
-+++ openjdk/hotspot/src/share/vm/memory/tenuredGeneration.cpp	2013-04-24 09:29:58.459723953 +0100
+--- openjdk.orig/hotspot/src/share/vm/memory/tenuredGeneration.cpp	2013-07-01 15:21:44.000000000 +0100
++++ openjdk/hotspot/src/share/vm/memory/tenuredGeneration.cpp	2013-07-02 03:27:01.531655466 +0100
 @@ -33,6 +33,12 @@
  #include "memory/tenuredGeneration.hpp"
  #include "oops/oop.inline.hpp"