changeset 2606:ff15cee90ed8

Update to u12 b03 from IcedTea7 forest. 2012-12-04 Andrew John Hughes <gnu_andrew@member.fsf.org> * patches/boot/ecj-opts.patch: Remove unused patch. * Makefile.am: (OPENJDK_VERSION): Set to b03. (JDK_UPDATE_VERSION): Set to u12. (CORBA_CHANGESET): Update to IcedTea7 forest head. (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. (ICEDTEA_BOOT_PATCHES): Add new patch. * hotspot.map: Update to latest HotSpot in IcedTea7 forest. * patches/boot/ecj-autoboxing.patch, * patches/boot/ecj-diamond.patch, * patches/boot/ecj-multicatch.patch, * patches/boot/ecj-stringswitch.patch, * patches/boot/ecj-trywithresources.patch: Updated to handle latest updates, mainly in java.lang.invoke but also in sun.print. * patches/boot/ecj-odd.patch: New patch due to Throwable being thrown without a throws clause; odd that this passes with javac. * patches/systemtap_gc.patch: Regenerated.
author Andrew John Hughes <gnu_andrew@member.fsf.org>
date Tue, 04 Dec 2012 11:00:41 +0000
parents 0c27c75ce37c
children e4795c01aba3
files ChangeLog Makefile.am hotspot.map patches/boot/ecj-autoboxing.patch patches/boot/ecj-diamond.patch patches/boot/ecj-multicatch.patch patches/boot/ecj-odd.patch patches/boot/ecj-opts.patch patches/boot/ecj-stringswitch.patch patches/boot/ecj-trywithresources.patch patches/systemtap_gc.patch
diffstat 11 files changed, 1544 insertions(+), 1051 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Thu Nov 29 04:33:36 2012 +0000
+++ b/ChangeLog	Tue Dec 04 11:00:41 2012 +0000
@@ -1,3 +1,37 @@
+2012-12-04  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+	* patches/boot/ecj-opts.patch:
+	Remove unused patch.
+	* Makefile.am:
+	(OPENJDK_VERSION): Set to b03.
+	(JDK_UPDATE_VERSION): Set to u12.
+	(CORBA_CHANGESET): Update to IcedTea7 forest head.
+	(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.
+	(ICEDTEA_BOOT_PATCHES): Add new patch.
+	* hotspot.map:
+	Update to latest HotSpot in IcedTea7 forest.
+	* patches/boot/ecj-autoboxing.patch,
+	* patches/boot/ecj-diamond.patch,
+	* patches/boot/ecj-multicatch.patch,
+	* patches/boot/ecj-stringswitch.patch,
+	* patches/boot/ecj-trywithresources.patch:
+	Updated to handle latest updates, mainly
+	in java.lang.invoke but also in sun.print.
+	* patches/boot/ecj-odd.patch:
+	New patch due to Throwable being thrown without
+	a throws clause; odd that this passes with javac.
+	* patches/systemtap_gc.patch: Regenerated.
+
 2012-11-29  Andrew John Hughes  <gnu_andrew@member.fsf.org>
 
 	* NEWS: Updated.
--- a/Makefile.am	Thu Nov 29 04:33:36 2012 +0000
+++ b/Makefile.am	Tue Dec 04 11:00:41 2012 +0000
@@ -1,22 +1,22 @@
 # Dependencies
 
-OPENJDK_VERSION = b09
-JDK_UPDATE_VERSION = 10
+OPENJDK_VERSION = b03
+JDK_UPDATE_VERSION = 12
 COMBINED_VERSION = $(JDK_UPDATE_VERSION)-$(OPENJDK_VERSION)
 
-CORBA_CHANGESET = 1285389d6969
-JAXP_CHANGESET = 8e9679984e79
-JAXWS_CHANGESET = bbd4ecb4bbcb
-JDK_CHANGESET = c6a90ff85ffc
-LANGTOOLS_CHANGESET = 79e875e2dca3
-OPENJDK_CHANGESET = 0fa8b0b4ca26
+CORBA_CHANGESET = c76fd939af52
+JAXP_CHANGESET = ff514c638d9c
+JAXWS_CHANGESET = c24ace5f1fd8
+JDK_CHANGESET = b10e1311a206
+LANGTOOLS_CHANGESET = a4f9ef26ecb2
+OPENJDK_CHANGESET = af7f3ffa51f0
 
-CORBA_SHA256SUM = 880683c950e833a792d4c36059af4f8a4a50dc8fb9d773831bd9cd4578f2f2f7
-JAXP_SHA256SUM = ead7718f52579c1c096ed7e853582b2622ad7e64afbf9d360eae6af55de58377
-JAXWS_SHA256SUM = 78d4e79dc8b08bfd5940f02990e9664c296242dfcef4b5e820f93744e98e7e2d
-JDK_SHA256SUM = 014ec54f8315f4511cfb7a0bf71ef5ecd05d7ac879063fe0f50f570fba3b8981
-LANGTOOLS_SHA256SUM = 42444bf6a314d1914013b826d8137d6edf9843c14011cec5a4761289d1846a3d
-OPENJDK_SHA256SUM = acab74106ee2670962b048cd4f1b7cfbb0f55340477cd625b7cb40c6bc99036c
+CORBA_SHA256SUM = 66b69e1c9ef33fd241e7aafc718acc23c690961644fed1d13c85b6a29cfecf7b
+JAXP_SHA256SUM = b409e5656e6194c4d559d435e5ab0ec4ce2723c12e958f9ba429478719fe2db4
+JAXWS_SHA256SUM = f1732dca7254e8f3c00116eb2cd1fdcd44b6d1da1b19537f23e610acad6764b4
+JDK_SHA256SUM = 654a1fd889d17a8a6fd0a6f3fda697f18e7a0d81a4baff45f3c96014524bbb54
+LANGTOOLS_SHA256SUM = 224feb6a121c3da9a9e4c592c966bf9f2bfab589bb614419d4ca176248f08bc8
+OPENJDK_SHA256SUM = 21aaf8e746fcf51535b9e42b9ab0546c4de2dd3d1846d10b9123f16939f0ca6b
 
 CACAO_VERSION = a567bcb7f589
 CACAO_SHA256SUM = d49f79debc131a5694cae6ab3ba2864e7f3249ee8d9dc09aae8afdd4dc6b09f9
@@ -336,7 +336,8 @@
 	patches/boot/ecj-multicatch.patch \
 	patches/boot/ecj-trywithresources.patch \
 	patches/boot/ecj-autoboxing.patch \
-	patches/boot/xsltproc.patch
+	patches/boot/xsltproc.patch \
+	patches/boot/ecj-odd.patch
 
 if !WITH_PAX
 ICEDTEA_BOOT_PATCHES += patches/boot/test_gamma.patch
--- a/hotspot.map	Thu Nov 29 04:33:36 2012 +0000
+++ b/hotspot.map	Tue Dec 04 11:00:41 2012 +0000
@@ -1,3 +1,3 @@
 # version url changeset sha256sum
-default http://icedtea.classpath.org/hg/icedtea7-forest/hotspot 807df5d59cd5 f1059d749d50cd73c034289517c26d6f0012bbc3d49c9e364af61e50eea3aee0
+default http://icedtea.classpath.org/hg/icedtea7-forest/hotspot 2f82d59ddf61 1d38e0229d4318b51a16242f9091547e20e58065c9f7cc2b1dd7f2d5dcfa2a20
 zero http://icedtea.classpath.org/hg/release/icedtea7-forest-2.1/hotspot a456d0771ba0 09a64fca0beff0759ef1b461d63ed6a00e43032972781bb3a55e49d8b93f67d0
--- a/patches/boot/ecj-autoboxing.patch	Thu Nov 29 04:33:36 2012 +0000
+++ b/patches/boot/ecj-autoboxing.patch	Tue Dec 04 11:00:41 2012 +0000
@@ -1,7 +1,7 @@
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/CallSite.java openjdk-boot/jdk/src/share/classes/java/lang/invoke/CallSite.java
---- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/CallSite.java	2011-07-12 12:43:47.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/CallSite.java	2011-07-12 15:12:13.210932096 +0100
-@@ -329,7 +329,7 @@
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/CallSite.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/CallSite.java	2012-11-30 15:01:56.540165063 +0000
+@@ -303,7 +303,7 @@
  
      private static Object maybeReBox(Object x) {
          if (x instanceof Integer) {
@@ -10,261 +10,10 @@
              if (xi == (byte) xi)
                  x = xi;  // must rebox; see JLS 5.1.7
          }
-diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/FromGeneric.java openjdk-boot/jdk/src/share/classes/java/lang/invoke/FromGeneric.java
---- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/FromGeneric.java	2011-06-11 00:38:08.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/FromGeneric.java	2011-07-12 15:12:13.210932096 +0100
-@@ -505,10 +505,10 @@
-         protected A0 makeInstance(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t)
-                         { return new A0(e, i, c, t); }
-         protected Object invoke_L0() throws Throwable { return convert_L((Object)invoker.invokeExact(target)); }
--        protected Object invoke_I0() throws Throwable { return convert_I((int)   invoker.invokeExact(target)); }
--        protected Object invoke_J0() throws Throwable { return convert_J((long)  invoker.invokeExact(target)); }
--        protected Object invoke_F0() throws Throwable { return convert_F((float) invoker.invokeExact(target)); }
--        protected Object invoke_D0() throws Throwable { return convert_D((double)invoker.invokeExact(target)); }
-+        protected Object invoke_I0() throws Throwable { return convert_I((Integer)   invoker.invokeExact(target)); }
-+        protected Object invoke_J0() throws Throwable { return convert_J((Long)  invoker.invokeExact(target)); }
-+        protected Object invoke_F0() throws Throwable { return convert_F((Float) invoker.invokeExact(target)); }
-+        protected Object invoke_D0() throws Throwable { return convert_D((Double)invoker.invokeExact(target)); }
-     }
-     static class A1 extends Adapter {
-         protected A1(MethodHandle entryPoint) { super(entryPoint); }  // to build prototype
-@@ -517,10 +517,10 @@
-         protected A1 makeInstance(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t)
-                         { return new A1(e, i, c, t); }
-         protected Object invoke_L1(Object a0) throws Throwable { return convert_L((Object)invoker.invokeExact(target, a0)); }
--        protected Object invoke_I1(Object a0) throws Throwable { return convert_I((int)   invoker.invokeExact(target, a0)); }
--        protected Object invoke_J1(Object a0) throws Throwable { return convert_J((long)  invoker.invokeExact(target, a0)); }
--        protected Object invoke_F1(Object a0) throws Throwable { return convert_F((float) invoker.invokeExact(target, a0)); }
--        protected Object invoke_D1(Object a0) throws Throwable { return convert_D((double)invoker.invokeExact(target, a0)); }
-+        protected Object invoke_I1(Object a0) throws Throwable { return convert_I((Integer)   invoker.invokeExact(target, a0)); }
-+        protected Object invoke_J1(Object a0) throws Throwable { return convert_J((Long)  invoker.invokeExact(target, a0)); }
-+        protected Object invoke_F1(Object a0) throws Throwable { return convert_F((Float) invoker.invokeExact(target, a0)); }
-+        protected Object invoke_D1(Object a0) throws Throwable { return convert_D((Double)invoker.invokeExact(target, a0)); }
-     }
-     static class A2 extends Adapter {
-         protected A2(MethodHandle entryPoint) { super(entryPoint); }  // to build prototype
-@@ -529,10 +529,10 @@
-         protected A2 makeInstance(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t)
-                         { return new A2(e, i, c, t); }
-         protected Object invoke_L2(Object a0, Object a1) throws Throwable { return convert_L((Object)invoker.invokeExact(target, a0, a1)); }
--        protected Object invoke_I2(Object a0, Object a1) throws Throwable { return convert_I((int)   invoker.invokeExact(target, a0, a1)); }
--        protected Object invoke_J2(Object a0, Object a1) throws Throwable { return convert_J((long)  invoker.invokeExact(target, a0, a1)); }
--        protected Object invoke_F2(Object a0, Object a1) throws Throwable { return convert_F((float) invoker.invokeExact(target, a0, a1)); }
--        protected Object invoke_D2(Object a0, Object a1) throws Throwable { return convert_D((double)invoker.invokeExact(target, a0, a1)); }
-+        protected Object invoke_I2(Object a0, Object a1) throws Throwable { return convert_I((Integer)   invoker.invokeExact(target, a0, a1)); }
-+        protected Object invoke_J2(Object a0, Object a1) throws Throwable { return convert_J((Long)  invoker.invokeExact(target, a0, a1)); }
-+        protected Object invoke_F2(Object a0, Object a1) throws Throwable { return convert_F((Float) invoker.invokeExact(target, a0, a1)); }
-+        protected Object invoke_D2(Object a0, Object a1) throws Throwable { return convert_D((Double)invoker.invokeExact(target, a0, a1)); }
-     }
-     static class A3 extends Adapter {
-         protected A3(MethodHandle entryPoint) { super(entryPoint); }  // to build prototype
-@@ -541,10 +541,10 @@
-         protected A3 makeInstance(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t)
-                         { return new A3(e, i, c, t); }
-         protected Object invoke_L3(Object a0, Object a1, Object a2) throws Throwable { return convert_L((Object)invoker.invokeExact(target, a0, a1, a2)); }
--        protected Object invoke_I3(Object a0, Object a1, Object a2) throws Throwable { return convert_I((int)   invoker.invokeExact(target, a0, a1, a2)); }
--        protected Object invoke_J3(Object a0, Object a1, Object a2) throws Throwable { return convert_J((long)  invoker.invokeExact(target, a0, a1, a2)); }
--        protected Object invoke_F3(Object a0, Object a1, Object a2) throws Throwable { return convert_F((float) invoker.invokeExact(target, a0, a1, a2)); }
--        protected Object invoke_D3(Object a0, Object a1, Object a2) throws Throwable { return convert_D((double)invoker.invokeExact(target, a0, a1, a2)); }
-+        protected Object invoke_I3(Object a0, Object a1, Object a2) throws Throwable { return convert_I((Integer)   invoker.invokeExact(target, a0, a1, a2)); }
-+        protected Object invoke_J3(Object a0, Object a1, Object a2) throws Throwable { return convert_J((Long)  invoker.invokeExact(target, a0, a1, a2)); }
-+        protected Object invoke_F3(Object a0, Object a1, Object a2) throws Throwable { return convert_F((Float) invoker.invokeExact(target, a0, a1, a2)); }
-+        protected Object invoke_D3(Object a0, Object a1, Object a2) throws Throwable { return convert_D((Double)invoker.invokeExact(target, a0, a1, a2)); }
-     }
-     static class A4 extends Adapter {
-         protected A4(MethodHandle entryPoint) { super(entryPoint); }  // to build prototype
-@@ -553,10 +553,10 @@
-         protected A4 makeInstance(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t)
-                         { return new A4(e, i, c, t); }
-         protected Object invoke_L4(Object a0, Object a1, Object a2, Object a3) throws Throwable { return convert_L((Object)invoker.invokeExact(target, a0, a1, a2, a3)); }
--        protected Object invoke_I4(Object a0, Object a1, Object a2, Object a3) throws Throwable { return convert_I((int)   invoker.invokeExact(target, a0, a1, a2, a3)); }
--        protected Object invoke_J4(Object a0, Object a1, Object a2, Object a3) throws Throwable { return convert_J((long)  invoker.invokeExact(target, a0, a1, a2, a3)); }
--        protected Object invoke_F4(Object a0, Object a1, Object a2, Object a3) throws Throwable { return convert_F((float) invoker.invokeExact(target, a0, a1, a2, a3)); }
--        protected Object invoke_D4(Object a0, Object a1, Object a2, Object a3) throws Throwable { return convert_D((double)invoker.invokeExact(target, a0, a1, a2, a3)); }
-+        protected Object invoke_I4(Object a0, Object a1, Object a2, Object a3) throws Throwable { return convert_I((Integer)   invoker.invokeExact(target, a0, a1, a2, a3)); }
-+        protected Object invoke_J4(Object a0, Object a1, Object a2, Object a3) throws Throwable { return convert_J((Long)  invoker.invokeExact(target, a0, a1, a2, a3)); }
-+        protected Object invoke_F4(Object a0, Object a1, Object a2, Object a3) throws Throwable { return convert_F((Float) invoker.invokeExact(target, a0, a1, a2, a3)); }
-+        protected Object invoke_D4(Object a0, Object a1, Object a2, Object a3) throws Throwable { return convert_D((Double)invoker.invokeExact(target, a0, a1, a2, a3)); }
-     }
-     static class A5 extends Adapter {
-         protected A5(MethodHandle entryPoint) { super(entryPoint); }  // to build prototype
-@@ -565,10 +565,10 @@
-         protected A5 makeInstance(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t)
-                         { return new A5(e, i, c, t); }
-         protected Object invoke_L5(Object a0, Object a1, Object a2, Object a3, Object a4) throws Throwable { return convert_L((Object)invoker.invokeExact(target, a0, a1, a2, a3, a4)); }
--        protected Object invoke_I5(Object a0, Object a1, Object a2, Object a3, Object a4) throws Throwable { return convert_I((int)   invoker.invokeExact(target, a0, a1, a2, a3, a4)); }
--        protected Object invoke_J5(Object a0, Object a1, Object a2, Object a3, Object a4) throws Throwable { return convert_J((long)  invoker.invokeExact(target, a0, a1, a2, a3, a4)); }
--        protected Object invoke_F5(Object a0, Object a1, Object a2, Object a3, Object a4) throws Throwable { return convert_F((float) invoker.invokeExact(target, a0, a1, a2, a3, a4)); }
--        protected Object invoke_D5(Object a0, Object a1, Object a2, Object a3, Object a4) throws Throwable { return convert_D((double)invoker.invokeExact(target, a0, a1, a2, a3, a4)); }
-+        protected Object invoke_I5(Object a0, Object a1, Object a2, Object a3, Object a4) throws Throwable { return convert_I((Integer)   invoker.invokeExact(target, a0, a1, a2, a3, a4)); }
-+        protected Object invoke_J5(Object a0, Object a1, Object a2, Object a3, Object a4) throws Throwable { return convert_J((Long)  invoker.invokeExact(target, a0, a1, a2, a3, a4)); }
-+        protected Object invoke_F5(Object a0, Object a1, Object a2, Object a3, Object a4) throws Throwable { return convert_F((Float) invoker.invokeExact(target, a0, a1, a2, a3, a4)); }
-+        protected Object invoke_D5(Object a0, Object a1, Object a2, Object a3, Object a4) throws Throwable { return convert_D((Double)invoker.invokeExact(target, a0, a1, a2, a3, a4)); }
-     }
-     static class A6 extends Adapter {
-         protected A6(MethodHandle entryPoint) { super(entryPoint); }  // to build prototype
-@@ -577,10 +577,10 @@
-         protected A6 makeInstance(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t)
-                         { return new A6(e, i, c, t); }
-         protected Object invoke_L6(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5) throws Throwable { return convert_L((Object)invoker.invokeExact(target, a0, a1, a2, a3, a4, a5)); }
--        protected Object invoke_I6(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5) throws Throwable { return convert_I((int)   invoker.invokeExact(target, a0, a1, a2, a3, a4, a5)); }
--        protected Object invoke_J6(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5) throws Throwable { return convert_J((long)  invoker.invokeExact(target, a0, a1, a2, a3, a4, a5)); }
--        protected Object invoke_F6(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5) throws Throwable { return convert_F((float) invoker.invokeExact(target, a0, a1, a2, a3, a4, a5)); }
--        protected Object invoke_D6(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5) throws Throwable { return convert_D((double)invoker.invokeExact(target, a0, a1, a2, a3, a4, a5)); }
-+        protected Object invoke_I6(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5) throws Throwable { return convert_I((Integer)   invoker.invokeExact(target, a0, a1, a2, a3, a4, a5)); }
-+        protected Object invoke_J6(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5) throws Throwable { return convert_J((Long)  invoker.invokeExact(target, a0, a1, a2, a3, a4, a5)); }
-+        protected Object invoke_F6(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5) throws Throwable { return convert_F((Float) invoker.invokeExact(target, a0, a1, a2, a3, a4, a5)); }
-+        protected Object invoke_D6(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5) throws Throwable { return convert_D((Double)invoker.invokeExact(target, a0, a1, a2, a3, a4, a5)); }
-     }
-     static class A7 extends Adapter {
-         protected A7(MethodHandle entryPoint) { super(entryPoint); }  // to build prototype
-@@ -589,10 +589,10 @@
-         protected A7 makeInstance(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t)
-                         { return new A7(e, i, c, t); }
-         protected Object invoke_L7(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6) throws Throwable { return convert_L((Object)invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6)); }
--        protected Object invoke_I7(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6) throws Throwable { return convert_I((int)   invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6)); }
--        protected Object invoke_J7(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6) throws Throwable { return convert_J((long)  invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6)); }
--        protected Object invoke_F7(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6) throws Throwable { return convert_F((float) invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6)); }
--        protected Object invoke_D7(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6) throws Throwable { return convert_D((double)invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6)); }
-+        protected Object invoke_I7(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6) throws Throwable { return convert_I((Integer)   invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6)); }
-+        protected Object invoke_J7(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6) throws Throwable { return convert_J((Long)  invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6)); }
-+        protected Object invoke_F7(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6) throws Throwable { return convert_F((Float) invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6)); }
-+        protected Object invoke_D7(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6) throws Throwable { return convert_D((Double)invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6)); }
-     }
-     static class A8 extends Adapter {
-         protected A8(MethodHandle entryPoint) { super(entryPoint); }  // to build prototype
-@@ -601,10 +601,10 @@
-         protected A8 makeInstance(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t)
-                         { return new A8(e, i, c, t); }
-         protected Object invoke_L8(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7) throws Throwable { return convert_L((Object)invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7)); }
--        protected Object invoke_I8(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7) throws Throwable { return convert_I((int)   invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7)); }
--        protected Object invoke_J8(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7) throws Throwable { return convert_J((long)  invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7)); }
--        protected Object invoke_F8(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7) throws Throwable { return convert_F((float) invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7)); }
--        protected Object invoke_D8(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7) throws Throwable { return convert_D((double)invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7)); }
-+        protected Object invoke_I8(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7) throws Throwable { return convert_I((Integer)   invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7)); }
-+        protected Object invoke_J8(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7) throws Throwable { return convert_J((Long)  invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7)); }
-+        protected Object invoke_F8(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7) throws Throwable { return convert_F((Float) invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7)); }
-+        protected Object invoke_D8(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7) throws Throwable { return convert_D((Double)invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7)); }
-     }
-     static class A9 extends Adapter {
-         protected A9(MethodHandle entryPoint) { super(entryPoint); }  // to build prototype
-@@ -613,10 +613,10 @@
-         protected A9 makeInstance(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t)
-                         { return new A9(e, i, c, t); }
-         protected Object invoke_L9(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7, Object a8) throws Throwable { return convert_L((Object)invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7, a8)); }
--        protected Object invoke_I9(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7, Object a8) throws Throwable { return convert_I((int)   invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7, a8)); }
--        protected Object invoke_J9(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7, Object a8) throws Throwable { return convert_J((long)  invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7, a8)); }
--        protected Object invoke_F9(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7, Object a8) throws Throwable { return convert_F((float) invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7, a8)); }
--        protected Object invoke_D9(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7, Object a8) throws Throwable { return convert_D((double)invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7, a8)); }
-+        protected Object invoke_I9(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7, Object a8) throws Throwable { return convert_I((Integer)   invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7, a8)); }
-+        protected Object invoke_J9(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7, Object a8) throws Throwable { return convert_J((Long)  invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7, a8)); }
-+        protected Object invoke_F9(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7, Object a8) throws Throwable { return convert_F((Float) invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7, a8)); }
-+        protected Object invoke_D9(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7, Object a8) throws Throwable { return convert_D((Double)invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7, a8)); }
-     }
-     static class A10 extends Adapter {
-         protected A10(MethodHandle entryPoint) { super(entryPoint); }  // to build prototype
-@@ -625,9 +625,9 @@
-         protected A10 makeInstance(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t)
-                         { return new A10(e, i, c, t); }
-         protected Object invoke_L10(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7, Object a8, Object a9) throws Throwable { return convert_L((Object)invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9)); }
--        protected Object invoke_I10(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7, Object a8, Object a9) throws Throwable { return convert_I((int)   invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9)); }
--        protected Object invoke_J10(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7, Object a8, Object a9) throws Throwable { return convert_J((long)  invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9)); }
--        protected Object invoke_F10(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7, Object a8, Object a9) throws Throwable { return convert_F((float) invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9)); }
--        protected Object invoke_D10(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7, Object a8, Object a9) throws Throwable { return convert_D((double)invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9)); }
-+        protected Object invoke_I10(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7, Object a8, Object a9) throws Throwable { return convert_I((Integer)   invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9)); }
-+        protected Object invoke_J10(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7, Object a8, Object a9) throws Throwable { return convert_J((Long)  invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9)); }
-+        protected Object invoke_F10(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7, Object a8, Object a9) throws Throwable { return convert_F((Float) invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9)); }
-+        protected Object invoke_D10(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7, Object a8, Object a9) throws Throwable { return convert_D((Double)invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9)); }
-     }
- }
-diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/MethodHandleImpl.java openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandleImpl.java
---- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/MethodHandleImpl.java	2011-07-12 12:43:47.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandleImpl.java	2011-07-12 15:12:13.214932157 +0100
-@@ -956,52 +956,52 @@
-             return addTypeString(target, this);
-         }
-         private Object invoke_V(Object... av) throws Throwable {
--            if ((boolean) test.invokeExact(av))
-+            if ((Boolean) test.invokeExact(av))
-                 return target.invokeExact(av);
-             return fallback.invokeExact(av);
-         }
-         private Object invoke_L0() throws Throwable {
--            if ((boolean) test.invokeExact())
-+            if ((Boolean) test.invokeExact())
-                 return target.invokeExact();
-             return fallback.invokeExact();
-         }
-         private Object invoke_L1(Object a0) throws Throwable {
--            if ((boolean) test.invokeExact(a0))
-+            if ((Boolean) test.invokeExact(a0))
-                 return target.invokeExact(a0);
-             return fallback.invokeExact(a0);
-         }
-         private Object invoke_L2(Object a0, Object a1) throws Throwable {
--            if ((boolean) test.invokeExact(a0, a1))
-+            if ((Boolean) test.invokeExact(a0, a1))
-                 return target.invokeExact(a0, a1);
-             return fallback.invokeExact(a0, a1);
-         }
-         private Object invoke_L3(Object a0, Object a1, Object a2) throws Throwable {
--            if ((boolean) test.invokeExact(a0, a1, a2))
-+            if ((Boolean) test.invokeExact(a0, a1, a2))
-                 return target.invokeExact(a0, a1, a2);
-             return fallback.invokeExact(a0, a1, a2);
-         }
-         private Object invoke_L4(Object a0, Object a1, Object a2, Object a3) throws Throwable {
--            if ((boolean) test.invokeExact(a0, a1, a2, a3))
-+            if ((Boolean) test.invokeExact(a0, a1, a2, a3))
-                 return target.invokeExact(a0, a1, a2, a3);
-             return fallback.invokeExact(a0, a1, a2, a3);
-         }
-         private Object invoke_L5(Object a0, Object a1, Object a2, Object a3, Object a4) throws Throwable {
--            if ((boolean) test.invokeExact(a0, a1, a2, a3, a4))
-+            if ((Boolean) test.invokeExact(a0, a1, a2, a3, a4))
-                 return target.invokeExact(a0, a1, a2, a3, a4);
-             return fallback.invokeExact(a0, a1, a2, a3, a4);
-         }
-         private Object invoke_L6(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5) throws Throwable {
--            if ((boolean) test.invokeExact(a0, a1, a2, a3, a4, a5))
-+            if ((Boolean) test.invokeExact(a0, a1, a2, a3, a4, a5))
-                 return target.invokeExact(a0, a1, a2, a3, a4, a5);
-             return fallback.invokeExact(a0, a1, a2, a3, a4, a5);
-         }
-         private Object invoke_L7(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6) throws Throwable {
--            if ((boolean) test.invokeExact(a0, a1, a2, a3, a4, a5, a6))
-+            if ((Boolean) test.invokeExact(a0, a1, a2, a3, a4, a5, a6))
-                 return target.invokeExact(a0, a1, a2, a3, a4, a5, a6);
-             return fallback.invokeExact(a0, a1, a2, a3, a4, a5, a6);
-         }
-         private Object invoke_L8(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7) throws Throwable {
--            if ((boolean) test.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7))
-+            if ((Boolean) test.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7))
-                 return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7);
-             return fallback.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7);
-         }
-diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/ToGeneric.java openjdk-boot/jdk/src/share/classes/java/lang/invoke/ToGeneric.java
---- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/ToGeneric.java	2011-06-11 00:38:08.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/ToGeneric.java	2011-07-12 15:12:13.214932157 +0100
-@@ -394,10 +394,10 @@
- 
-         // Code to run when the generic target has finished and produced a value.
-         protected Object return_L(Object res) throws Throwable { return (Object)convert.invokeExact(res); }
--        protected int    return_I(Object res) throws Throwable { return (int)   convert.invokeExact(res); }
--        protected long   return_J(Object res) throws Throwable { return (long)  convert.invokeExact(res); }
--        protected float  return_F(Object res) throws Throwable { return (float) convert.invokeExact(res); }
--        protected double return_D(Object res) throws Throwable { return (double)convert.invokeExact(res); }
-+        protected int    return_I(Object res) throws Throwable { return (Integer)   convert.invokeExact(res); }
-+        protected long   return_J(Object res) throws Throwable { return (Long)  convert.invokeExact(res); }
-+        protected float  return_F(Object res) throws Throwable { return (Float) convert.invokeExact(res); }
-+        protected double return_D(Object res) throws Throwable { return (Double)convert.invokeExact(res); }
- 
-         static private final String CLASS_PREFIX; // "java.lang.invoke.ToGeneric$"
-         static {
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/invoke/util/ValueConversions.java openjdk-boot/jdk/src/share/classes/sun/invoke/util/ValueConversions.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/invoke/util/ValueConversions.java	2011-07-12 14:52:51.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/invoke/util/ValueConversions.java	2011-07-12 15:12:50.499499088 +0100
-@@ -223,9 +223,9 @@
+--- openjdk-boot.orig/jdk/src/share/classes/sun/invoke/util/ValueConversions.java	2012-11-30 14:59:33.053919817 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/invoke/util/ValueConversions.java	2012-11-30 15:02:05.216300867 +0000
+@@ -191,9 +191,9 @@
          if (x instanceof Number) {
              res = (Number) x;
          } else if (x instanceof Boolean) {
@@ -276,12 +25,184 @@
          } else {
              // this will fail with the required ClassCastException:
              res = (Number) x;
-@@ -386,7 +386,7 @@
- 
-     static int unboxRawInteger(Object x) {
+@@ -212,52 +212,52 @@
+      */
+     public static int widenSubword(Object x) {
          if (x instanceof Integer)
 -            return (int) x;
 +            return (Integer) x;
+         else if (x instanceof Boolean)
+-            return fromBoolean((boolean) x);
++            return fromBoolean((Boolean) x);
+         else if (x instanceof Character)
+-            return (char) x;
++            return (Character) x;
+         else if (x instanceof Short)
+-            return (short) x;
++            return (Short) x;
+         else if (x instanceof Byte)
+-            return (byte) x;
++            return (Byte) x;
          else
-             return (int) unboxLong(x, false);
+             // Fail with a ClassCastException.
+-            return (int) x;
++            return (Integer) x;
+     }
+ 
+     /// Converting primitives to references
+ 
+     static Integer boxInteger(int x) {
+-        return x;
++      return Integer.valueOf(x);
+     }
+ 
+     static Byte boxByte(byte x) {
+-        return x;
++      return Byte.valueOf(x);
+     }
+ 
+     static Short boxShort(short x) {
+-        return x;
++      return Short.valueOf(x);
+     }
+ 
+     static Boolean boxBoolean(boolean x) {
+-        return x;
++      return Boolean.valueOf(x);
+     }
+ 
+     static Character boxCharacter(char x) {
+-        return x;
++      return Character.valueOf(x);
+     }
+ 
+     static Long boxLong(long x) {
+-        return x;
++      return Long.valueOf(x);
+     }
+ 
+     static Float boxFloat(float x) {
+-        return x;
++      return Float.valueOf(x);
+     }
+ 
+     static Double boxDouble(double x) {
+-        return x;
++      return Double.valueOf(x);
      }
+ 
+     private static MethodType boxType(Wrapper wrap) {
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/BoundMethodHandle.java openjdk-boot/jdk/src/share/classes/java/lang/invoke/BoundMethodHandle.java
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/BoundMethodHandle.java	2012-11-30 17:27:25.095740183 +0000
++++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/BoundMethodHandle.java	2012-11-30 17:29:35.229853381 +0000
+@@ -71,11 +71,11 @@
+             case 'I':
+                 return (BoundMethodHandle) SpeciesData.EMPTY.extendWithType('I').constructor[0].invokeBasic(type, form, ValueConversions.widenSubword(x));
+             case 'J':
+-                return (BoundMethodHandle) SpeciesData.EMPTY.extendWithType('J').constructor[0].invokeBasic(type, form, (long) x);
++                return (BoundMethodHandle) SpeciesData.EMPTY.extendWithType('J').constructor[0].invokeBasic(type, form, (Long) x);
+             case 'F':
+-                return (BoundMethodHandle) SpeciesData.EMPTY.extendWithType('F').constructor[0].invokeBasic(type, form, (float) x);
++                return (BoundMethodHandle) SpeciesData.EMPTY.extendWithType('F').constructor[0].invokeBasic(type, form, (Float) x);
+             case 'D':
+-                return (BoundMethodHandle) SpeciesData.EMPTY.extendWithType('D').constructor[0].invokeBasic(type, form, (double) x);
++                return (BoundMethodHandle) SpeciesData.EMPTY.extendWithType('D').constructor[0].invokeBasic(type, form, (Double) x);
+             default : throw new InternalError("unexpected xtype: " + xtype);
+             }
+         } catch (Throwable t) {
+@@ -92,9 +92,9 @@
+             switch (xtype) {
+             case 'L': return cloneExtendL(type, form, x);
+             case 'I': return cloneExtendI(type, form, ValueConversions.widenSubword(x));
+-            case 'J': return cloneExtendJ(type, form, (long) x);
+-            case 'F': return cloneExtendF(type, form, (float) x);
+-            case 'D': return cloneExtendD(type, form, (double) x);
++            case 'J': return cloneExtendJ(type, form, (Long) x);
++            case 'F': return cloneExtendF(type, form, (Float) x);
++            case 'D': return cloneExtendD(type, form, (Double) x);
+             }
+         } catch (Throwable t) {
+             throw newInternalError(t);
+@@ -171,10 +171,10 @@
+         throw new InternalError("unexpected type: " + speciesData().types+"."+i);
+     }
+     public final Object argL(int i) throws Throwable { return          speciesData().getters[i].invokeBasic(this); }
+-    public final int    argI(int i) throws Throwable { return (int)    speciesData().getters[i].invokeBasic(this); }
+-    public final float  argF(int i) throws Throwable { return (float)  speciesData().getters[i].invokeBasic(this); }
+-    public final double argD(int i) throws Throwable { return (double) speciesData().getters[i].invokeBasic(this); }
+-    public final long   argJ(int i) throws Throwable { return (long)   speciesData().getters[i].invokeBasic(this); }
++    public final int    argI(int i) throws Throwable { return (Integer)    speciesData().getters[i].invokeBasic(this); }
++    public final float  argF(int i) throws Throwable { return (Float)  speciesData().getters[i].invokeBasic(this); }
++    public final double argD(int i) throws Throwable { return (Double) speciesData().getters[i].invokeBasic(this); }
++    public final long   argJ(int i) throws Throwable { return (Long)   speciesData().getters[i].invokeBasic(this); }
+ 
+     //
+     // cloning API
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/InvokerBytecodeGenerator.java openjdk-boot/jdk/src/share/classes/java/lang/invoke/InvokerBytecodeGenerator.java
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/InvokerBytecodeGenerator.java	2012-11-30 17:25:45.038114739 +0000
++++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/InvokerBytecodeGenerator.java	2012-11-30 17:26:34.766922659 +0000
+@@ -317,11 +317,11 @@
+             return;
+         }
+         if (con instanceof Integer) {
+-            emitIconstInsn((int) con);
++            emitIconstInsn((Integer) con);
+             return;
+         }
+         if (con instanceof Long) {
+-            long x = (long) con;
++            long x = (Long) con;
+             if (x == (short) x) {
+                 emitIconstInsn((int) x);
+                 mv.visitInsn(Opcodes.I2L);
+@@ -329,7 +329,7 @@
+             }
+         }
+         if (con instanceof Float) {
+-            float x = (float) con;
++            float x = (Float) con;
+             if (x == (short) x) {
+                 emitIconstInsn((int) x);
+                 mv.visitInsn(Opcodes.I2F);
+@@ -337,7 +337,7 @@
+             }
+         }
+         if (con instanceof Double) {
+-            double x = (double) con;
++            double x = (Double) con;
+             if (x == (short) x) {
+                 emitIconstInsn((int) x);
+                 mv.visitInsn(Opcodes.I2D);
+@@ -345,7 +345,7 @@
+             }
+         }
+         if (con instanceof Boolean) {
+-            emitIconstInsn((boolean) con ? 1 : 0);
++            emitIconstInsn((Boolean) con ? 1 : 0);
+             return;
+         }
+         // fall through:
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/LambdaForm.java openjdk-boot/jdk/src/share/classes/java/lang/invoke/LambdaForm.java
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/LambdaForm.java	2012-11-30 17:23:21.555782849 +0000
++++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/LambdaForm.java	2012-11-30 17:24:24.244801829 +0000
+@@ -1440,7 +1440,7 @@
+                         if (a1 instanceof Integer && a2 instanceof Integer) {
+                             if (sawInt)  continue;
+                             sawInt = true;
+-                            if ((int)a1 < (int)a2)  continue;  // still might be true
++                            if (((Integer)a1).intValue() < ((Integer)a2).intValue())  continue;  // still might be true
+                         }
+                         return false;
+                     }
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/MethodHandleImpl.java openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandleImpl.java
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/MethodHandleImpl.java	2012-11-30 17:22:27.146898269 +0000
++++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandleImpl.java	2012-11-30 17:22:51.067287189 +0000
+@@ -900,7 +900,7 @@
+                 MH_checkCallerClass = IMPL_LOOKUP
+                     .findStatic(THIS_CLASS, "checkCallerClass",
+                                 MethodType.methodType(boolean.class, Class.class, Class.class));
+-                assert((boolean) MH_checkCallerClass.invokeExact(THIS_CLASS, THIS_CLASS));
++                assert((Boolean) MH_checkCallerClass.invokeExact(THIS_CLASS, THIS_CLASS));
+             } catch (Throwable ex) {
+                 throw newInternalError(ex);
+             }
--- a/patches/boot/ecj-diamond.patch	Thu Nov 29 04:33:36 2012 +0000
+++ b/patches/boot/ecj-diamond.patch	Tue Dec 04 11:00:41 2012 +0000
@@ -1,6 +1,6 @@
 diff -Nru openjdk-boot.orig/corba/src/share/classes/com/sun/corba/se/impl/encoding/CachedCodeBase.java openjdk-boot/corba/src/share/classes/com/sun/corba/se/impl/encoding/CachedCodeBase.java
---- openjdk-boot.orig/corba/src/share/classes/com/sun/corba/se/impl/encoding/CachedCodeBase.java	2012-09-24 21:55:46.000000000 +0100
-+++ openjdk-boot/corba/src/share/classes/com/sun/corba/se/impl/encoding/CachedCodeBase.java	2012-09-26 02:21:47.741128089 +0100
+--- openjdk-boot.orig/corba/src/share/classes/com/sun/corba/se/impl/encoding/CachedCodeBase.java	2012-11-30 12:17:00.000000000 +0000
++++ openjdk-boot/corba/src/share/classes/com/sun/corba/se/impl/encoding/CachedCodeBase.java	2012-11-30 15:09:47.167537938 +0000
 @@ -58,7 +58,7 @@
      private CorbaConnection conn;
  
@@ -11,8 +11,8 @@
      public static synchronized void cleanCache( ORB orb ) {
          synchronized (iorMapLock) {
 diff -Nru openjdk-boot.orig/corba/src/share/classes/com/sun/corba/se/impl/orb/ORBImpl.java openjdk-boot/corba/src/share/classes/com/sun/corba/se/impl/orb/ORBImpl.java
---- openjdk-boot.orig/corba/src/share/classes/com/sun/corba/se/impl/orb/ORBImpl.java	2012-09-24 21:55:46.000000000 +0100
-+++ openjdk-boot/corba/src/share/classes/com/sun/corba/se/impl/orb/ORBImpl.java	2012-09-26 02:21:47.753128270 +0100
+--- openjdk-boot.orig/corba/src/share/classes/com/sun/corba/se/impl/orb/ORBImpl.java	2012-11-30 12:17:00.000000000 +0000
++++ openjdk-boot/corba/src/share/classes/com/sun/corba/se/impl/orb/ORBImpl.java	2012-11-30 15:09:47.183538189 +0000
 @@ -1316,7 +1316,7 @@
      protected void shutdownServants(boolean wait_for_completion) {
          Set<ObjectAdapterFactory> oaset;
@@ -23,8 +23,8 @@
  
          for (ObjectAdapterFactory oaf : oaset)
 diff -Nru openjdk-boot.orig/corba/src/share/classes/com/sun/corba/se/impl/orbutil/threadpool/ThreadPoolImpl.java openjdk-boot/corba/src/share/classes/com/sun/corba/se/impl/orbutil/threadpool/ThreadPoolImpl.java
---- openjdk-boot.orig/corba/src/share/classes/com/sun/corba/se/impl/orbutil/threadpool/ThreadPoolImpl.java	2012-09-24 21:55:46.000000000 +0100
-+++ openjdk-boot/corba/src/share/classes/com/sun/corba/se/impl/orbutil/threadpool/ThreadPoolImpl.java	2012-09-26 02:21:47.753128270 +0100
+--- openjdk-boot.orig/corba/src/share/classes/com/sun/corba/se/impl/orbutil/threadpool/ThreadPoolImpl.java	2012-11-30 12:17:00.000000000 +0000
++++ openjdk-boot/corba/src/share/classes/com/sun/corba/se/impl/orbutil/threadpool/ThreadPoolImpl.java	2012-11-30 15:09:47.183538189 +0000
 @@ -108,7 +108,7 @@
      private ThreadGroup threadGroup;
  
@@ -43,9 +43,26 @@
          }
  
          for (WorkerThread wt : copy) {
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/beans/decoder/DocumentHandler.java openjdk-boot/jdk/src/share/classes/com/sun/beans/decoder/DocumentHandler.java
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/beans/decoder/DocumentHandler.java	2012-11-30 15:19:29.516788251 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/beans/decoder/DocumentHandler.java	2012-11-30 15:20:13.301492126 +0000
+@@ -62,9 +62,10 @@
+  */
+ public final class DocumentHandler extends DefaultHandler {
+     private final AccessControlContext acc = AccessController.getContext();
+-    private final Map<String, Class<? extends ElementHandler>> handlers = new HashMap<>();
+-    private final Map<String, Object> environment = new HashMap<>();
+-    private final List<Object> objects = new ArrayList<>();
++    private final Map<String, Class<? extends ElementHandler>> handlers =
++					      new HashMap<String, Class<? extends ElementHandler>>();
++    private final Map<String, Object> environment = new HashMap<String, Object>();
++    private final List<Object> objects = new ArrayList<Object>();
+ 
+     private Reference<ClassLoader> loader;
+     private ExceptionListener listener;
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/beans/TypeResolver.java openjdk-boot/jdk/src/share/classes/com/sun/beans/TypeResolver.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/beans/TypeResolver.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/beans/TypeResolver.java	2012-09-26 02:21:47.753128270 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/beans/TypeResolver.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/beans/TypeResolver.java	2012-11-30 15:09:47.183538189 +0000
 @@ -46,7 +46,7 @@
   */
  public final class TypeResolver {
@@ -65,8 +82,8 @@
                      CACHE.put(actual, map);
                  }
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Attribute.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Attribute.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Attribute.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Attribute.java	2012-09-26 02:21:47.753128270 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Attribute.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Attribute.java	2012-11-30 15:09:47.183538189 +0000
 @@ -104,9 +104,9 @@
          return this.def.compareTo(that.def);
      }
@@ -138,8 +155,8 @@
          for (int i = 0; i < layout.length(); i++) {
              if (layout.charAt(i++) != '[')
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/BandStructure.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/BandStructure.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/BandStructure.java	2012-09-26 02:14:39.446727849 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/BandStructure.java	2012-09-26 02:24:51.519895668 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/BandStructure.java	2012-11-30 15:06:26.904399058 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/BandStructure.java	2012-11-30 15:09:47.183538189 +0000
 @@ -257,7 +257,7 @@
          assert(basicCodings[_meta_default] == null);
          assert(basicCodings[_meta_canon_min] != null);
@@ -202,8 +219,8 @@
          return true;
      }
 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	2012-09-26 02:14:39.310725828 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/ClassReader.java	2012-09-26 02:21:47.753128270 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/ClassReader.java	2012-11-30 15:06:23.496345660 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/ClassReader.java	2012-11-30 15:09:47.187538251 +0000
 @@ -466,7 +466,7 @@
  
      void readInnerClasses(Class cls) throws IOException {
@@ -214,8 +231,8 @@
              InnerClass ic =
                  new InnerClass(readClassRef(),
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/CodingChooser.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/CodingChooser.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/CodingChooser.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/CodingChooser.java	2012-09-26 02:21:47.753128270 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/CodingChooser.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/CodingChooser.java	2012-11-30 15:09:47.187538251 +0000
 @@ -743,9 +743,9 @@
          // Steps 1/2/3 are interdependent, and may be iterated.
          // Steps 4 and 5 may be decided independently afterward.
@@ -252,8 +269,8 @@
                  if (popset.add(values[i]))  popvals.add(values[i]);
              }
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Coding.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Coding.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Coding.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Coding.java	2012-09-26 02:21:47.753128270 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Coding.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Coding.java	2012-11-30 15:09:47.187538251 +0000
 @@ -402,7 +402,7 @@
      private static Map<Coding, Coding> codeMap;
  
@@ -264,8 +281,8 @@
          Coding x1 = codeMap.get(x0);
          if (x1 == null)  codeMap.put(x0, x1 = x0);
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/ConstantPool.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/ConstantPool.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/ConstantPool.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/ConstantPool.java	2012-09-26 02:21:47.753128270 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/ConstantPool.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/ConstantPool.java	2012-11-30 15:09:47.187538251 +0000
 @@ -919,7 +919,7 @@
      public static
      Index[] partition(Index ix, int[] keys) {
@@ -294,8 +311,8 @@
              Entry e = work.previous();
              work.remove();          // pop stack
 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	2012-09-26 02:14:39.446727849 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java	2012-09-26 02:21:47.753128270 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java	2012-11-30 15:06:26.904399058 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java	2012-11-30 15:09:47.187538251 +0000
 @@ -61,7 +61,7 @@
                  ResourceBundle.getBundle("com.sun.java.util.jar.pack.DriverResource");
  
@@ -333,8 +350,8 @@
          for (String optline : options.split("\n")) {
              String[] words = optline.split("\\p{Space}+");
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/FixedList.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/FixedList.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/FixedList.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/FixedList.java	2012-09-26 02:21:47.753128270 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/FixedList.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/FixedList.java	2012-11-30 15:09:47.187538251 +0000
 @@ -45,7 +45,7 @@
      private final ArrayList<E> flist;
  
@@ -345,8 +362,8 @@
          for (int i = 0 ; i < capacity ; i++) {
              flist.add(null);
 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	2012-09-26 02:14:39.314725887 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Package.java	2012-09-26 02:25:05.996114187 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Package.java	2012-11-30 15:06:23.688348668 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Package.java	2012-11-30 15:09:47.187538251 +0000
 @@ -112,7 +112,7 @@
      public static final Attribute.Layout attrSourceFileSpecial;
      public static final Map<Attribute.Layout, Attribute> attrDefs;
@@ -502,8 +519,8 @@
              // Add to the end of ths list:
              if (!fileSet.contains(cls.file))
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageReader.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageReader.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageReader.java	2012-09-26 02:14:39.446727849 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageReader.java	2012-09-26 02:23:17.530478725 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageReader.java	2012-11-30 15:06:26.908399120 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageReader.java	2012-11-30 15:09:47.187538251 +0000
 @@ -686,7 +686,7 @@
          cp_Signature_classes.expectLength(getIntTotal(numSigClasses));
          cp_Signature_classes.readFrom(in);
@@ -617,8 +634,8 @@
              ClassEntry thisClass  = curClass.thisClass;
              ClassEntry superClass = curClass.superClass;
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageWriter.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageWriter.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageWriter.java	2012-09-26 02:14:39.446727849 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageWriter.java	2012-09-26 02:23:02.806257037 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageWriter.java	2012-11-30 15:06:26.908399120 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageWriter.java	2012-11-30 15:09:47.187538251 +0000
 @@ -116,7 +116,7 @@
      int[][]     attrCounts;       // count attr. occurences
  
@@ -674,8 +691,8 @@
          for (Class cls : pkg.classes) {
              if (!cls.hasInnerClasses())  continue;
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PackerImpl.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackerImpl.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PackerImpl.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackerImpl.java	2012-09-26 02:21:47.757128330 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PackerImpl.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackerImpl.java	2012-11-30 15:09:47.187538251 +0000
 @@ -183,8 +183,8 @@
          final Map<Attribute.Layout, Attribute> attrDefs;
          final Map<Attribute.Layout, String> attrCommands;
@@ -706,8 +723,8 @@
                  for (JarEntry je : Collections.list(jf.entries())) {
                      InFile inFile = new InFile(jf, je);
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PopulationCoding.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PopulationCoding.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PopulationCoding.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PopulationCoding.java	2012-09-26 02:21:47.757128330 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PopulationCoding.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PopulationCoding.java	2012-11-30 15:09:47.187538251 +0000
 @@ -309,7 +309,7 @@
          // As each new value is added, we assert that the value
          // was not already in the set.
@@ -718,8 +735,8 @@
          maxForDebug += fillp;
          int min = Integer.MIN_VALUE;  // farthest from the center
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PropMap.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PropMap.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PropMap.java	2012-09-26 02:14:39.446727849 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PropMap.java	2012-09-26 02:24:14.871342795 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PropMap.java	2012-11-30 15:06:26.908399120 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PropMap.java	2012-11-30 15:09:47.191538314 +0000
 @@ -48,8 +48,8 @@
   */
  
@@ -750,8 +767,8 @@
          while (res.remove(null));
          return res;
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/TLGlobals.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/TLGlobals.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/TLGlobals.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/TLGlobals.java	2012-09-26 02:21:47.757128330 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/TLGlobals.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/TLGlobals.java	2012-11-30 15:09:47.191538314 +0000
 @@ -58,12 +58,12 @@
      private final Map<String, MemberEntry> memberEntries;
  
@@ -772,8 +789,8 @@
      }
  
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/UnpackerImpl.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/UnpackerImpl.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/UnpackerImpl.java	2012-09-26 02:14:39.446727849 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/UnpackerImpl.java	2012-09-26 02:21:47.757128330 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/UnpackerImpl.java	2012-11-30 15:06:26.908399120 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/UnpackerImpl.java	2012-11-30 15:09:47.191538314 +0000
 @@ -233,7 +233,7 @@
              props.setProperty(java.util.jar.Pack200.Unpacker.PROGRESS,"50");
              pkg.ensureAllClassFiles();
@@ -784,8 +801,8 @@
                  String name = file.nameString;
                  JarEntry je = new JarEntry(Utils.getJarEntryName(name));
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Utils.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Utils.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Utils.java	2012-09-26 02:14:39.446727849 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Utils.java	2012-09-26 02:21:47.757128330 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Utils.java	2012-11-30 15:06:26.908399120 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Utils.java	2012-11-30 15:09:47.191538314 +0000
 @@ -132,7 +132,7 @@
      // Keep a TLS point to the global data and environment.
      // This makes it simpler to supply environmental options
@@ -796,8 +813,8 @@
      // convenience methods to access the TL globals
      static TLGlobals getTLGlobals() {
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/rowset/CachedRowSetImpl.java openjdk-boot/jdk/src/share/classes/com/sun/rowset/CachedRowSetImpl.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/rowset/CachedRowSetImpl.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/rowset/CachedRowSetImpl.java	2012-09-26 02:21:47.761128390 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/rowset/CachedRowSetImpl.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/rowset/CachedRowSetImpl.java	2012-11-30 15:09:47.191538314 +0000
 @@ -1284,7 +1284,7 @@
       */
      public Collection<?> toCollection() throws SQLException {
@@ -817,8 +834,8 @@
          // create a copy
          CachedRowSetImpl crsTemp;
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/rowset/JoinRowSetImpl.java openjdk-boot/jdk/src/share/classes/com/sun/rowset/JoinRowSetImpl.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/rowset/JoinRowSetImpl.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/rowset/JoinRowSetImpl.java	2012-09-26 02:21:47.761128390 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/rowset/JoinRowSetImpl.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/rowset/JoinRowSetImpl.java	2012-11-30 15:09:47.191538314 +0000
 @@ -222,7 +222,7 @@
             // either of the setter methods have been set.
             if(boolColId){
@@ -829,8 +846,8 @@
                    if( (strMatchKey = (cRowset.getMatchColumnNames())[i]) != null) {
                        iMatchKey = cRowset.findColumn(strMatchKey);
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/callback/DialogCallbackHandler.java openjdk-boot/jdk/src/share/classes/com/sun/security/auth/callback/DialogCallbackHandler.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/callback/DialogCallbackHandler.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/callback/DialogCallbackHandler.java	2012-09-26 02:21:47.761128390 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/callback/DialogCallbackHandler.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/callback/DialogCallbackHandler.java	2012-11-30 15:09:47.191538314 +0000
 @@ -99,10 +99,10 @@
          throws UnsupportedCallbackException
      {
@@ -845,8 +862,8 @@
          ConfirmationInfo confirmation = new ConfirmationInfo();
  
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/login/ConfigFile.java openjdk-boot/jdk/src/share/classes/com/sun/security/auth/login/ConfigFile.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/login/ConfigFile.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/login/ConfigFile.java	2012-09-26 02:21:47.761128390 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/login/ConfigFile.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/login/ConfigFile.java	2012-11-30 15:09:47.195538377 +0000
 @@ -152,7 +152,7 @@
  
          // new configuration
@@ -875,8 +892,8 @@
              String value;
              while (peek(";") == false) {
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/module/JndiLoginModule.java openjdk-boot/jdk/src/share/classes/com/sun/security/auth/module/JndiLoginModule.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/module/JndiLoginModule.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/module/JndiLoginModule.java	2012-09-26 02:21:47.761128390 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/module/JndiLoginModule.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/module/JndiLoginModule.java	2012-11-30 15:09:47.195538377 +0000
 @@ -184,7 +184,7 @@
      private UnixNumericUserPrincipal UIDPrincipal;
      private UnixNumericGroupPrincipal GIDPrincipal;
@@ -887,8 +904,8 @@
      // initial state
      private Subject subject;
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/module/KeyStoreLoginModule.java openjdk-boot/jdk/src/share/classes/com/sun/security/auth/module/KeyStoreLoginModule.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/module/KeyStoreLoginModule.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/module/KeyStoreLoginModule.java	2012-09-26 02:21:47.761128390 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/module/KeyStoreLoginModule.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/module/KeyStoreLoginModule.java	2012-11-30 15:09:47.195538377 +0000
 @@ -658,7 +658,7 @@
                  throw new FailedLoginException(
                      "Unable to find X.509 certificate chain in keystore");
@@ -899,8 +916,8 @@
                      certList.add(fromKeyStore[i]);
                  }
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/module/SolarisLoginModule.java openjdk-boot/jdk/src/share/classes/com/sun/security/auth/module/SolarisLoginModule.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/module/SolarisLoginModule.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/module/SolarisLoginModule.java	2012-09-26 02:21:47.761128390 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/module/SolarisLoginModule.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/module/SolarisLoginModule.java	2012-11-30 15:09:47.195538377 +0000
 @@ -76,7 +76,7 @@
      private SolarisNumericUserPrincipal UIDPrincipal;
      private SolarisNumericGroupPrincipal GIDPrincipal;
@@ -911,8 +928,8 @@
      /**
       * Initialize this <code>LoginModule</code>.
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/module/UnixLoginModule.java openjdk-boot/jdk/src/share/classes/com/sun/security/auth/module/UnixLoginModule.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/module/UnixLoginModule.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/module/UnixLoginModule.java	2012-09-26 02:21:47.761128390 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/module/UnixLoginModule.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/module/UnixLoginModule.java	2012-11-30 15:09:47.195538377 +0000
 @@ -70,7 +70,7 @@
      private UnixNumericUserPrincipal UIDPrincipal;
      private UnixNumericGroupPrincipal GIDPrincipal;
@@ -923,8 +940,8 @@
      /**
       * Initialize this <code>LoginModule</code>.
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/PolicyFile.java openjdk-boot/jdk/src/share/classes/com/sun/security/auth/PolicyFile.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/PolicyFile.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/PolicyFile.java	2012-09-26 02:21:47.761128390 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/PolicyFile.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/PolicyFile.java	2012-11-30 15:09:47.195538377 +0000
 @@ -1180,7 +1180,7 @@
              // Done
              return certs;
@@ -935,8 +952,8 @@
          while (i < certs.length) {
              userCertList.add(certs[i]);
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/tools/example/trace/EventThread.java openjdk-boot/jdk/src/share/classes/com/sun/tools/example/trace/EventThread.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/tools/example/trace/EventThread.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/tools/example/trace/EventThread.java	2012-09-26 02:21:47.761128390 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/tools/example/trace/EventThread.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/tools/example/trace/EventThread.java	2012-11-30 15:09:47.195538377 +0000
 @@ -59,7 +59,7 @@
  
      // Maps ThreadReference to ThreadTrace instances
@@ -947,8 +964,8 @@
      EventThread(VirtualMachine vm, String[] excludes, PrintWriter writer) {
          super("event-handler");
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/beans/Introspector.java openjdk-boot/jdk/src/share/classes/java/beans/Introspector.java
---- openjdk-boot.orig/jdk/src/share/classes/java/beans/Introspector.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/beans/Introspector.java	2012-09-26 02:28:36.451299216 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/beans/Introspector.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/beans/Introspector.java	2012-11-30 15:09:47.195538377 +0000
 @@ -97,7 +97,7 @@
      public final static int IGNORE_ALL_BEANINFO        = 3;
  
@@ -977,8 +994,8 @@
          }
          return targetBeanInfo;
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/beans/ThreadGroupContext.java openjdk-boot/jdk/src/share/classes/java/beans/ThreadGroupContext.java
---- openjdk-boot.orig/jdk/src/share/classes/java/beans/ThreadGroupContext.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/beans/ThreadGroupContext.java	2012-09-26 02:21:47.761128390 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/beans/ThreadGroupContext.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/beans/ThreadGroupContext.java	2012-11-30 15:09:47.195538377 +0000
 @@ -42,7 +42,7 @@
   */
  final class ThreadGroupContext {
@@ -998,8 +1015,8 @@
          return this.beanInfoCache.put(type, info);
      }
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/io/DeleteOnExitHook.java openjdk-boot/jdk/src/share/classes/java/io/DeleteOnExitHook.java
---- openjdk-boot.orig/jdk/src/share/classes/java/io/DeleteOnExitHook.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/io/DeleteOnExitHook.java	2012-09-26 02:21:47.761128390 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/io/DeleteOnExitHook.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/io/DeleteOnExitHook.java	2012-11-30 15:09:47.195538377 +0000
 @@ -34,7 +34,7 @@
   */
  
@@ -1019,8 +1036,8 @@
          // reverse the list to maintain previous jdk deletion order.
          // Last in first deleted.
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/io/FileInputStream.java openjdk-boot/jdk/src/share/classes/java/io/FileInputStream.java
---- openjdk-boot.orig/jdk/src/share/classes/java/io/FileInputStream.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/io/FileInputStream.java	2012-09-26 02:21:47.761128390 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/io/FileInputStream.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/io/FileInputStream.java	2012-11-30 15:09:47.195538377 +0000
 @@ -57,7 +57,7 @@
      private volatile boolean closed = false;
  
@@ -1031,8 +1048,8 @@
      private static boolean isRunningFinalize() {
          Boolean val;
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/io/File.java openjdk-boot/jdk/src/share/classes/java/io/File.java
---- openjdk-boot.orig/jdk/src/share/classes/java/io/File.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/io/File.java	2012-09-26 02:21:47.765128450 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/io/File.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/io/File.java	2012-11-30 15:09:47.195538377 +0000
 @@ -1082,7 +1082,7 @@
          if ((names == null) || (filter == null)) {
              return names;
@@ -1061,8 +1078,8 @@
              File f = new File(s, this);
              if ((filter == null) || filter.accept(f))
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/io/FileOutputStream.java openjdk-boot/jdk/src/share/classes/java/io/FileOutputStream.java
---- openjdk-boot.orig/jdk/src/share/classes/java/io/FileOutputStream.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/io/FileOutputStream.java	2012-09-26 02:21:47.765128450 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/io/FileOutputStream.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/io/FileOutputStream.java	2012-11-30 15:09:47.195538377 +0000
 @@ -70,7 +70,7 @@
      private final Object closeLock = new Object();
      private volatile boolean closed = false;
@@ -1073,8 +1090,8 @@
      private static boolean isRunningFinalize() {
          Boolean val;
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/io/FilePermission.java openjdk-boot/jdk/src/share/classes/java/io/FilePermission.java
---- openjdk-boot.orig/jdk/src/share/classes/java/io/FilePermission.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/io/FilePermission.java	2012-09-26 02:21:47.765128450 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/io/FilePermission.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/io/FilePermission.java	2012-11-30 15:09:47.195538377 +0000
 @@ -725,7 +725,7 @@
       */
  
@@ -1103,8 +1120,8 @@
      }
  }
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/io/ObjectInputStream.java openjdk-boot/jdk/src/share/classes/java/io/ObjectInputStream.java
---- openjdk-boot.orig/jdk/src/share/classes/java/io/ObjectInputStream.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/io/ObjectInputStream.java	2012-09-26 02:21:47.765128450 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/io/ObjectInputStream.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/io/ObjectInputStream.java	2012-11-30 15:09:47.199538440 +0000
 @@ -213,7 +213,7 @@
  
      /** table mapping primitive type names to corresponding class objects */
@@ -1129,8 +1146,8 @@
  
      /** filter stream for handling block data conversion */
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/io/ObjectOutputStream.java openjdk-boot/jdk/src/share/classes/java/io/ObjectOutputStream.java
---- openjdk-boot.orig/jdk/src/share/classes/java/io/ObjectOutputStream.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/io/ObjectOutputStream.java	2012-09-26 02:21:47.765128450 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/io/ObjectOutputStream.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/io/ObjectOutputStream.java	2012-11-30 15:09:47.199538440 +0000
 @@ -165,11 +165,11 @@
      private static class Caches {
          /** cache of subclass security audit results */
@@ -1155,8 +1172,8 @@
  
          /**
 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	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/io/ObjectStreamClass.java	2012-09-26 02:21:47.765128450 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/io/ObjectStreamClass.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/io/ObjectStreamClass.java	2012-11-30 15:09:47.199538440 +0000
 @@ -84,18 +84,18 @@
      private static class Caches {
          /** cache mapping local classes -> descriptors */
@@ -1237,8 +1254,8 @@
                  if (ref != null) {
                      Caches.reflectors.remove(key, ref);
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/ApplicationShutdownHooks.java openjdk-boot/jdk/src/share/classes/java/lang/ApplicationShutdownHooks.java
---- openjdk-boot.orig/jdk/src/share/classes/java/lang/ApplicationShutdownHooks.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/lang/ApplicationShutdownHooks.java	2012-09-26 02:21:47.765128450 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/ApplicationShutdownHooks.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/lang/ApplicationShutdownHooks.java	2012-11-30 15:09:47.199538440 +0000
 @@ -47,7 +47,7 @@
                      }
                  }
@@ -1249,8 +1266,8 @@
              // application shutdown hooks cannot be added if
              // shutdown is in progress.
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/Character.java openjdk-boot/jdk/src/share/classes/java/lang/Character.java
---- openjdk-boot.orig/jdk/src/share/classes/java/lang/Character.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/lang/Character.java	2012-09-26 02:21:47.765128450 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/Character.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/lang/Character.java	2012-11-30 15:09:47.199538440 +0000
 @@ -646,7 +646,8 @@
       */
      public static final class UnicodeBlock extends Subset {
@@ -1271,8 +1288,8 @@
              aliases.put("ARMI", IMPERIAL_ARAMAIC);
              aliases.put("ARMN", ARMENIAN);
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/CharacterName.java openjdk-boot/jdk/src/share/classes/java/lang/CharacterName.java
---- openjdk-boot.orig/jdk/src/share/classes/java/lang/CharacterName.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/lang/CharacterName.java	2012-09-26 02:21:47.765128450 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/CharacterName.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/lang/CharacterName.java	2012-11-30 15:09:47.199538440 +0000
 @@ -81,7 +81,7 @@
              } while (cpOff < cpEnd);
              strPool = new byte[total - cpEnd];
@@ -1283,8 +1300,8 @@
              throw new InternalError(x.getMessage());
          } finally {
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/Class.java openjdk-boot/jdk/src/share/classes/java/lang/Class.java
---- openjdk-boot.orig/jdk/src/share/classes/java/lang/Class.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/lang/Class.java	2012-09-26 02:21:47.769128510 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/Class.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/lang/Class.java	2012-11-30 15:09:47.203538502 +0000
 @@ -1308,7 +1308,7 @@
          return java.security.AccessController.doPrivileged(
              new java.security.PrivilegedAction<Class<?>[]>() {
@@ -1379,8 +1396,8 @@
              for (Map.Entry<Class<? extends Annotation>, Annotation> e : superClass.annotations.entrySet()) {
                  Class<? extends Annotation> annotationClass = e.getKey();
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/ClassLoader.java openjdk-boot/jdk/src/share/classes/java/lang/ClassLoader.java
---- openjdk-boot.orig/jdk/src/share/classes/java/lang/ClassLoader.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/lang/ClassLoader.java	2012-09-26 02:21:47.769128510 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/ClassLoader.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/lang/ClassLoader.java	2012-11-30 15:09:47.203538502 +0000
 @@ -246,7 +246,7 @@
  
      // The classes loaded by this class loader. The only purpose of this table
@@ -1487,8 +1504,8 @@
  
          for(int i = 0; i < directives.classes.length; i++)
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/ClassValue.java openjdk-boot/jdk/src/share/classes/java/lang/ClassValue.java
---- openjdk-boot.orig/jdk/src/share/classes/java/lang/ClassValue.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/lang/ClassValue.java	2012-09-26 02:21:47.769128510 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/ClassValue.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/lang/ClassValue.java	2012-11-30 15:09:47.203538502 +0000
 @@ -297,12 +297,12 @@
       * Some machines may also require a barrier instruction to execute
       * before this.version.
@@ -1529,9 +1546,151 @@
  
          // As soon as the Entry is put into the cache, the value will be
          // reachable via a data race (as defined by the Java Memory Model).
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/BoundMethodHandle.java openjdk-boot/jdk/src/share/classes/java/lang/invoke/BoundMethodHandle.java
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/BoundMethodHandle.java	2012-11-30 17:42:14.710183546 +0000
++++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/BoundMethodHandle.java	2012-11-30 17:42:36.822545325 +0000
+@@ -393,7 +393,7 @@
+         }
+         private boolean isPlaceholder() { return clazz == null; }
+ 
+-        private static final HashMap<String, SpeciesData> CACHE = new HashMap<>();
++        private static final HashMap<String, SpeciesData> CACHE = new HashMap<String, SpeciesData>();
+         private static final boolean INIT_DONE;  // set after <clinit> finishes...
+ 
+         SpeciesData extendWithType(char type) {
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/DirectMethodHandle.java openjdk-boot/jdk/src/share/classes/java/lang/invoke/DirectMethodHandle.java
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/DirectMethodHandle.java	2012-11-30 16:59:06.364114629 +0000
++++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/DirectMethodHandle.java	2012-11-30 16:59:18.596312714 +0000
+@@ -315,7 +315,7 @@
+             if (UNSAFE.shouldBeInitialized(type))
+                 // If the previous call didn't block, this can happen.
+                 // We are executing inside <clinit>.
+-                return new WeakReference<>(Thread.currentThread());
++                return new WeakReference<Thread>(Thread.currentThread());
+             return null;
+         }
+         static final EnsureInitialized INSTANCE = new EnsureInitialized();
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/InvokerBytecodeGenerator.java openjdk-boot/jdk/src/share/classes/java/lang/invoke/InvokerBytecodeGenerator.java
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/InvokerBytecodeGenerator.java	2012-11-30 17:03:54.192773864 +0000
++++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/InvokerBytecodeGenerator.java	2012-11-30 17:02:46.671681188 +0000
+@@ -129,7 +129,7 @@
+ 
+     static {
+         if (DUMP_CLASS_FILES) {
+-            DUMP_CLASS_FILES_COUNTERS = new HashMap<>();
++	    DUMP_CLASS_FILES_COUNTERS = new HashMap<String,Integer>();
+             try {
+                 File dumpDir = new File("DUMP_CLASS_FILES");
+                 if (!dumpDir.exists()) {
+@@ -198,7 +198,7 @@
+         }
+     }
+ 
+-    Map<Object, CpPatch> cpPatches = new HashMap<>();
++    Map<Object, CpPatch> cpPatches = new HashMap<Object, CpPatch>();
+ 
+     int cph = 0;  // for counting constant placeholders
+ 
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/LambdaForm.java openjdk-boot/jdk/src/share/classes/java/lang/invoke/LambdaForm.java
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/LambdaForm.java	2012-11-30 17:00:49.921791400 +0000
++++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/LambdaForm.java	2012-11-30 17:01:15.158199934 +0000
+@@ -466,12 +466,12 @@
+         int   capacity   = 512;    // expect many distinct signatures over time
+         float loadFactor = 0.75f;  // normal default
+         int   writers    = 1;
+-        PREPARED_FORMS = new ConcurrentHashMap<>(capacity, loadFactor, writers);
++        PREPARED_FORMS = new ConcurrentHashMap<String,LambdaForm>(capacity, loadFactor, writers);
+     }
+ 
+     private static Map<String,LambdaForm> computeInitialPreparedForms() {
+         // Find all predefined invokers and associate them with canonical empty lambda forms.
+-        HashMap<String,LambdaForm> forms = new HashMap<>();
++        HashMap<String,LambdaForm> forms = new HashMap<String,LambdaForm>();
+         for (MemberName m : MemberName.getFactory().getMethods(LambdaForm.class, false, null, null, null)) {
+             if (!m.isStatic() || !m.isPackage())  continue;
+             MethodType mt = m.getMethodType();
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/MemberName.java openjdk-boot/jdk/src/share/classes/java/lang/invoke/MemberName.java
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/MemberName.java	2012-11-30 17:04:19.237179101 +0000
++++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/MemberName.java	2012-11-30 17:05:19.546155065 +0000
+@@ -803,14 +803,14 @@
+                 // JVM returned to us with an intentional overflow!
+                 totalCount += buf.length;
+                 int excess = bufCount - buf.length;
+-                if (bufs == null)  bufs = new ArrayList<>(1);
++                if (bufs == null)  bufs = new ArrayList<MemberName[]>(1);
+                 bufs.add(buf);
+                 int len2 = buf.length;
+                 len2 = Math.max(len2, excess);
+                 len2 = Math.max(len2, totalCount / 4);
+                 buf = newMemberBuffer(Math.min(BUF_MAX, len2));
+             }
+-            ArrayList<MemberName> result = new ArrayList<>(totalCount);
++            ArrayList<MemberName> result = new ArrayList<MemberName>(totalCount);
+             if (bufs != null) {
+                 for (MemberName[] buf0 : bufs) {
+                     Collections.addAll(result, buf0);
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/MethodHandleImpl.java openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandleImpl.java
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/MethodHandleImpl.java	2012-11-30 16:59:43.196711066 +0000
++++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandleImpl.java	2012-11-30 17:00:09.709140348 +0000
+@@ -71,8 +71,8 @@
+ 
+     static final class ArrayAccessor {
+         /// Support for array element access
+-        static final HashMap<Class<?>, MethodHandle> GETTER_CACHE = new HashMap<>();  // TODO use it
+-        static final HashMap<Class<?>, MethodHandle> SETTER_CACHE = new HashMap<>();  // TODO use it
++        static final HashMap<Class<?>, MethodHandle> GETTER_CACHE = new HashMap<Class<?>, MethodHandle>();  // TODO use it
++        static final HashMap<Class<?>, MethodHandle> SETTER_CACHE = new HashMap<Class<?>, MethodHandle>();  // TODO use it
+ 
+         static int     getElementI(int[]     a, int i)            { return              a[i]; }
+         static long    getElementJ(long[]    a, int i)            { return              a[i]; }
+@@ -686,7 +686,7 @@
+             }
+         }
+         static MethodHandle[] makeInvokes() {
+-            ArrayList<MethodHandle> invokes = new ArrayList<>();
++            ArrayList<MethodHandle> invokes = new ArrayList<MethodHandle>();
+             MethodHandles.Lookup lookup = IMPL_LOOKUP;
+             for (;;) {
+                 int nargs = invokes.size();
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/MethodHandle.java openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandle.java
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/MethodHandle.java	2012-11-30 17:03:44.080610234 +0000
++++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandle.java	2012-11-30 17:03:12.976106889 +0000
+@@ -824,7 +824,7 @@
+                 }
+             }
+             if (sawProblem) {
+-                ArrayList<Class<?>> ptypes = new ArrayList<>(type().parameterList());
++                ArrayList<Class<?>> ptypes = new ArrayList<Class<?>>(type().parameterList());
+                 for (int i = nargs - arrayLength; i < nargs; i++) {
+                     ptypes.set(i, arrayElement);
+                 }
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/MethodHandles.java openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandles.java
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/MethodHandles.java	2012-11-30 17:03:42.368582530 +0000
++++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandles.java	2012-11-30 17:03:31.792411386 +0000
+@@ -1738,7 +1738,7 @@
+         int inargs  = outargs + dropped;
+         if (pos < 0 || pos >= inargs)
+             throw newIllegalArgumentException("no argument type to remove");
+-        ArrayList<Class<?>> ptypes = new ArrayList<>(oldType.parameterList());
++        ArrayList<Class<?>> ptypes = new ArrayList<Class<?>>(oldType.parameterList());
+         ptypes.addAll(pos, valueTypes);
+         MethodType newType = MethodType.methodType(oldType.returnType(), ptypes);
+         return target.dropArguments(newType, pos, dropped);
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/MethodType.java openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodType.java
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/MethodType.java	2012-11-30 17:03:47.040658132 +0000
++++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodType.java	2012-11-30 17:03:04.767974055 +0000
+@@ -1048,7 +1048,7 @@
+         private final float loadFactor;
+ 
+         // Reference queue for cleared WeakEntries
+-        private final ReferenceQueue<Object> queue = new ReferenceQueue<>();
++        private final ReferenceQueue<Object> queue = new ReferenceQueue<Object>();
+ 
+         private Entry[] newTable(int n) {
+             return new Entry[n];
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/management/ManagementFactory.java openjdk-boot/jdk/src/share/classes/java/lang/management/ManagementFactory.java
---- openjdk-boot.orig/jdk/src/share/classes/java/lang/management/ManagementFactory.java	2012-09-26 02:14:39.390727017 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/lang/management/ManagementFactory.java	2012-09-26 02:21:47.769128510 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/management/ManagementFactory.java	2012-11-30 15:06:26.888398807 +0000
++++ openjdk-boot/jdk/src/share/classes/java/lang/management/ManagementFactory.java	2012-11-30 15:09:47.203538502 +0000
 @@ -789,7 +789,7 @@
             getPlatformManagementInterfaces()
      {
@@ -1542,8 +1701,8 @@
              result.add(component.getMXBeanInterface());
          }
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/management/PlatformComponent.java openjdk-boot/jdk/src/share/classes/java/lang/management/PlatformComponent.java
---- openjdk-boot.orig/jdk/src/share/classes/java/lang/management/PlatformComponent.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/lang/management/PlatformComponent.java	2012-09-26 02:21:47.769128510 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/management/PlatformComponent.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/lang/management/PlatformComponent.java	2012-11-30 15:09:47.203538502 +0000
 @@ -287,7 +287,7 @@
              List<T> getGcMXBeanList(Class<T> gcMXBeanIntf) {
          List<GarbageCollectorMXBean> list =
@@ -1581,8 +1740,8 @@
                  // Use String as the key rather than Class<?> to avoid
                  // causing unnecessary class loading of management interface
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/Package.java openjdk-boot/jdk/src/share/classes/java/lang/Package.java
---- openjdk-boot.orig/jdk/src/share/classes/java/lang/Package.java	2012-09-26 02:14:39.446727849 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/lang/Package.java	2012-09-26 02:21:47.769128510 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/Package.java	2012-11-30 15:06:27.252404510 +0000
++++ openjdk-boot/jdk/src/share/classes/java/lang/Package.java	2012-11-30 15:09:47.203538502 +0000
 @@ -596,13 +596,16 @@
      }
  
@@ -1604,8 +1763,8 @@
      private static native String getSystemPackage0(String name);
      private static native String[] getSystemPackages0();
 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	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/lang/ProcessBuilder.java	2012-09-26 02:21:47.769128510 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/ProcessBuilder.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/lang/ProcessBuilder.java	2012-11-30 15:09:47.203538502 +0000
 @@ -214,7 +214,7 @@
       * @param command a string array containing the program and its arguments
       */
@@ -1625,8 +1784,8 @@
              this.command.add(arg);
          return this;
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/reflect/Constructor.java openjdk-boot/jdk/src/share/classes/java/lang/reflect/Constructor.java
---- openjdk-boot.orig/jdk/src/share/classes/java/lang/reflect/Constructor.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/lang/reflect/Constructor.java	2012-09-26 02:21:47.769128510 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/reflect/Constructor.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/lang/reflect/Constructor.java	2012-11-30 15:09:47.203538502 +0000
 @@ -136,7 +136,7 @@
          // which implicitly requires that new java.lang.reflect
          // objects be fabricated for each reflective call on Class
@@ -1637,8 +1796,8 @@
                                                  exceptionTypes, modifiers, slot,
                                                  signature,
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/reflect/Proxy.java openjdk-boot/jdk/src/share/classes/java/lang/reflect/Proxy.java
---- openjdk-boot.orig/jdk/src/share/classes/java/lang/reflect/Proxy.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/lang/reflect/Proxy.java	2012-09-26 02:21:47.769128510 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/reflect/Proxy.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/lang/reflect/Proxy.java	2012-11-30 15:09:47.203538502 +0000
 @@ -232,7 +232,7 @@
  
      /** maps a class loader to the proxy class cache for that loader */
@@ -1667,8 +1826,8 @@
              }
              /*
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/reflect/ReflectAccess.java openjdk-boot/jdk/src/share/classes/java/lang/reflect/ReflectAccess.java
---- openjdk-boot.orig/jdk/src/share/classes/java/lang/reflect/ReflectAccess.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/lang/reflect/ReflectAccess.java	2012-09-26 02:21:47.769128510 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/reflect/ReflectAccess.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/lang/reflect/ReflectAccess.java	2012-11-30 15:09:47.203538502 +0000
 @@ -84,7 +84,7 @@
                                               byte[] annotations,
                                               byte[] parameterAnnotations)
@@ -1679,8 +1838,8 @@
                                    checkedExceptions,
                                    modifiers,
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/StringCoding.java openjdk-boot/jdk/src/share/classes/java/lang/StringCoding.java
---- openjdk-boot.orig/jdk/src/share/classes/java/lang/StringCoding.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/lang/StringCoding.java	2012-09-26 02:21:47.769128510 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/StringCoding.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/lang/StringCoding.java	2012-11-30 15:09:47.203538502 +0000
 @@ -53,9 +53,9 @@
  
      /** The cached coders for each thread */
@@ -1694,8 +1853,8 @@
      private static boolean warnUnsupportedCharset = true;
  
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/String.java openjdk-boot/jdk/src/share/classes/java/lang/String.java
---- openjdk-boot.orig/jdk/src/share/classes/java/lang/String.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/lang/String.java	2012-09-26 02:21:47.769128510 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/String.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/lang/String.java	2012-11-30 15:09:47.207538565 +0000
 @@ -2282,7 +2282,7 @@
              int off = 0;
              int next = 0;
@@ -1706,8 +1865,8 @@
                  if (!limited || list.size() < limit - 1) {
                      list.add(substring(off, next));
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/Thread.java openjdk-boot/jdk/src/share/classes/java/lang/Thread.java
---- openjdk-boot.orig/jdk/src/share/classes/java/lang/Thread.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/lang/Thread.java	2012-09-26 02:21:47.769128510 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/Thread.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/lang/Thread.java	2012-11-30 15:09:47.207538565 +0000
 @@ -1616,7 +1616,8 @@
          // Get a snapshot of the list of all threads
          Thread[] threads = getThreads();
@@ -1733,8 +1892,8 @@
  
      /**
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/Throwable.java openjdk-boot/jdk/src/share/classes/java/lang/Throwable.java
---- openjdk-boot.orig/jdk/src/share/classes/java/lang/Throwable.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/lang/Throwable.java	2012-09-26 02:21:47.773128570 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/Throwable.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/lang/Throwable.java	2012-11-30 15:09:47.207538565 +0000
 @@ -917,7 +917,7 @@
                  // Use the sentinel for a zero-length list
                  suppressed = SUPPRESSED_SENTINEL;
@@ -1754,8 +1913,8 @@
          suppressedExceptions.add(exception);
      }
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/net/InetAddress.java openjdk-boot/jdk/src/share/classes/java/net/InetAddress.java
---- openjdk-boot.orig/jdk/src/share/classes/java/net/InetAddress.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/net/InetAddress.java	2012-09-26 02:21:47.773128570 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/net/InetAddress.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/net/InetAddress.java	2012-11-30 15:09:47.207538565 +0000
 @@ -677,7 +677,7 @@
  
      static InetAddressImpl  impl;
@@ -1775,8 +1934,8 @@
                  for (String key : cache.keySet()) {
                      CacheEntry entry = cache.get(key);
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/net/URLClassLoader.java openjdk-boot/jdk/src/share/classes/java/net/URLClassLoader.java
---- openjdk-boot.orig/jdk/src/share/classes/java/net/URLClassLoader.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/net/URLClassLoader.java	2012-09-26 02:21:47.773128570 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/net/URLClassLoader.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/net/URLClassLoader.java	2012-11-30 15:09:47.207538565 +0000
 @@ -205,7 +205,7 @@
       */
  
@@ -1787,8 +1946,8 @@
      /**
       * Returns an input stream for reading the specified resource.
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/nio/file/Files.java openjdk-boot/jdk/src/share/classes/java/nio/file/Files.java
---- openjdk-boot.orig/jdk/src/share/classes/java/nio/file/Files.java	2012-09-26 02:14:39.450727908 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/nio/file/Files.java	2012-09-26 02:21:47.773128570 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/nio/file/Files.java	2012-11-30 15:06:27.256404573 +0000
++++ openjdk-boot/jdk/src/share/classes/java/nio/file/Files.java	2012-11-30 15:09:47.207538565 +0000
 @@ -1493,7 +1493,7 @@
              return AccessController
                  .doPrivileged(new PrivilegedAction<List<FileTypeDetector>>() {
@@ -1808,8 +1967,8 @@
                  String line = reader.readLine();
                  if (line == null)
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/security/AccessControlContext.java openjdk-boot/jdk/src/share/classes/java/security/AccessControlContext.java
---- openjdk-boot.orig/jdk/src/share/classes/java/security/AccessControlContext.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/security/AccessControlContext.java	2012-09-26 02:21:47.773128570 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/security/AccessControlContext.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/security/AccessControlContext.java	2012-11-30 15:09:47.207538565 +0000
 @@ -124,7 +124,7 @@
                  this.context = null;
              }
@@ -1820,8 +1979,8 @@
                  if ((context[i] != null) &&  (!v.contains(context[i])))
                      v.add(context[i]);
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/security/BasicPermission.java openjdk-boot/jdk/src/share/classes/java/security/BasicPermission.java
---- openjdk-boot.orig/jdk/src/share/classes/java/security/BasicPermission.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/security/BasicPermission.java	2012-09-26 02:21:47.773128570 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/security/BasicPermission.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/security/BasicPermission.java	2012-11-30 15:09:47.207538565 +0000
 @@ -515,7 +515,7 @@
  
          // Copy perms into a Hashtable
@@ -1832,8 +1991,8 @@
          synchronized (this) {
              permissions.putAll(perms);
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/security/CodeSource.java openjdk-boot/jdk/src/share/classes/java/security/CodeSource.java
---- openjdk-boot.orig/jdk/src/share/classes/java/security/CodeSource.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/security/CodeSource.java	2012-09-26 02:21:47.773128570 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/security/CodeSource.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/security/CodeSource.java	2012-11-30 15:09:47.207538565 +0000
 @@ -188,7 +188,7 @@
          } else if (signers != null) {
              // Convert the code signers to certs
@@ -1857,8 +2016,8 @@
                  int j = i;
  
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/security/Permissions.java openjdk-boot/jdk/src/share/classes/java/security/Permissions.java
---- openjdk-boot.orig/jdk/src/share/classes/java/security/Permissions.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/security/Permissions.java	2012-09-26 02:21:47.773128570 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/security/Permissions.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/security/Permissions.java	2012-11-30 15:09:47.207538565 +0000
 @@ -362,7 +362,7 @@
  
          // Copy perms into a Hashtable
@@ -1878,8 +2037,8 @@
              perms.putAll(permsMap);
          }
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/security/Policy.java openjdk-boot/jdk/src/share/classes/java/security/Policy.java
---- openjdk-boot.orig/jdk/src/share/classes/java/security/Policy.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/security/Policy.java	2012-09-26 02:21:47.773128570 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/security/Policy.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/security/Policy.java	2012-11-30 15:09:47.207538565 +0000
 @@ -118,7 +118,7 @@
  
      // PolicyInfo is stored in an AtomicReference
@@ -1899,8 +2058,8 @@
          }
  
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/security/ProtectionDomain.java openjdk-boot/jdk/src/share/classes/java/security/ProtectionDomain.java
---- openjdk-boot.orig/jdk/src/share/classes/java/security/ProtectionDomain.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/security/ProtectionDomain.java	2012-09-26 02:21:47.773128570 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/security/ProtectionDomain.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/security/ProtectionDomain.java	2012-11-30 15:09:47.211538628 +0000
 @@ -368,8 +368,8 @@
          int swag = 32;
          int vcap = 8;
@@ -1913,8 +2072,8 @@
          //
          // Build a vector of domain permissions for subsequent merge
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/security/Provider.java openjdk-boot/jdk/src/share/classes/java/security/Provider.java
---- openjdk-boot.orig/jdk/src/share/classes/java/security/Provider.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/security/Provider.java	2012-09-26 02:21:47.773128570 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/security/Provider.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/security/Provider.java	2012-11-30 15:09:47.211538628 +0000
 @@ -437,7 +437,7 @@
  
      private void readObject(ObjectInputStream in)
@@ -1943,8 +2102,8 @@
                              Class clazz = getKeyClass(className);
                              if (clazz != null) {
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/security/SecureClassLoader.java openjdk-boot/jdk/src/share/classes/java/security/SecureClassLoader.java
---- openjdk-boot.orig/jdk/src/share/classes/java/security/SecureClassLoader.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/security/SecureClassLoader.java	2012-09-26 02:21:47.777128630 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/security/SecureClassLoader.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/security/SecureClassLoader.java	2012-11-30 15:09:47.211538628 +0000
 @@ -50,7 +50,7 @@
      // HashMap that maps CodeSource to ProtectionDomain
      // @GuardedBy("pdcache")
@@ -1955,8 +2114,8 @@
      private static final Debug debug = Debug.getInstance("scl");
  
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/security/Security.java openjdk-boot/jdk/src/share/classes/java/security/Security.java
---- openjdk-boot.orig/jdk/src/share/classes/java/security/Security.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/security/Security.java	2012-09-26 02:21:47.777128630 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/security/Security.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/security/Security.java	2012-11-30 15:09:47.211538628 +0000
 @@ -546,7 +546,7 @@
              value = filter.substring(index + 1);
          }
@@ -2003,8 +2162,8 @@
  
          for (int i = 0; i < providers.length; i++) {
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/security/UnresolvedPermissionCollection.java openjdk-boot/jdk/src/share/classes/java/security/UnresolvedPermissionCollection.java
---- openjdk-boot.orig/jdk/src/share/classes/java/security/UnresolvedPermissionCollection.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/security/UnresolvedPermissionCollection.java	2012-09-26 02:21:47.777128630 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/security/UnresolvedPermissionCollection.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/security/UnresolvedPermissionCollection.java	2012-11-30 15:09:47.211538628 +0000
 @@ -119,7 +119,7 @@
  
      public Enumeration<Permission> elements() {
@@ -2042,8 +2201,8 @@
  
              // Add to Hashtable being serialized
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/security/UnresolvedPermission.java openjdk-boot/jdk/src/share/classes/java/security/UnresolvedPermission.java
---- openjdk-boot.orig/jdk/src/share/classes/java/security/UnresolvedPermission.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/security/UnresolvedPermission.java	2012-09-26 02:21:47.777128630 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/security/UnresolvedPermission.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/security/UnresolvedPermission.java	2012-11-30 15:09:47.211538628 +0000
 @@ -198,7 +198,7 @@
                  if (this.certs == null) {
                      // extract the signer certs
@@ -2054,8 +2213,8 @@
                      while (i < certs.length) {
                          signerCerts.add(certs[i]);
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/AbstractList.java openjdk-boot/jdk/src/share/classes/java/util/AbstractList.java
---- openjdk-boot.orig/jdk/src/share/classes/java/util/AbstractList.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/util/AbstractList.java	2012-09-26 02:21:47.777128630 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/AbstractList.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/AbstractList.java	2012-11-30 15:09:47.211538628 +0000
 @@ -482,8 +482,8 @@
       */
      public List<E> subList(int fromIndex, int toIndex) {
@@ -2085,8 +2244,8 @@
      }
  }
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/Arrays.java openjdk-boot/jdk/src/share/classes/java/util/Arrays.java
---- openjdk-boot.orig/jdk/src/share/classes/java/util/Arrays.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/util/Arrays.java	2012-09-26 02:21:47.777128630 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/Arrays.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/Arrays.java	2012-11-30 15:09:47.211538628 +0000
 @@ -2825,7 +2825,7 @@
       */
      @SafeVarargs
@@ -2097,8 +2256,8 @@
  
      /**
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/Collections.java openjdk-boot/jdk/src/share/classes/java/util/Collections.java
---- openjdk-boot.orig/jdk/src/share/classes/java/util/Collections.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/util/Collections.java	2012-09-26 02:21:47.777128630 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/Collections.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/Collections.java	2012-11-30 15:09:47.215538690 +0000
 @@ -1035,7 +1035,7 @@
       * @return an unmodifiable view of the specified collection.
       */
@@ -2724,8 +2883,8 @@
  
      /**
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/EnumMap.java openjdk-boot/jdk/src/share/classes/java/util/EnumMap.java
---- openjdk-boot.orig/jdk/src/share/classes/java/util/EnumMap.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/util/EnumMap.java	2012-09-26 02:21:47.777128630 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/EnumMap.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/EnumMap.java	2012-11-30 15:09:47.215538690 +0000
 @@ -508,7 +508,7 @@
              int j = 0;
              for (int i = 0; i < vals.length; i++)
@@ -2736,8 +2895,8 @@
              return a;
          }
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/EnumSet.java openjdk-boot/jdk/src/share/classes/java/util/EnumSet.java
---- openjdk-boot.orig/jdk/src/share/classes/java/util/EnumSet.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/util/EnumSet.java	2012-09-26 02:21:47.777128630 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/EnumSet.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/EnumSet.java	2012-11-30 15:09:47.215538690 +0000
 @@ -110,9 +110,9 @@
              throw new ClassCastException(elementType + " not an enum");
  
@@ -2760,8 +2919,8 @@
  
      // readObject method for the serialization proxy pattern
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/Formatter.java openjdk-boot/jdk/src/share/classes/java/util/Formatter.java
---- openjdk-boot.orig/jdk/src/share/classes/java/util/Formatter.java	2012-09-26 02:14:39.390727017 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/util/Formatter.java	2012-09-26 02:21:47.781128690 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/Formatter.java	2012-11-30 15:06:26.888398807 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/Formatter.java	2012-11-30 15:09:47.215538690 +0000
 @@ -2514,7 +2514,7 @@
       * Finds format specifiers in the format string.
       */
@@ -2772,8 +2931,8 @@
          for (int i = 0, len = s.length(); i < len; ) {
              if (m.find(i)) {
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/HashMap.java openjdk-boot/jdk/src/share/classes/java/util/HashMap.java
---- openjdk-boot.orig/jdk/src/share/classes/java/util/HashMap.java	2012-09-26 02:14:39.390727017 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/util/HashMap.java	2012-09-26 02:21:47.781128690 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/HashMap.java	2012-11-30 15:06:26.892398870 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/HashMap.java	2012-11-30 15:09:47.215538690 +0000
 @@ -868,7 +868,7 @@
       */
      void createEntry(int hash, K key, V value, int bucketIndex) {
@@ -2784,8 +2943,8 @@
      }
  
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/HashSet.java openjdk-boot/jdk/src/share/classes/java/util/HashSet.java
---- openjdk-boot.orig/jdk/src/share/classes/java/util/HashSet.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/util/HashSet.java	2012-09-26 02:21:47.781128690 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/HashSet.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/HashSet.java	2012-11-30 15:09:47.215538690 +0000
 @@ -100,7 +100,7 @@
       * default initial capacity (16) and load factor (0.75).
       */
@@ -2832,8 +2991,8 @@
  
      /**
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/Hashtable.java openjdk-boot/jdk/src/share/classes/java/util/Hashtable.java
---- openjdk-boot.orig/jdk/src/share/classes/java/util/Hashtable.java	2012-09-26 02:14:39.390727017 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/util/Hashtable.java	2012-09-26 02:21:47.781128690 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/Hashtable.java	2012-11-30 15:06:26.892398870 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/Hashtable.java	2012-11-30 15:09:47.215538690 +0000
 @@ -568,7 +568,7 @@
  
          // Creates the new entry.
@@ -2889,8 +3048,8 @@
          }
  
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/IdentityHashMap.java openjdk-boot/jdk/src/share/classes/java/util/IdentityHashMap.java
---- openjdk-boot.orig/jdk/src/share/classes/java/util/IdentityHashMap.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/util/IdentityHashMap.java	2012-09-26 02:21:47.781128690 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/IdentityHashMap.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/IdentityHashMap.java	2012-11-30 15:09:47.215538690 +0000
 @@ -1145,7 +1145,7 @@
              Object[] result = new Object[size];
              Iterator<Map.Entry<K,V>> it = iterator();
@@ -2910,8 +3069,8 @@
                  a[size] = null;
              return a;
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/JumboEnumSet.java openjdk-boot/jdk/src/share/classes/java/util/JumboEnumSet.java
---- openjdk-boot.orig/jdk/src/share/classes/java/util/JumboEnumSet.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/util/JumboEnumSet.java	2012-09-26 02:21:47.781128690 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/JumboEnumSet.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/JumboEnumSet.java	2012-11-30 15:09:47.215538690 +0000
 @@ -91,7 +91,7 @@
       * @return an iterator over the elements contained in this set
       */
@@ -2922,8 +3081,8 @@
  
      private class EnumSetIterator<E extends Enum<E>> implements Iterator<E> {
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/LinkedHashMap.java openjdk-boot/jdk/src/share/classes/java/util/LinkedHashMap.java
---- openjdk-boot.orig/jdk/src/share/classes/java/util/LinkedHashMap.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/util/LinkedHashMap.java	2012-09-26 02:21:47.781128690 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/LinkedHashMap.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/LinkedHashMap.java	2012-11-30 15:09:47.215538690 +0000
 @@ -238,7 +238,7 @@
       */
      @Override
@@ -2943,8 +3102,8 @@
          e.addBefore(header);
          size++;
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/LinkedList.java openjdk-boot/jdk/src/share/classes/java/util/LinkedList.java
---- openjdk-boot.orig/jdk/src/share/classes/java/util/LinkedList.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/util/LinkedList.java	2012-09-26 02:21:47.781128690 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/LinkedList.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/LinkedList.java	2012-11-30 15:09:47.215538690 +0000
 @@ -122,7 +122,7 @@
       */
      private void linkFirst(E e) {
@@ -2982,8 +3141,8 @@
                  first = newNode;
              else
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/ListResourceBundle.java openjdk-boot/jdk/src/share/classes/java/util/ListResourceBundle.java
---- openjdk-boot.orig/jdk/src/share/classes/java/util/ListResourceBundle.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/util/ListResourceBundle.java	2012-09-26 02:21:47.781128690 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/ListResourceBundle.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/ListResourceBundle.java	2012-11-30 15:09:47.219538753 +0000
 @@ -187,7 +187,7 @@
              return;
  
@@ -2994,8 +3153,8 @@
              // key must be non-null String, value must be non-null
              String key = (String) contents[i][0];
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/Locale.java openjdk-boot/jdk/src/share/classes/java/util/Locale.java
---- openjdk-boot.orig/jdk/src/share/classes/java/util/Locale.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/util/Locale.java	2012-09-26 02:21:47.781128690 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/Locale.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/Locale.java	2012-11-30 15:09:47.219538753 +0000
 @@ -1793,7 +1793,7 @@
                  return formatList(variantNames, listPattern, listCompositionPattern);
              }
@@ -3006,8 +3165,8 @@
              names.add(languageName);
          }
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/logging/FileHandler.java openjdk-boot/jdk/src/share/classes/java/util/logging/FileHandler.java
---- openjdk-boot.orig/jdk/src/share/classes/java/util/logging/FileHandler.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/util/logging/FileHandler.java	2012-09-26 02:21:47.781128690 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/logging/FileHandler.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/logging/FileHandler.java	2012-11-30 15:09:47.219538753 +0000
 @@ -127,7 +127,7 @@
      private FileOutputStream lockStream;
      private File files[];
@@ -3018,8 +3177,8 @@
      // A metered stream is a subclass of OutputStream that
      //   (a) forwards all its output to a target stream
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/logging/Level.java openjdk-boot/jdk/src/share/classes/java/util/logging/Level.java
---- openjdk-boot.orig/jdk/src/share/classes/java/util/logging/Level.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/util/logging/Level.java	2012-09-26 02:21:47.781128690 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/logging/Level.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/logging/Level.java	2012-11-30 15:09:47.219538753 +0000
 @@ -59,7 +59,7 @@
   */
  
@@ -3030,8 +3189,8 @@
  
      /**
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/logging/Logger.java openjdk-boot/jdk/src/share/classes/java/util/logging/Logger.java
---- openjdk-boot.orig/jdk/src/share/classes/java/util/logging/Logger.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/util/logging/Logger.java	2012-09-26 02:21:47.781128690 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/logging/Logger.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/logging/Logger.java	2012-11-30 15:09:47.219538753 +0000
 @@ -170,7 +170,7 @@
      private LogManager manager;
      private String name;
@@ -3051,8 +3210,8 @@
              if (ref == null) {
                  // we didn't have a previous parent
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/logging/Logging.java openjdk-boot/jdk/src/share/classes/java/util/logging/Logging.java
---- openjdk-boot.orig/jdk/src/share/classes/java/util/logging/Logging.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/util/logging/Logging.java	2012-09-26 02:21:47.781128690 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/logging/Logging.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/logging/Logging.java	2012-11-30 15:09:47.219538753 +0000
 @@ -56,7 +56,7 @@
  
      public List<String> getLoggerNames() {
@@ -3063,8 +3222,8 @@
          for (; loggers.hasMoreElements();) {
              array.add((String) loggers.nextElement());
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/logging/LogManager.java openjdk-boot/jdk/src/share/classes/java/util/logging/LogManager.java
---- openjdk-boot.orig/jdk/src/share/classes/java/util/logging/LogManager.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/util/logging/LogManager.java	2012-09-26 02:21:47.781128690 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/logging/LogManager.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/logging/LogManager.java	2012-11-30 15:09:47.219538753 +0000
 @@ -156,7 +156,8 @@
      private final static Level defaultLevel = Level.INFO;
  
@@ -3103,8 +3262,8 @@
              int end = ix;
              while (end < hands.length()) {
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/logging/LogRecord.java openjdk-boot/jdk/src/share/classes/java/util/logging/LogRecord.java
---- openjdk-boot.orig/jdk/src/share/classes/java/util/logging/LogRecord.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/util/logging/LogRecord.java	2012-09-26 02:21:47.781128690 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/logging/LogRecord.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/logging/LogRecord.java	2012-11-30 15:09:47.219538753 +0000
 @@ -85,7 +85,8 @@
      private static final AtomicInteger nextThreadId
          = new AtomicInteger(MIN_SEQUENTIAL_THREAD_ID);
@@ -3116,8 +3275,8 @@
      /**
       * @serial Logging message level
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/prefs/AbstractPreferences.java openjdk-boot/jdk/src/share/classes/java/util/prefs/AbstractPreferences.java
---- openjdk-boot.orig/jdk/src/share/classes/java/util/prefs/AbstractPreferences.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/util/prefs/AbstractPreferences.java	2012-09-26 02:21:47.785128749 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/prefs/AbstractPreferences.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/prefs/AbstractPreferences.java	2012-11-30 15:09:47.219538753 +0000
 @@ -155,7 +155,8 @@
       * All known unremoved children of this node.  (This "cache" is consulted
       * prior to calling childSpi() or getChild().
@@ -3148,8 +3307,8 @@
      /**
       * These two classes are used to distinguish NodeChangeEvents on
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/PriorityQueue.java openjdk-boot/jdk/src/share/classes/java/util/PriorityQueue.java
---- openjdk-boot.orig/jdk/src/share/classes/java/util/PriorityQueue.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/util/PriorityQueue.java	2012-09-26 02:21:47.785128749 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/PriorityQueue.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/PriorityQueue.java	2012-11-30 15:09:47.219538753 +0000
 @@ -538,7 +538,7 @@
                      cursor--;
                  else {
@@ -3160,8 +3319,8 @@
                  }
              } else if (lastRetElt != null) {
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/Properties.java openjdk-boot/jdk/src/share/classes/java/util/Properties.java
---- openjdk-boot.orig/jdk/src/share/classes/java/util/Properties.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/util/Properties.java	2012-09-26 02:21:47.785128749 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/Properties.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/Properties.java	2012-11-30 15:09:47.219538753 +0000
 @@ -1010,7 +1010,7 @@
       * @since   1.6
       */
@@ -3172,8 +3331,8 @@
          return h.keySet();
      }
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/regex/Pattern.java openjdk-boot/jdk/src/share/classes/java/util/regex/Pattern.java
---- openjdk-boot.orig/jdk/src/share/classes/java/util/regex/Pattern.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/util/regex/Pattern.java	2012-09-26 02:21:47.785128749 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/regex/Pattern.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/regex/Pattern.java	2012-11-30 15:09:47.223538816 +0000
 @@ -321,7 +321,7 @@
   *     <td headers="matches">Nothing, but quotes all characters until <tt>\E</tt></td></tr>
   * <tr><td valign="top" headers="construct quot"><tt>\E</tt></td>
@@ -3211,8 +3370,8 @@
          static {
              // Unicode character property aliases, defined in
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/regex/UnicodeProp.java openjdk-boot/jdk/src/share/classes/java/util/regex/UnicodeProp.java
---- openjdk-boot.orig/jdk/src/share/classes/java/util/regex/UnicodeProp.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/util/regex/UnicodeProp.java	2012-09-26 02:21:47.785128749 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/regex/UnicodeProp.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/regex/UnicodeProp.java	2012-11-30 15:09:47.223538816 +0000
 @@ -193,8 +193,8 @@
          }
      };
@@ -3225,8 +3384,8 @@
          posix.put("ALPHA", "ALPHABETIC");
          posix.put("LOWER", "LOWERCASE");
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/RegularEnumSet.java openjdk-boot/jdk/src/share/classes/java/util/RegularEnumSet.java
---- openjdk-boot.orig/jdk/src/share/classes/java/util/RegularEnumSet.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/util/RegularEnumSet.java	2012-09-26 02:21:47.785128749 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/RegularEnumSet.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/RegularEnumSet.java	2012-11-30 15:09:47.223538816 +0000
 @@ -72,7 +72,7 @@
       * @return an iterator over the elements contained in this set
       */
@@ -3237,8 +3396,8 @@
  
      private class EnumSetIterator<E extends Enum<E>> implements Iterator<E> {
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/ResourceBundle.java openjdk-boot/jdk/src/share/classes/java/util/ResourceBundle.java
---- openjdk-boot.orig/jdk/src/share/classes/java/util/ResourceBundle.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/util/ResourceBundle.java	2012-09-26 02:21:47.785128749 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/ResourceBundle.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/ResourceBundle.java	2012-11-30 15:09:47.223538816 +0000
 @@ -289,7 +289,7 @@
       * name for compatibility with some workarounds for bug 4212439.
       */
@@ -3303,8 +3462,8 @@
                  if (variants != null) {
                      for (String v : variants) {
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/ServiceLoader.java openjdk-boot/jdk/src/share/classes/java/util/ServiceLoader.java
---- openjdk-boot.orig/jdk/src/share/classes/java/util/ServiceLoader.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/util/ServiceLoader.java	2012-09-26 02:21:47.785128749 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/ServiceLoader.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/ServiceLoader.java	2012-11-30 15:09:47.223538816 +0000
 @@ -191,7 +191,7 @@
      private ClassLoader loader;
  
@@ -3323,7 +3482,7 @@
          try {
              in = u.openStream();
              r = new BufferedReader(new InputStreamReader(in, "utf-8"));
-@@ -463,7 +463,7 @@
+@@ -470,7 +470,7 @@
      public static <S> ServiceLoader<S> load(Class<S> service,
                                              ClassLoader loader)
      {
@@ -3333,8 +3492,8 @@
  
      /**
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/TimSort.java openjdk-boot/jdk/src/share/classes/java/util/TimSort.java
---- openjdk-boot.orig/jdk/src/share/classes/java/util/TimSort.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/util/TimSort.java	2012-09-26 02:21:47.785128749 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/TimSort.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/TimSort.java	2012-11-30 15:09:47.223538816 +0000
 @@ -196,7 +196,7 @@
           * extending short natural runs to minRun elements, and merging runs
           * to maintain stack invariant.
@@ -3345,8 +3504,8 @@
          do {
              // Identify next run
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/TreeMap.java openjdk-boot/jdk/src/share/classes/java/util/TreeMap.java
---- openjdk-boot.orig/jdk/src/share/classes/java/util/TreeMap.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/util/TreeMap.java	2012-09-26 02:21:47.785128749 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/TreeMap.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/TreeMap.java	2012-11-30 15:09:47.223538816 +0000
 @@ -530,7 +530,7 @@
          if (t == null) {
              compare(key, key); // type (and possibly null) check
@@ -3402,8 +3561,8 @@
          // color nodes in non-full bottommost level red
          if (level == redLevel)
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/TreeSet.java openjdk-boot/jdk/src/share/classes/java/util/TreeSet.java
---- openjdk-boot.orig/jdk/src/share/classes/java/util/TreeSet.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/util/TreeSet.java	2012-09-26 02:21:47.785128749 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/TreeSet.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/TreeSet.java	2012-11-30 15:09:47.223538816 +0000
 @@ -138,7 +138,7 @@
       *        ordering} of the elements will be used.
       */
@@ -3471,9 +3630,9 @@
  
          // Read in size
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/WeakHashMap.java openjdk-boot/jdk/src/share/classes/java/util/WeakHashMap.java
---- openjdk-boot.orig/jdk/src/share/classes/java/util/WeakHashMap.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/util/WeakHashMap.java	2012-09-26 02:21:47.789128810 +0100
-@@ -171,7 +171,7 @@
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/WeakHashMap.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/WeakHashMap.java	2012-11-30 15:09:47.223538816 +0000
+@@ -172,7 +172,7 @@
      /**
       * Reference queue for cleared WeakEntries
       */
@@ -3482,7 +3641,7 @@
  
      /**
       * The number of times this WeakHashMap has been structurally modified.
-@@ -528,7 +528,7 @@
+@@ -529,7 +529,7 @@
  
          modCount++;
          Entry<K,V> e = tab[i];
@@ -3491,7 +3650,7 @@
          if (++size >= threshold)
              resize(tab.length * 2);
          return null;
-@@ -1051,9 +1051,10 @@
+@@ -1052,9 +1052,10 @@
          }
  
          private List<Map.Entry<K,V>> deepCopy() {
@@ -3505,8 +3664,8 @@
          }
  
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/zip/ZipFile.java openjdk-boot/jdk/src/share/classes/java/util/zip/ZipFile.java
---- openjdk-boot.orig/jdk/src/share/classes/java/util/zip/ZipFile.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/util/zip/ZipFile.java	2012-09-26 02:21:47.789128810 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/zip/ZipFile.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/zip/ZipFile.java	2012-11-30 15:09:47.227538879 +0000
 @@ -319,7 +319,7 @@
  
      // the outstanding inputstreams that need to be closed,
@@ -3535,8 +3694,8 @@
                      for (Map.Entry<InputStream, Inflater> e : copy.entrySet()) {
                          e.getKey().close();
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/zip/ZipOutputStream.java openjdk-boot/jdk/src/share/classes/java/util/zip/ZipOutputStream.java
---- openjdk-boot.orig/jdk/src/share/classes/java/util/zip/ZipOutputStream.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/util/zip/ZipOutputStream.java	2012-09-26 02:21:47.789128810 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/zip/ZipOutputStream.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/zip/ZipOutputStream.java	2012-11-30 15:09:47.227538879 +0000
 @@ -53,8 +53,8 @@
      }
  
@@ -3549,8 +3708,8 @@
      private long written = 0;
      private long locoff = 0;
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/javax/crypto/CryptoPermissions.java openjdk-boot/jdk/src/share/classes/javax/crypto/CryptoPermissions.java
---- openjdk-boot.orig/jdk/src/share/classes/javax/crypto/CryptoPermissions.java	2012-09-26 02:29:13.867867055 +0100
-+++ openjdk-boot/jdk/src/share/classes/javax/crypto/CryptoPermissions.java	2012-09-26 02:34:09.208365186 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/javax/crypto/CryptoPermissions.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/javax/crypto/CryptoPermissions.java	2012-11-30 15:09:47.227538879 +0000
 @@ -84,7 +84,7 @@
       * no CryptoPermissionCollections.
       */
@@ -3589,8 +3748,8 @@
          fields.put("perms", permTable);
          s.writeFields();
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/javax/crypto/JceSecurityManager.java openjdk-boot/jdk/src/share/classes/javax/crypto/JceSecurityManager.java
---- openjdk-boot.orig/jdk/src/share/classes/javax/crypto/JceSecurityManager.java	2012-09-26 02:52:51.985696217 +0100
-+++ openjdk-boot/jdk/src/share/classes/javax/crypto/JceSecurityManager.java	2012-09-26 02:53:07.277934510 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/javax/crypto/JceSecurityManager.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/javax/crypto/JceSecurityManager.java	2012-11-30 15:09:47.227538879 +0000
 @@ -54,7 +54,7 @@
      private static final CryptoAllPermission allPerm;
      private static final Vector TrustedCallersCache = new Vector(2);
@@ -3601,8 +3760,8 @@
              new CryptoPermissions();
  
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/javax/security/auth/kerberos/DelegationPermission.java openjdk-boot/jdk/src/share/classes/javax/security/auth/kerberos/DelegationPermission.java
---- openjdk-boot.orig/jdk/src/share/classes/javax/security/auth/kerberos/DelegationPermission.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/javax/security/auth/kerberos/DelegationPermission.java	2012-09-26 02:21:47.789128810 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/javax/security/auth/kerberos/DelegationPermission.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/javax/security/auth/kerberos/DelegationPermission.java	2012-11-30 15:09:47.227538879 +0000
 @@ -361,7 +361,7 @@
          // Don't call out.defaultWriteObject()
  
@@ -3613,8 +3772,8 @@
          synchronized (this) {
              permissions.addAll(perms);
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/javax/security/auth/kerberos/ServicePermission.java openjdk-boot/jdk/src/share/classes/javax/security/auth/kerberos/ServicePermission.java
---- openjdk-boot.orig/jdk/src/share/classes/javax/security/auth/kerberos/ServicePermission.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/javax/security/auth/kerberos/ServicePermission.java	2012-09-26 02:21:47.789128810 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/javax/security/auth/kerberos/ServicePermission.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/javax/security/auth/kerberos/ServicePermission.java	2012-11-30 15:09:47.227538879 +0000
 @@ -569,7 +569,7 @@
          // Don't call out.defaultWriteObject()
  
@@ -3625,8 +3784,8 @@
          synchronized (this) {
              permissions.addAll(perms);
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/javax/security/auth/PrivateCredentialPermission.java openjdk-boot/jdk/src/share/classes/javax/security/auth/PrivateCredentialPermission.java
---- openjdk-boot.orig/jdk/src/share/classes/javax/security/auth/PrivateCredentialPermission.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/javax/security/auth/PrivateCredentialPermission.java	2012-09-26 02:21:47.789128810 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/javax/security/auth/PrivateCredentialPermission.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/javax/security/auth/PrivateCredentialPermission.java	2012-11-30 15:09:47.227538879 +0000
 @@ -329,7 +329,7 @@
              throw new IllegalArgumentException("invalid empty name");
          }
@@ -3637,8 +3796,8 @@
          String principalClass = null;
          String principalName = null;
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/javax/security/auth/SubjectDomainCombiner.java openjdk-boot/jdk/src/share/classes/javax/security/auth/SubjectDomainCombiner.java
---- openjdk-boot.orig/jdk/src/share/classes/javax/security/auth/SubjectDomainCombiner.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/javax/security/auth/SubjectDomainCombiner.java	2012-09-26 02:21:47.789128810 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/javax/security/auth/SubjectDomainCombiner.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/javax/security/auth/SubjectDomainCombiner.java	2012-11-30 15:09:47.227538879 +0000
 @@ -48,7 +48,7 @@
  
      private Subject subject;
@@ -3649,18 +3808,18 @@
      private Principal[] principals;
  
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/invoke/util/ValueConversions.java openjdk-boot/jdk/src/share/classes/sun/invoke/util/ValueConversions.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/invoke/util/ValueConversions.java	2012-09-26 02:14:39.462728087 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/invoke/util/ValueConversions.java	2012-09-26 02:21:47.789128810 +0100
-@@ -59,7 +59,7 @@
+--- openjdk-boot.orig/jdk/src/share/classes/sun/invoke/util/ValueConversions.java	2012-11-30 15:06:27.268404761 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/invoke/util/ValueConversions.java	2012-11-30 15:10:21.552077095 +0000
+@@ -60,7 +60,7 @@
          EnumMap<Wrapper, MethodHandle>[] caches
-                 = (EnumMap<Wrapper, MethodHandle>[]) new EnumMap[n];  // unchecked warning expected here
+                 = (EnumMap<Wrapper, MethodHandle>[]) new EnumMap<?,?>[n];
          for (int i = 0; i < n; i++)
 -            caches[i] = new EnumMap<>(Wrapper.class);
-+            caches[i] = new EnumMap<Wrapper, MethodHandle>(Wrapper.class);
++	  caches[i] = new EnumMap<Wrapper, MethodHandle>(Wrapper.class);
          return caches;
      }
  
-@@ -1013,7 +1013,7 @@
+@@ -935,7 +935,7 @@
                                    Object a8, Object a9)
                  { return makeArray(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9); }
      private static MethodHandle[] makeArrays() {
@@ -3669,7 +3828,7 @@
          for (;;) {
              MethodHandle mh = findCollector("array", mhs.size(), Object[].class);
              if (mh == null)  break;
-@@ -1059,7 +1059,7 @@
+@@ -991,7 +991,7 @@
                                    Object a8, Object a9)
                  { fillWithArguments(a, pos, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9); return a; }
      private static MethodHandle[] makeFillArrays() {
@@ -3677,8 +3836,8 @@
 +        ArrayList<MethodHandle> mhs = new ArrayList<MethodHandle>();
          mhs.add(null);  // there is no empty fill; at least a0 is required
          for (;;) {
-             MethodHandle mh = findCollector("fillArray", mhs.size(), Object[].class, Object[].class, Integer.class);
-@@ -1214,7 +1214,7 @@
+             MethodHandle mh = findCollector("fillArray", mhs.size(), Object[].class, Integer.class, Object[].class);
+@@ -1192,7 +1192,7 @@
                                       Object a8, Object a9)
                  { return makeList(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9); }
      private static MethodHandle[] makeLists() {
@@ -3688,8 +3847,8 @@
              MethodHandle mh = findCollector("list", mhs.size(), List.class);
              if (mh == null)  break;
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/io/CharacterEncoding.java openjdk-boot/jdk/src/share/classes/sun/io/CharacterEncoding.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/io/CharacterEncoding.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/io/CharacterEncoding.java	2012-09-26 02:21:47.789128810 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/io/CharacterEncoding.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/io/CharacterEncoding.java	2012-11-30 15:09:47.227538879 +0000
 @@ -54,7 +54,7 @@
      private static volatile boolean installedAll;
  
@@ -3700,8 +3859,8 @@
          aliasTable.put("us-ascii",              "ASCII");
          aliasTable.put("ascii",                 "ASCII");
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/io/Converters.java openjdk-boot/jdk/src/share/classes/sun/io/Converters.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/io/Converters.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/io/Converters.java	2012-09-26 02:21:47.789128810 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/io/Converters.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/io/Converters.java	2012-11-30 15:09:47.227538879 +0000
 @@ -120,7 +120,7 @@
  
      private static Class<?> cache(int type, Object encoding, Class<?> c) {
@@ -3712,8 +3871,8 @@
          return c;
      }
 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	2012-09-26 02:14:39.454727968 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/launcher/LauncherHelper.java	2012-09-26 02:21:47.789128810 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/launcher/LauncherHelper.java	2012-11-30 15:06:27.260404636 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/launcher/LauncherHelper.java	2012-11-30 15:09:47.227538879 +0000
 @@ -171,7 +171,7 @@
      private static void printProperties(PrintStream ostream) {
          Properties p = System.getProperties();
@@ -3751,8 +3910,8 @@
              System.err.println("Incoming arguments:");
          }
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/management/ManagementFactoryHelper.java openjdk-boot/jdk/src/share/classes/sun/management/ManagementFactoryHelper.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/management/ManagementFactoryHelper.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/management/ManagementFactoryHelper.java	2012-09-26 02:21:47.789128810 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/management/ManagementFactoryHelper.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/management/ManagementFactoryHelper.java	2012-11-30 15:09:47.227538879 +0000
 @@ -205,7 +205,7 @@
      private static List<BufferPoolMXBean> bufferPools = null;
      public static synchronized List<BufferPoolMXBean> getBufferPoolMXBeans() {
@@ -3763,8 +3922,8 @@
                  .getDirectBufferPool()));
              bufferPools.add(createBufferPoolMXBean(sun.nio.ch.FileChannelImpl
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/net/spi/nameservice/dns/DNSNameService.java openjdk-boot/jdk/src/share/classes/sun/net/spi/nameservice/dns/DNSNameService.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/net/spi/nameservice/dns/DNSNameService.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/net/spi/nameservice/dns/DNSNameService.java	2012-09-26 02:21:47.789128810 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/net/spi/nameservice/dns/DNSNameService.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/net/spi/nameservice/dns/DNSNameService.java	2012-11-30 15:09:47.231538941 +0000
 @@ -52,7 +52,7 @@
  
      // Per-thread soft cache of the last temporary context
@@ -3793,8 +3952,8 @@
  
          // do the query
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/net/www/protocol/http/AuthenticationInfo.java openjdk-boot/jdk/src/share/classes/sun/net/www/protocol/http/AuthenticationInfo.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/net/www/protocol/http/AuthenticationInfo.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/net/www/protocol/http/AuthenticationInfo.java	2012-09-26 02:21:47.789128810 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/net/www/protocol/http/AuthenticationInfo.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/net/www/protocol/http/AuthenticationInfo.java	2012-11-30 15:09:47.231538941 +0000
 @@ -111,7 +111,7 @@
       * at the same time, then all but the first will block until
       * the first completes its authentication.
@@ -3805,9 +3964,9 @@
      /* check if a request for this destination is in progress
       * return false immediately if not. Otherwise block until
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/net/www/protocol/http/HttpURLConnection.java openjdk-boot/jdk/src/share/classes/sun/net/www/protocol/http/HttpURLConnection.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/net/www/protocol/http/HttpURLConnection.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/net/www/protocol/http/HttpURLConnection.java	2012-09-26 02:21:47.789128810 +0100
-@@ -2628,7 +2628,7 @@
+--- openjdk-boot.orig/jdk/src/share/classes/sun/net/www/protocol/http/HttpURLConnection.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/net/www/protocol/http/HttpURLConnection.java	2012-11-30 15:09:47.231538941 +0000
+@@ -2629,7 +2629,7 @@
          if (filteredHeaders != null)
              return filteredHeaders;
  
@@ -3816,7 +3975,7 @@
  
          if (cachedHeaders != null)
              headers = cachedHeaders.getHeaders();
-@@ -2637,7 +2637,7 @@
+@@ -2638,7 +2638,7 @@
  
          for (Map.Entry<String, List<String>> e: headers.entrySet()) {
              String key = e.getKey();
@@ -3826,8 +3985,8 @@
                  String fVal = filterHeaderField(key, value);
                  if (fVal != null)
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/net/www/URLConnection.java openjdk-boot/jdk/src/share/classes/sun/net/www/URLConnection.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/net/www/URLConnection.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/net/www/URLConnection.java	2012-09-26 02:21:47.789128810 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/net/www/URLConnection.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/net/www/URLConnection.java	2012-11-30 15:09:47.231538941 +0000
 @@ -239,7 +239,7 @@
          url = null;
      }
@@ -3838,8 +3997,8 @@
      public synchronized static void setProxiedHost(String host) {
          proxiedHosts.put(host.toLowerCase(), null);
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/nio/cs/AbstractCharsetProvider.java openjdk-boot/jdk/src/share/classes/sun/nio/cs/AbstractCharsetProvider.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/nio/cs/AbstractCharsetProvider.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/nio/cs/AbstractCharsetProvider.java	2012-09-26 02:21:47.789128810 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/nio/cs/AbstractCharsetProvider.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/nio/cs/AbstractCharsetProvider.java	2012-11-30 15:09:47.231538941 +0000
 @@ -49,22 +49,22 @@
      /* Maps canonical names to class names
       */
@@ -3877,8 +4036,8 @@
  
          return new Iterator<Charset>() {
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/nio/fs/AbstractAclFileAttributeView.java openjdk-boot/jdk/src/share/classes/sun/nio/fs/AbstractAclFileAttributeView.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/nio/fs/AbstractAclFileAttributeView.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/nio/fs/AbstractAclFileAttributeView.java	2012-09-26 02:21:47.793128871 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/nio/fs/AbstractAclFileAttributeView.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/nio/fs/AbstractAclFileAttributeView.java	2012-11-30 15:09:47.231538941 +0000
 @@ -84,7 +84,7 @@
              throw new IllegalArgumentException("'" + name() + ":" +
                  attribute + "' not recognized");
@@ -3889,8 +4048,8 @@
              result.put(ACL_NAME, getAcl());
          if (owner)
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/nio/fs/AbstractBasicFileAttributeView.java openjdk-boot/jdk/src/share/classes/sun/nio/fs/AbstractBasicFileAttributeView.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/nio/fs/AbstractBasicFileAttributeView.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/nio/fs/AbstractBasicFileAttributeView.java	2012-09-26 02:21:47.793128871 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/nio/fs/AbstractBasicFileAttributeView.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/nio/fs/AbstractBasicFileAttributeView.java	2012-11-30 15:09:47.231538941 +0000
 @@ -89,8 +89,8 @@
       * Used to build a map of attribute name/values.
       */
@@ -3903,8 +4062,8 @@
  
          private AttributesBuilder(Set<String> allowed, String[] requested) {
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/nio/fs/AbstractPoller.java openjdk-boot/jdk/src/share/classes/sun/nio/fs/AbstractPoller.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/nio/fs/AbstractPoller.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/nio/fs/AbstractPoller.java	2012-09-26 02:21:47.793128871 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/nio/fs/AbstractPoller.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/nio/fs/AbstractPoller.java	2012-11-30 15:09:47.231538941 +0000
 @@ -102,7 +102,7 @@
              throw new NullPointerException();
          if (events.length == 0)
@@ -3915,8 +4074,8 @@
              // standard events
              if (event == StandardWatchEventKinds.ENTRY_CREATE ||
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/nio/fs/AbstractUserDefinedFileAttributeView.java openjdk-boot/jdk/src/share/classes/sun/nio/fs/AbstractUserDefinedFileAttributeView.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/nio/fs/AbstractUserDefinedFileAttributeView.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/nio/fs/AbstractUserDefinedFileAttributeView.java	2012-09-26 02:21:47.793128871 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/nio/fs/AbstractUserDefinedFileAttributeView.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/nio/fs/AbstractUserDefinedFileAttributeView.java	2012-11-30 15:09:47.231538941 +0000
 @@ -77,7 +77,7 @@
          throws IOException
      {
@@ -3936,8 +4095,8 @@
              int size = size(name);
              byte[] buf = new byte[size];
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/nio/fs/FileOwnerAttributeViewImpl.java openjdk-boot/jdk/src/share/classes/sun/nio/fs/FileOwnerAttributeViewImpl.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/nio/fs/FileOwnerAttributeViewImpl.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/nio/fs/FileOwnerAttributeViewImpl.java	2012-09-26 02:21:47.793128871 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/nio/fs/FileOwnerAttributeViewImpl.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/nio/fs/FileOwnerAttributeViewImpl.java	2012-11-30 15:09:47.231538941 +0000
 @@ -71,7 +71,7 @@
  
      @Override
@@ -3948,8 +4107,8 @@
              if (attribute.equals("*") || attribute.equals(OWNER_NAME)) {
                  result.put(OWNER_NAME, getOwner());
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/nio/fs/Util.java openjdk-boot/jdk/src/share/classes/sun/nio/fs/Util.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/nio/fs/Util.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/nio/fs/Util.java	2012-09-26 02:21:47.793128871 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/nio/fs/Util.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/nio/fs/Util.java	2012-11-30 15:09:47.231538941 +0000
 @@ -63,7 +63,7 @@
       * Returns a Set containing the given elements.
       */
@@ -3969,8 +4128,8 @@
              set.add(e);
          }
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/reflect/generics/parser/SignatureParser.java openjdk-boot/jdk/src/share/classes/sun/reflect/generics/parser/SignatureParser.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/reflect/generics/parser/SignatureParser.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/reflect/generics/parser/SignatureParser.java	2012-09-26 02:21:47.793128871 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/reflect/generics/parser/SignatureParser.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/reflect/generics/parser/SignatureParser.java	2012-11-30 15:09:47.231538941 +0000
 @@ -229,7 +229,7 @@
       *     "<" FormalTypeParameter+ ">"
       */
@@ -4035,8 +4194,8 @@
              ets.add(parseThrowsSignature());
          }
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/rmi/server/Activation.java openjdk-boot/jdk/src/share/classes/sun/rmi/server/Activation.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/server/Activation.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/rmi/server/Activation.java	2012-09-26 02:21:47.793128871 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/server/Activation.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/rmi/server/Activation.java	2012-11-30 15:09:47.231538941 +0000
 @@ -150,10 +150,10 @@
  
      /** maps activation id to its respective group id */
@@ -4064,8 +4223,8 @@
      }
  
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/acl/AclEntryImpl.java openjdk-boot/jdk/src/share/classes/sun/security/acl/AclEntryImpl.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/acl/AclEntryImpl.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/acl/AclEntryImpl.java	2012-09-26 02:21:47.793128871 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/acl/AclEntryImpl.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/acl/AclEntryImpl.java	2012-11-30 15:09:47.231538941 +0000
 @@ -37,7 +37,7 @@
   */
  public class AclEntryImpl implements AclEntry {
@@ -4076,8 +4235,8 @@
  
      /**
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/acl/AclImpl.java openjdk-boot/jdk/src/share/classes/sun/security/acl/AclImpl.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/acl/AclImpl.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/acl/AclImpl.java	2012-09-26 02:21:47.793128871 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/acl/AclImpl.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/acl/AclImpl.java	2012-11-30 15:09:47.235539004 +0000
 @@ -41,15 +41,15 @@
      // or principal.
      //
@@ -4118,8 +4277,8 @@
          while (e1.hasMoreElements())
              v.addElement(e1.nextElement());
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/acl/GroupImpl.java openjdk-boot/jdk/src/share/classes/sun/security/acl/GroupImpl.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/acl/GroupImpl.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/acl/GroupImpl.java	2012-09-26 02:21:47.793128871 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/acl/GroupImpl.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/acl/GroupImpl.java	2012-11-30 15:09:47.235539004 +0000
 @@ -34,7 +34,7 @@
   * @author      Satish Dharmaraj
   */
@@ -4139,8 +4298,8 @@
          }
      }
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/jca/ProviderList.java openjdk-boot/jdk/src/share/classes/sun/security/jca/ProviderList.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/jca/ProviderList.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/jca/ProviderList.java	2012-09-26 02:21:47.793128871 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/jca/ProviderList.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/jca/ProviderList.java	2012-11-30 15:09:47.235539004 +0000
 @@ -96,7 +96,7 @@
          if (providerList.getProvider(p.getName()) != null) {
              return providerList;
@@ -4178,8 +4337,8 @@
              ids.add(new ServiceId(type, alg));
          }
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/jca/Providers.java openjdk-boot/jdk/src/share/classes/sun/security/jca/Providers.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/jca/Providers.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/jca/Providers.java	2012-09-26 02:21:47.793128871 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/jca/Providers.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/jca/Providers.java	2012-11-30 15:09:47.235539004 +0000
 @@ -40,7 +40,7 @@
  public class Providers {
  
@@ -4190,8 +4349,8 @@
      // number of threads currently using thread-local provider lists
      // tracked to allow an optimization if == 0
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/jgss/krb5/Krb5Util.java openjdk-boot/jdk/src/share/classes/sun/security/jgss/krb5/Krb5Util.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/jgss/krb5/Krb5Util.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/jgss/krb5/Krb5Util.java	2012-09-26 02:21:47.793128871 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/jgss/krb5/Krb5Util.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/jgss/krb5/Krb5Util.java	2012-11-30 15:09:47.235539004 +0000
 @@ -267,7 +267,7 @@
              if (ktabs.isEmpty()) {
                  return kk.toArray(new KerberosKey[kk.size()]);
@@ -4202,8 +4361,8 @@
                      for (KerberosKey k: ktab.getKeys(kp)) {
                          keys.add(k);
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/Config.java openjdk-boot/jdk/src/share/classes/sun/security/krb5/Config.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/Config.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/Config.java	2012-09-26 02:21:47.793128871 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/Config.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/Config.java	2012-11-30 15:09:47.235539004 +0000
 @@ -576,7 +576,7 @@
                  }
                  })));
@@ -4281,8 +4440,8 @@
              for (int i = 0; i < len; i++) {
                  type = getType(st.nextToken());
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/Authenticator.java openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/Authenticator.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/Authenticator.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/Authenticator.java	2012-09-26 02:21:47.793128871 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/Authenticator.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/Authenticator.java	2012-11-30 15:09:47.235539004 +0000
 @@ -176,7 +176,7 @@
       * @exception IOException if an I/O error occurs while reading encoded data.
       */
@@ -4293,8 +4452,8 @@
          temp.putInteger(BigInteger.valueOf(authenticator_vno));
          v.addElement(new DerValue(DerValue.createTag(DerValue.TAG_CONTEXT, true, (byte) 0x00), temp.toByteArray()));
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/AuthorizationData.java openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/AuthorizationData.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/AuthorizationData.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/AuthorizationData.java	2012-09-26 02:21:47.793128871 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/AuthorizationData.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/AuthorizationData.java	2012-11-30 15:09:47.235539004 +0000
 @@ -99,7 +99,7 @@
       * @exception IOException if an I/O error occurs while reading encoded data.
       */
@@ -4305,9 +4464,9 @@
              throw new Asn1Exception(Krb5.ASN1_BAD_ID);
          }
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/ccache/FileCredentialsCache.java openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/ccache/FileCredentialsCache.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/ccache/FileCredentialsCache.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/ccache/FileCredentialsCache.java	2012-09-26 02:21:47.793128871 +0100
-@@ -490,7 +490,7 @@
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/ccache/FileCredentialsCache.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/ccache/FileCredentialsCache.java	2012-11-30 15:09:47.235539004 +0000
+@@ -498,7 +498,7 @@
  
      private static String exec(String c) {
          StringTokenizer st = new StringTokenizer(c);
@@ -4317,8 +4476,8 @@
              v.addElement(st.nextToken());
          }
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/crypto/EType.java openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/crypto/EType.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/crypto/EType.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/crypto/EType.java	2012-09-26 02:21:47.793128871 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/crypto/EType.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/crypto/EType.java	2012-11-30 15:09:47.235539004 +0000
 @@ -257,7 +257,7 @@
                  + configName);
          }
@@ -4329,8 +4488,8 @@
              if (EncryptionKey.findKey(answer[i], keys) != null) {
                  list.add(answer[i]);
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/EncAPRepPart.java openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/EncAPRepPart.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/EncAPRepPart.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/EncAPRepPart.java	2012-09-26 02:21:47.793128871 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/EncAPRepPart.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/EncAPRepPart.java	2012-11-30 15:09:47.235539004 +0000
 @@ -133,7 +133,7 @@
       * @exception IOException if an I/O error occurs while reading encoded data.
       */
@@ -4341,8 +4500,8 @@
          v.addElement(new DerValue(DerValue.createTag(DerValue.TAG_CONTEXT,
                  true, (byte) 0x00), ctime.asn1Encode()));
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/HostAddresses.java openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/HostAddresses.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/HostAddresses.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/HostAddresses.java	2012-09-26 02:21:47.797128931 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/HostAddresses.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/HostAddresses.java	2012-11-30 15:09:47.235539004 +0000
 @@ -179,7 +179,7 @@
      */
      public HostAddresses(DerValue encoding)
@@ -4362,8 +4521,8 @@
          for (int i = 0; i < addresses.length; i++) {
              try {
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/KDCReqBody.java openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/KDCReqBody.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/KDCReqBody.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/KDCReqBody.java	2012-09-26 02:21:47.797128931 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/KDCReqBody.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/KDCReqBody.java	2012-11-30 15:09:47.235539004 +0000
 @@ -158,7 +158,7 @@
              throw new Asn1Exception(Krb5.ASN1_BAD_ID);
          }
@@ -4392,8 +4551,8 @@
          if (msgType == Krb5.KRB_AS_REQ) {
              if (cname != null) {
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/KDCReq.java openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/KDCReq.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/KDCReq.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/KDCReq.java	2012-09-26 02:21:47.797128931 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/KDCReq.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/KDCReq.java	2012-11-30 15:09:47.235539004 +0000
 @@ -150,7 +150,7 @@
              if (subsubDer.getTag() != DerValue.tag_SequenceOf) {
                  throw new Asn1Exception(Krb5.ASN1_BAD_ID);
@@ -4404,8 +4563,8 @@
                  v.addElement(new PAData(subsubDer.getData().getDerValue()));
              }
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/KrbCredInfo.java openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/KrbCredInfo.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/KrbCredInfo.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/KrbCredInfo.java	2012-09-26 02:21:47.797128931 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/KrbCredInfo.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/KrbCredInfo.java	2012-11-30 15:09:47.235539004 +0000
 @@ -157,7 +157,7 @@
       * @exception IOException if an I/O error occurs while reading encoded data.
       */
@@ -4416,8 +4575,8 @@
          if (prealm != null)
              v.addElement(new DerValue(DerValue.createTag(DerValue.TAG_CONTEXT, true, (byte)0x01), prealm.asn1Encode()));
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/KRBCred.java openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/KRBCred.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/KRBCred.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/KRBCred.java	2012-09-26 02:21:47.797128931 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/KRBCred.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/KRBCred.java	2012-11-30 15:09:47.235539004 +0000
 @@ -134,7 +134,7 @@
              if (subsubDer.getTag() != DerValue.tag_SequenceOf) {
                  throw new Asn1Exception(Krb5.ASN1_BAD_ID);
@@ -4428,8 +4587,8 @@
                  v.addElement(new Ticket(subsubDer.getData().getDerValue()));
              }
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/KRBError.java openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/KRBError.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/KRBError.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/KRBError.java	2012-09-26 02:21:47.797128931 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/KRBError.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/KRBError.java	2012-11-30 15:09:47.239539067 +0000
 @@ -259,7 +259,7 @@
      private void parsePAData(byte[] data)
              throws IOException, Asn1Exception {
@@ -4440,8 +4599,8 @@
              // read the PA-DATA
              DerValue tmp = derPA.data.getDerValue();
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/ktab/KeyTab.java openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/ktab/KeyTab.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/ktab/KeyTab.java	2012-09-26 02:14:39.450727908 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/ktab/KeyTab.java	2012-09-26 02:21:47.797128931 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/ktab/KeyTab.java	2012-11-30 15:06:27.256404573 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/ktab/KeyTab.java	2012-11-30 15:09:47.239539067 +0000
 @@ -67,7 +67,7 @@
  
      // Attention: Currently there is no way to remove a keytab from this map,
@@ -4479,8 +4638,8 @@
          for (int i = entries.size()-1; i >= 0; i--) {
              KeyTabEntry e = entries.get(i);
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/LastReq.java openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/LastReq.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/LastReq.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/LastReq.java	2012-09-26 02:21:47.797128931 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/LastReq.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/LastReq.java	2012-11-30 15:09:47.239539067 +0000
 @@ -77,7 +77,7 @@
       */
  
@@ -4491,8 +4650,8 @@
              throw new Asn1Exception(Krb5.ASN1_BAD_ID);
          }
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/KdcComm.java openjdk-boot/jdk/src/share/classes/sun/security/krb5/KdcComm.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/KdcComm.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/KdcComm.java	2012-09-26 02:21:47.797128931 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/KdcComm.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/KdcComm.java	2012-11-30 15:09:47.239539067 +0000
 @@ -462,7 +462,7 @@
       */
      static class KdcAccessibility {
@@ -4515,8 +4674,8 @@
                      String t = st.nextToken();
                      if (bads.contains(t)) badkdcs.add(t);
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/PrincipalName.java openjdk-boot/jdk/src/share/classes/sun/security/krb5/PrincipalName.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/PrincipalName.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/PrincipalName.java	2012-09-26 02:21:47.797128931 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/PrincipalName.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/PrincipalName.java	2012-11-30 15:09:47.239539067 +0000
 @@ -238,7 +238,7 @@
              if (subDer.getTag() != DerValue.tag_SequenceOf) {
                  throw new Asn1Exception(Krb5.ASN1_BAD_ID);
@@ -4536,8 +4695,8 @@
          int i = 0;
          int componentStart = 0;
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/Realm.java openjdk-boot/jdk/src/share/classes/sun/security/krb5/Realm.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/Realm.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/Realm.java	2012-09-26 02:21:47.797128931 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/Realm.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/Realm.java	2012-11-30 15:09:47.239539067 +0000
 @@ -359,14 +359,14 @@
          }
  
@@ -4556,8 +4715,8 @@
  
          int count = 0; // For debug only
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/provider/certpath/DistributionPointFetcher.java openjdk-boot/jdk/src/share/classes/sun/security/provider/certpath/DistributionPointFetcher.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/provider/certpath/DistributionPointFetcher.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/provider/certpath/DistributionPointFetcher.java	2012-09-26 02:21:47.797128931 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/provider/certpath/DistributionPointFetcher.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/provider/certpath/DistributionPointFetcher.java	2012-11-30 15:09:47.239539067 +0000
 @@ -590,7 +590,7 @@
              // Except the performance improvement, another benefit is to break
              // the dead loop while looking for the issuer back and forth
@@ -4568,8 +4727,8 @@
              if (prevKey != null) {
                  // Add the previous certificate as a trust anchor.
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/provider/JavaKeyStore.java openjdk-boot/jdk/src/share/classes/sun/security/provider/JavaKeyStore.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/provider/JavaKeyStore.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/provider/JavaKeyStore.java	2012-09-26 02:21:47.797128931 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/provider/JavaKeyStore.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/provider/JavaKeyStore.java	2012-11-30 15:09:47.239539067 +0000
 @@ -683,7 +683,7 @@
                      // Read the certificate chain
                      int numOfCerts = dis.readInt();
@@ -4580,8 +4739,8 @@
                          for (int j = 0; j < numOfCerts; j++) {
                              if (xVersion == 2) {
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/provider/PolicyFile.java openjdk-boot/jdk/src/share/classes/sun/security/provider/PolicyFile.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/provider/PolicyFile.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/provider/PolicyFile.java	2012-09-26 02:21:47.797128931 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/provider/PolicyFile.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/provider/PolicyFile.java	2012-11-30 15:09:47.239539067 +0000
 @@ -299,7 +299,7 @@
      private static final int DEFAULT_CACHE_SIZE = 1;
  
@@ -4637,8 +4796,8 @@
                          while (i < certs.length) {
                              signerCerts.add(certs[i]);
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/provider/Sun.java openjdk-boot/jdk/src/share/classes/sun/security/provider/Sun.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/provider/Sun.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/provider/Sun.java	2012-09-26 02:21:47.797128931 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/provider/Sun.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/provider/Sun.java	2012-11-30 15:09:47.239539067 +0000
 @@ -55,7 +55,7 @@
              SunEntries.putEntries(this);
          } else {
@@ -4649,8 +4808,8 @@
              AccessController.doPrivileged(new PutAllAction(this, map));
          }
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/provider/VerificationProvider.java openjdk-boot/jdk/src/share/classes/sun/security/provider/VerificationProvider.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/provider/VerificationProvider.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/provider/VerificationProvider.java	2012-09-26 02:21:47.797128931 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/provider/VerificationProvider.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/provider/VerificationProvider.java	2012-11-30 15:09:47.239539067 +0000
 @@ -76,7 +76,7 @@
              SunRsaSignEntries.putEntries(this);
          } else {
@@ -4661,8 +4820,8 @@
              SunRsaSignEntries.putEntries(map);
              AccessController.doPrivileged(new PutAllAction(this, map));
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/provider/X509Factory.java openjdk-boot/jdk/src/share/classes/sun/security/provider/X509Factory.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/provider/X509Factory.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/provider/X509Factory.java	2012-09-26 02:21:47.797128931 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/provider/X509Factory.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/provider/X509Factory.java	2012-11-30 15:09:47.239539067 +0000
 @@ -409,10 +409,10 @@
          parseX509orPKCS7Cert(InputStream is)
          throws CertificateException, IOException
@@ -4708,8 +4867,8 @@
          } catch (ParsingException e) {
              while (data != null) {
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/rsa/RSACore.java openjdk-boot/jdk/src/share/classes/sun/security/rsa/RSACore.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/rsa/RSACore.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/rsa/RSACore.java	2012-09-26 02:21:47.797128931 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/rsa/RSACore.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/rsa/RSACore.java	2012-11-30 15:09:47.239539067 +0000
 @@ -219,7 +219,7 @@
      // use a weak hashmap so that cached values are automatically cleared
      // when the modulus is GC'ed
@@ -4720,8 +4879,8 @@
      /**
       * Set of blinding parameters for a given RSA key.
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/rsa/SunRsaSign.java openjdk-boot/jdk/src/share/classes/sun/security/rsa/SunRsaSign.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/rsa/SunRsaSign.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/rsa/SunRsaSign.java	2012-09-26 02:21:47.797128931 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/rsa/SunRsaSign.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/rsa/SunRsaSign.java	2012-11-30 15:09:47.243539129 +0000
 @@ -52,7 +52,7 @@
              SunRsaSignEntries.putEntries(this);
          } else {
@@ -4732,8 +4891,8 @@
              AccessController.doPrivileged(new PutAllAction(this, map));
          }
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/CipherSuite.java openjdk-boot/jdk/src/share/classes/sun/security/ssl/CipherSuite.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/CipherSuite.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/CipherSuite.java	2012-09-26 02:21:47.801128991 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/CipherSuite.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/CipherSuite.java	2012-11-30 15:09:47.243539129 +0000
 @@ -393,7 +393,7 @@
  
          // Map BulkCipher -> Boolean(available)
@@ -4744,8 +4903,8 @@
          // descriptive name including key size, e.g. AES/128
          final String description;
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/ClientHandshaker.java openjdk-boot/jdk/src/share/classes/sun/security/ssl/ClientHandshaker.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/ClientHandshaker.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/ClientHandshaker.java	2012-09-26 02:21:47.801128991 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/ClientHandshaker.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/ClientHandshaker.java	2012-11-30 15:09:47.243539129 +0000
 @@ -656,7 +656,7 @@
          if (certRequest != null) {
              X509ExtendedKeyManager km = sslContext.getX509KeyManager();
@@ -4774,8 +4933,8 @@
                  if (suite != CipherSuite.C_SCSV) {
                      cipherList.add(suite);
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/HandshakeMessage.java openjdk-boot/jdk/src/share/classes/sun/security/ssl/HandshakeMessage.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/HandshakeMessage.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/HandshakeMessage.java	2012-09-26 02:21:47.801128991 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/HandshakeMessage.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/HandshakeMessage.java	2012-11-30 15:09:47.243539129 +0000
 @@ -258,7 +258,7 @@
      // add server_name extension
      void addServerNameIndicationExtension(String hostname) {
@@ -4813,8 +4972,8 @@
      private static void digestKey(MessageDigest md, SecretKey key) {
          try {
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/Handshaker.java openjdk-boot/jdk/src/share/classes/sun/security/ssl/Handshaker.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/Handshaker.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/Handshaker.java	2012-09-26 02:21:47.801128991 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/Handshaker.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/Handshaker.java	2012-11-30 15:09:47.243539129 +0000
 @@ -569,7 +569,7 @@
                  activeProtocols = getActiveProtocols();
              }
@@ -4834,8 +4993,8 @@
                  boolean found = false;
                  for (CipherSuite suite : enabledCipherSuites.collection()) {
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/HelloExtensions.java openjdk-boot/jdk/src/share/classes/sun/security/ssl/HelloExtensions.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/HelloExtensions.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/HelloExtensions.java	2012-09-26 02:21:47.801128991 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/HelloExtensions.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/HelloExtensions.java	2012-11-30 15:09:47.243539129 +0000
 @@ -169,7 +169,7 @@
          return name;
      }
@@ -4855,8 +5014,8 @@
              list.add(toString(format));
          }
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/ProtocolList.java openjdk-boot/jdk/src/share/classes/sun/security/ssl/ProtocolList.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/ProtocolList.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/ProtocolList.java	2012-09-26 02:21:47.801128991 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/ProtocolList.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/ProtocolList.java	2012-11-30 15:09:47.243539129 +0000
 @@ -79,7 +79,7 @@
              throw new IllegalArgumentException("Protocols may not be null");
          }
@@ -4867,8 +5026,8 @@
              ProtocolVersion version = ProtocolVersion.valueOf(names[i]);
              if (versions.contains(version) == false) {
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/SignatureAndHashAlgorithm.java openjdk-boot/jdk/src/share/classes/sun/security/ssl/SignatureAndHashAlgorithm.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/SignatureAndHashAlgorithm.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/SignatureAndHashAlgorithm.java	2012-09-26 02:21:47.801128991 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/SignatureAndHashAlgorithm.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/SignatureAndHashAlgorithm.java	2012-11-30 15:09:47.243539129 +0000
 @@ -156,7 +156,7 @@
      static Collection<SignatureAndHashAlgorithm>
              getSupportedAlgorithms(AlgorithmConstraints constraints) {
@@ -4906,8 +5065,8 @@
              for (SignatureAndHashAlgorithm sigAlg : algorithms) {
                  if (sigAlg.hash.value > 0) {
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/SSLAlgorithmConstraints.java openjdk-boot/jdk/src/share/classes/sun/security/ssl/SSLAlgorithmConstraints.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/SSLAlgorithmConstraints.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/SSLAlgorithmConstraints.java	2012-09-26 02:21:47.801128991 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/SSLAlgorithmConstraints.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/SSLAlgorithmConstraints.java	2012-11-30 15:09:47.243539129 +0000
 @@ -261,7 +261,7 @@
  
          protected Set<String> decomposes(KeyExchange keyExchange,
@@ -4954,8 +5113,8 @@
                      if(cipherSuite.keyExchange != null) {
                          components.addAll(
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/SSLContextImpl.java openjdk-boot/jdk/src/share/classes/sun/security/ssl/SSLContextImpl.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/SSLContextImpl.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/SSLContextImpl.java	2012-09-26 02:21:47.801128991 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/SSLContextImpl.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/SSLContextImpl.java	2012-11-30 15:09:47.243539129 +0000
 @@ -331,7 +331,7 @@
          Collection<CipherSuite> allowedCipherSuites =
                                      CipherSuite.allowedCipherSuites();
@@ -4984,8 +5143,8 @@
              if ((certs != null) && (certs.length > 0)){
                  Collections.addAll(trustedCerts, certs);
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/SSLSessionImpl.java openjdk-boot/jdk/src/share/classes/sun/security/ssl/SSLSessionImpl.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/SSLSessionImpl.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/SSLSessionImpl.java	2012-09-26 02:21:47.801128991 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/SSLSessionImpl.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/SSLSessionImpl.java	2012-11-30 15:09:47.243539129 +0000
 @@ -618,7 +618,7 @@
       * key and the calling security context. This is important since
       * sessions can be shared across different protection domains.
@@ -5005,8 +5164,8 @@
          Object securityCtx = SecureKey.getCurrentSecurityContext();
  
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/SSLSocketImpl.java openjdk-boot/jdk/src/share/classes/sun/security/ssl/SSLSocketImpl.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/SSLSocketImpl.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/SSLSocketImpl.java	2012-09-26 02:21:47.801128991 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/SSLSocketImpl.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/SSLSocketImpl.java	2012-11-30 15:09:47.247539192 +0000
 @@ -2510,7 +2510,7 @@
              entrySet, HandshakeCompletedEvent e) {
  
@@ -5017,8 +5176,8 @@
          }
  
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/SunX509KeyManagerImpl.java openjdk-boot/jdk/src/share/classes/sun/security/ssl/SunX509KeyManagerImpl.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/SunX509KeyManagerImpl.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/SunX509KeyManagerImpl.java	2012-09-26 02:21:47.801128991 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/SunX509KeyManagerImpl.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/SunX509KeyManagerImpl.java	2012-11-30 15:09:47.247539192 +0000
 @@ -337,7 +337,7 @@
  
          X500Principal[] x500Issuers = (X500Principal[])issuers;
@@ -5038,8 +5197,8 @@
              Principal p = principals[i];
              if (p instanceof X500Principal) {
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/TrustManagerFactoryImpl.java openjdk-boot/jdk/src/share/classes/sun/security/ssl/TrustManagerFactoryImpl.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/TrustManagerFactoryImpl.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/TrustManagerFactoryImpl.java	2012-09-26 02:21:47.801128991 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/TrustManagerFactoryImpl.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/TrustManagerFactoryImpl.java	2012-11-30 15:09:47.247539192 +0000
 @@ -134,7 +134,7 @@
          FileInputStream fis = null;
          String defaultTrustStoreType;
@@ -5050,8 +5209,8 @@
          KeyStore ks = null;
  
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/X509KeyManagerImpl.java openjdk-boot/jdk/src/share/classes/sun/security/ssl/X509KeyManagerImpl.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/X509KeyManagerImpl.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/X509KeyManagerImpl.java	2012-09-26 02:21:47.801128991 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/X509KeyManagerImpl.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/X509KeyManagerImpl.java	2012-11-30 15:09:47.247539192 +0000
 @@ -307,7 +307,7 @@
                  (keyTypes.length == 0) || (keyTypes[0] == null)) {
              return null;
@@ -5071,8 +5230,8 @@
              return null;
          }
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/tools/JarSigner.java openjdk-boot/jdk/src/share/classes/sun/security/tools/JarSigner.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/tools/JarSigner.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/tools/JarSigner.java	2012-09-26 02:21:47.805129051 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/tools/JarSigner.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/tools/JarSigner.java	2012-11-30 15:09:47.247539192 +0000
 @@ -123,14 +123,14 @@
      boolean token = false; // token-based keystore
      String jarfile;  // jar files to sign or verify
@@ -5154,8 +5313,8 @@
                  KeyStore caks = KeyTool.getCacertsKeyStore();
                  if (caks != null) {
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/tools/KeyTool.java openjdk-boot/jdk/src/share/classes/sun/security/tools/KeyTool.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/tools/KeyTool.java	2012-09-26 02:14:39.450727908 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/tools/KeyTool.java	2012-09-26 02:21:47.805129051 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/tools/KeyTool.java	2012-11-30 15:06:27.256404573 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/tools/KeyTool.java	2012-11-30 15:09:47.247539192 +0000
 @@ -154,11 +154,11 @@
      private KeyStore caks = null; // "cacerts" keystore
      private char[] srcstorePass = null;
@@ -5226,8 +5385,8 @@
  }
  
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/tools/policytool/PolicyTool.java openjdk-boot/jdk/src/share/classes/sun/security/tools/policytool/PolicyTool.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/tools/policytool/PolicyTool.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/tools/policytool/PolicyTool.java	2012-09-26 02:21:47.805129051 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/tools/policytool/PolicyTool.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/tools/policytool/PolicyTool.java	2012-11-30 15:09:47.247539192 +0000
 @@ -643,7 +643,7 @@
          Class<?> pc = Class.forName(type, true,
                  Thread.currentThread().getContextClassLoader());
@@ -5265,8 +5424,8 @@
          super(i, b);
      }
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/util/UntrustedCertificates.java openjdk-boot/jdk/src/share/classes/sun/security/util/UntrustedCertificates.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/util/UntrustedCertificates.java	2012-09-26 02:14:39.450727908 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/util/UntrustedCertificates.java	2012-09-26 02:21:47.805129051 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/util/UntrustedCertificates.java	2012-11-30 15:06:27.260404636 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/util/UntrustedCertificates.java	2012-11-30 15:09:47.247539192 +0000
 @@ -42,7 +42,7 @@
   */
  public final class UntrustedCertificates {
@@ -5277,8 +5436,8 @@
      /**
       * Checks if a certificate is untrusted.
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/x509/X509CertImpl.java openjdk-boot/jdk/src/share/classes/sun/security/x509/X509CertImpl.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/x509/X509CertImpl.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/x509/X509CertImpl.java	2012-09-26 02:21:47.805129051 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/x509/X509CertImpl.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/x509/X509CertImpl.java	2012-11-30 15:09:47.251539255 +0000
 @@ -1260,7 +1260,7 @@
              if (exts == null) {
                  return null;
@@ -5326,8 +5485,8 @@
                      namesCopy.add(Collections.unmodifiableList(nameEntryCopy));
                  } else {
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/x509/X509CRLEntryImpl.java openjdk-boot/jdk/src/share/classes/sun/security/x509/X509CRLEntryImpl.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/x509/X509CRLEntryImpl.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/x509/X509CRLEntryImpl.java	2012-09-26 02:21:47.805129051 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/x509/X509CRLEntryImpl.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/x509/X509CRLEntryImpl.java	2012-11-30 15:09:47.251539255 +0000
 @@ -352,7 +352,7 @@
          if (extensions == null) {
              return null;
@@ -5356,8 +5515,8 @@
              map.put(ext.getId(), ext);
          }
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/x509/X509CRLImpl.java openjdk-boot/jdk/src/share/classes/sun/security/x509/X509CRLImpl.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/x509/X509CRLImpl.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/x509/X509CRLImpl.java	2012-09-26 02:21:47.805129051 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/x509/X509CRLImpl.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/x509/X509CRLImpl.java	2012-11-30 15:09:47.251539255 +0000
 @@ -104,8 +104,8 @@
      private X500Principal    issuerPrincipal = null;
      private Date             thisUpdate = null;
@@ -5388,8 +5547,8 @@
              if (!ex.isCritical()) {
                  extSet.add(ex.getExtensionId().toString());
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/tools/native2ascii/Main.java openjdk-boot/jdk/src/share/classes/sun/tools/native2ascii/Main.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/tools/native2ascii/Main.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/tools/native2ascii/Main.java	2012-09-26 02:21:47.805129051 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/tools/native2ascii/Main.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/tools/native2ascii/Main.java	2012-11-30 15:09:47.251539255 +0000
 @@ -95,7 +95,7 @@
       * Run the converter
       */
@@ -5400,8 +5559,8 @@
          boolean createOutputFile = false;
  
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/util/locale/InternalLocaleBuilder.java openjdk-boot/jdk/src/share/classes/sun/util/locale/InternalLocaleBuilder.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/util/locale/InternalLocaleBuilder.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/util/locale/InternalLocaleBuilder.java	2012-09-26 02:21:47.805129051 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/util/locale/InternalLocaleBuilder.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/util/locale/InternalLocaleBuilder.java	2012-11-30 15:09:47.251539255 +0000
 @@ -113,7 +113,7 @@
          }
          // Use case insensitive string to prevent duplication
@@ -5516,8 +5675,8 @@
                      ukeywords.put(key, type);
                  }
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/util/locale/LanguageTag.java openjdk-boot/jdk/src/share/classes/sun/util/locale/LanguageTag.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/util/locale/LanguageTag.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/util/locale/LanguageTag.java	2012-09-26 02:21:47.809129111 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/util/locale/LanguageTag.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/util/locale/LanguageTag.java	2012-11-30 15:09:47.251539255 +0000
 @@ -62,7 +62,7 @@
      // Map contains grandfathered tags and its preferred mappings from
      // http://www.ietf.org/rfc/rfc5646.txt
@@ -5573,8 +5732,8 @@
                      extensions.add(locextKey.toString() + SEP + ext.getValue());
                  }
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/util/locale/LocaleExtensions.java openjdk-boot/jdk/src/share/classes/sun/util/locale/LocaleExtensions.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/util/locale/LocaleExtensions.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/util/locale/LocaleExtensions.java	2012-09-26 02:21:47.809129111 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/util/locale/LocaleExtensions.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/util/locale/LocaleExtensions.java	2012-11-30 15:09:47.251539255 +0000
 @@ -81,7 +81,7 @@
          }
  
@@ -5602,8 +5761,8 @@
                      String key = LocaleUtils.toLowerString(kwd.getKey().value());
                      String type = LocaleUtils.toLowerString(kwd.getValue());
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/util/locale/LocaleObjectCache.java openjdk-boot/jdk/src/share/classes/sun/util/locale/LocaleObjectCache.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/util/locale/LocaleObjectCache.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/util/locale/LocaleObjectCache.java	2012-09-26 02:21:47.809129111 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/util/locale/LocaleObjectCache.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/util/locale/LocaleObjectCache.java	2012-11-30 15:09:47.251539255 +0000
 @@ -38,14 +38,14 @@
  
  public abstract class LocaleObjectCache<K, V> {
@@ -5640,8 +5799,8 @@
          return (oldEntry == null) ? null : oldEntry.get();
      }
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/util/LocaleServiceProviderPool.java openjdk-boot/jdk/src/share/classes/sun/util/LocaleServiceProviderPool.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/util/LocaleServiceProviderPool.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/util/LocaleServiceProviderPool.java	2012-09-26 02:21:47.809129111 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/util/LocaleServiceProviderPool.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/util/LocaleServiceProviderPool.java	2012-11-30 15:09:47.251539255 +0000
 @@ -59,7 +59,7 @@
       * set of provider implementations of a particular locale sensitive service.
       */
@@ -5661,8 +5820,8 @@
                          tmpList.add(getLookupLocale(locale));
                      }
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/util/logging/PlatformLogger.java openjdk-boot/jdk/src/share/classes/sun/util/logging/PlatformLogger.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/util/logging/PlatformLogger.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/util/logging/PlatformLogger.java	2012-09-26 02:21:47.809129111 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/util/logging/PlatformLogger.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/util/logging/PlatformLogger.java	2012-11-30 15:09:47.251539255 +0000
 @@ -113,7 +113,7 @@
  
      // Table of known loggers.  Maps names to PlatformLoggers.
@@ -5691,8 +5850,8 @@
          static {
              if (LoggingSupport.isAvailable()) {
 diff -Nru openjdk-boot.orig/jdk/src/share/demo/nio/zipfs/Demo.java openjdk-boot/jdk/src/share/demo/nio/zipfs/Demo.java
---- openjdk-boot.orig/jdk/src/share/demo/nio/zipfs/Demo.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/demo/nio/zipfs/Demo.java	2012-09-26 02:21:47.809129111 +0100
+--- openjdk-boot.orig/jdk/src/share/demo/nio/zipfs/Demo.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/demo/nio/zipfs/Demo.java	2012-11-30 15:09:47.251539255 +0000
 @@ -160,7 +160,7 @@
          }
  
@@ -5727,8 +5886,8 @@
          openwrite.add(WRITE);
  
 diff -Nru openjdk-boot.orig/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipCoder.java openjdk-boot/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipCoder.java
---- openjdk-boot.orig/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipCoder.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipCoder.java	2012-09-26 02:21:47.809129111 +0100
+--- openjdk-boot.orig/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipCoder.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipCoder.java	2012-11-30 15:09:47.251539255 +0000
 @@ -142,8 +142,8 @@
          return new ZipCoder(Charset.defaultCharset());
      }
@@ -5741,8 +5900,8 @@
      private CharsetDecoder decoder() {
          CharsetDecoder dec = decTL.get();
 diff -Nru openjdk-boot.orig/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileAttributeView.java openjdk-boot/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileAttributeView.java
---- openjdk-boot.orig/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileAttributeView.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileAttributeView.java	2012-09-26 02:21:47.809129111 +0100
+--- openjdk-boot.orig/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileAttributeView.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileAttributeView.java	2012-11-30 15:09:47.251539255 +0000
 @@ -134,7 +134,7 @@
          throws IOException
      {
@@ -5753,8 +5912,8 @@
              for (AttrID id : AttrID.values()) {
                  try {
 diff -Nru openjdk-boot.orig/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileSystem.java openjdk-boot/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileSystem.java
---- openjdk-boot.orig/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileSystem.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileSystem.java	2012-09-26 02:21:47.809129111 +0100
+--- openjdk-boot.orig/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileSystem.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileSystem.java	2012-11-30 15:09:47.255539318 +0000
 @@ -157,7 +157,7 @@
  
      @Override
@@ -5855,8 +6014,8 @@
              inodes.put(root, root);
              dirs.add(root);
 diff -Nru openjdk-boot.orig/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileSystemProvider.java openjdk-boot/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileSystemProvider.java
---- openjdk-boot.orig/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileSystemProvider.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileSystemProvider.java	2012-09-26 02:21:47.809129111 +0100
+--- openjdk-boot.orig/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileSystemProvider.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileSystemProvider.java	2012-11-30 15:09:47.255539318 +0000
 @@ -62,7 +62,7 @@
  public class ZipFileSystemProvider extends FileSystemProvider {
  
@@ -5867,8 +6026,8 @@
      public ZipFileSystemProvider() {}
  
 diff -Nru openjdk-boot.orig/jdk/src/solaris/classes/java/lang/ProcessEnvironment.java openjdk-boot/jdk/src/solaris/classes/java/lang/ProcessEnvironment.java
---- openjdk-boot.orig/jdk/src/solaris/classes/java/lang/ProcessEnvironment.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/solaris/classes/java/lang/ProcessEnvironment.java	2012-09-26 02:21:47.809129111 +0100
+--- openjdk-boot.orig/jdk/src/solaris/classes/java/lang/ProcessEnvironment.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/solaris/classes/java/lang/ProcessEnvironment.java	2012-11-30 15:09:47.255539318 +0000
 @@ -68,7 +68,7 @@
          // We cache the C environment.  This means that subsequent calls
          // to putenv/setenv from C will not be visible from Java code.
@@ -5879,8 +6038,8 @@
          // so that earlier variables override later ones.
          for (int i = environ.length-1; i > 0; i-=2)
 diff -Nru openjdk-boot.orig/jdk/src/solaris/classes/java/util/prefs/FileSystemPreferences.java openjdk-boot/jdk/src/solaris/classes/java/util/prefs/FileSystemPreferences.java
---- openjdk-boot.orig/jdk/src/solaris/classes/java/util/prefs/FileSystemPreferences.java	2012-09-26 02:14:39.454727968 +0100
-+++ openjdk-boot/jdk/src/solaris/classes/java/util/prefs/FileSystemPreferences.java	2012-09-26 02:21:47.809129111 +0100
+--- openjdk-boot.orig/jdk/src/solaris/classes/java/util/prefs/FileSystemPreferences.java	2012-11-30 15:06:27.260404636 +0000
++++ openjdk-boot/jdk/src/solaris/classes/java/util/prefs/FileSystemPreferences.java	2012-11-30 15:09:47.255539318 +0000
 @@ -354,7 +354,7 @@
       * log against that map.  The resulting map is then written back
       * to the disk.
@@ -5945,8 +6104,8 @@
          }
          if (!changeLog.isEmpty()) {
 diff -Nru openjdk-boot.orig/jdk/src/solaris/classes/sun/net/dns/ResolverConfigurationImpl.java openjdk-boot/jdk/src/solaris/classes/sun/net/dns/ResolverConfigurationImpl.java
---- openjdk-boot.orig/jdk/src/solaris/classes/sun/net/dns/ResolverConfigurationImpl.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/solaris/classes/sun/net/dns/ResolverConfigurationImpl.java	2012-09-26 02:21:47.809129111 +0100
+--- openjdk-boot.orig/jdk/src/solaris/classes/sun/net/dns/ResolverConfigurationImpl.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/solaris/classes/sun/net/dns/ResolverConfigurationImpl.java	2012-11-30 15:09:47.255539318 +0000
 @@ -60,7 +60,7 @@
                                            int maxperkeyword,
                                            int maxkeywords)
@@ -5966,8 +6125,8 @@
          if (domain != null && domain.length() > 0) {
              sl.add(domain);
 diff -Nru openjdk-boot.orig/jdk/src/solaris/classes/sun/nio/ch/DevPollArrayWrapper.java openjdk-boot/jdk/src/solaris/classes/sun/nio/ch/DevPollArrayWrapper.java
---- openjdk-boot.orig/jdk/src/solaris/classes/sun/nio/ch/DevPollArrayWrapper.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/solaris/classes/sun/nio/ch/DevPollArrayWrapper.java	2012-09-26 02:21:47.809129111 +0100
+--- openjdk-boot.orig/jdk/src/solaris/classes/sun/nio/ch/DevPollArrayWrapper.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/solaris/classes/sun/nio/ch/DevPollArrayWrapper.java	2012-11-30 15:09:47.255539318 +0000
 @@ -130,7 +130,7 @@
          pollArrayAddress = pollArray.address();
          wfd = init();
@@ -5978,8 +6137,8 @@
  
      void initInterrupt(int fd0, int fd1) {
 diff -Nru openjdk-boot.orig/jdk/src/solaris/classes/sun/nio/cs/ext/CompoundTextSupport.java openjdk-boot/jdk/src/solaris/classes/sun/nio/cs/ext/CompoundTextSupport.java
---- openjdk-boot.orig/jdk/src/solaris/classes/sun/nio/cs/ext/CompoundTextSupport.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/solaris/classes/sun/nio/cs/ext/CompoundTextSupport.java	2012-09-26 02:21:47.809129111 +0100
+--- openjdk-boot.orig/jdk/src/solaris/classes/sun/nio/cs/ext/CompoundTextSupport.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/solaris/classes/sun/nio/cs/ext/CompoundTextSupport.java	2012-11-30 15:09:47.255539318 +0000
 @@ -153,12 +153,12 @@
  
      static {
@@ -5998,8 +6157,8 @@
          if (!(isEncodingSupported("US-ASCII") &&
                isEncodingSupported("ISO-8859-1")))
 diff -Nru openjdk-boot.orig/jdk/src/solaris/classes/sun/nio/fs/LinuxFileSystem.java openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/LinuxFileSystem.java
---- openjdk-boot.orig/jdk/src/solaris/classes/sun/nio/fs/LinuxFileSystem.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/LinuxFileSystem.java	2012-09-26 02:21:47.809129111 +0100
+--- openjdk-boot.orig/jdk/src/solaris/classes/sun/nio/fs/LinuxFileSystem.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/LinuxFileSystem.java	2012-11-30 15:09:47.255539318 +0000
 @@ -53,7 +53,7 @@
          static final Set<String> supportedFileAttributeViews =
              supportedFileAttributeViews();
@@ -6019,8 +6178,8 @@
              long fp = setmntent(fstab.getBytes(), "r".getBytes());
              try {
 diff -Nru openjdk-boot.orig/jdk/src/solaris/classes/sun/nio/fs/LinuxUserDefinedFileAttributeView.java openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/LinuxUserDefinedFileAttributeView.java
---- openjdk-boot.orig/jdk/src/solaris/classes/sun/nio/fs/LinuxUserDefinedFileAttributeView.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/LinuxUserDefinedFileAttributeView.java	2012-09-26 02:21:47.809129111 +0100
+--- openjdk-boot.orig/jdk/src/solaris/classes/sun/nio/fs/LinuxUserDefinedFileAttributeView.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/LinuxUserDefinedFileAttributeView.java	2012-11-30 15:09:47.255539318 +0000
 @@ -63,7 +63,7 @@
  
      // Parses buffer as array of NULL-terminated C strings.
@@ -6031,8 +6190,8 @@
          int pos = 0;
          while (pos < size) {
 diff -Nru openjdk-boot.orig/jdk/src/solaris/classes/sun/nio/fs/SolarisAclFileAttributeView.java openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/SolarisAclFileAttributeView.java
---- openjdk-boot.orig/jdk/src/solaris/classes/sun/nio/fs/SolarisAclFileAttributeView.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/SolarisAclFileAttributeView.java	2012-09-26 02:21:47.809129111 +0100
+--- openjdk-boot.orig/jdk/src/solaris/classes/sun/nio/fs/SolarisAclFileAttributeView.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/SolarisAclFileAttributeView.java	2012-11-30 15:09:47.255539318 +0000
 @@ -198,7 +198,7 @@
       * Decode the buffer, returning an ACL
       */
@@ -6043,8 +6202,8 @@
              long offset = address + i*SIZEOF_ACE_T;
  
 diff -Nru openjdk-boot.orig/jdk/src/solaris/classes/sun/nio/fs/SolarisFileSystem.java openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/SolarisFileSystem.java
---- openjdk-boot.orig/jdk/src/solaris/classes/sun/nio/fs/SolarisFileSystem.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/SolarisFileSystem.java	2012-09-26 02:21:47.813129171 +0100
+--- openjdk-boot.orig/jdk/src/solaris/classes/sun/nio/fs/SolarisFileSystem.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/SolarisFileSystem.java	2012-11-30 15:09:47.255539318 +0000
 @@ -76,7 +76,7 @@
          static final Set<String> supportedFileAttributeViews =
              supportedFileAttributeViews();
@@ -6064,8 +6223,8 @@
              UnixPath mnttab = new UnixPath(this, "/etc/mnttab");
              long fp = fopen(mnttab, "r");
 diff -Nru openjdk-boot.orig/jdk/src/solaris/classes/sun/nio/fs/SolarisUserDefinedFileAttributeView.java openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/SolarisUserDefinedFileAttributeView.java
---- openjdk-boot.orig/jdk/src/solaris/classes/sun/nio/fs/SolarisUserDefinedFileAttributeView.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/SolarisUserDefinedFileAttributeView.java	2012-09-26 02:21:47.813129171 +0100
+--- openjdk-boot.orig/jdk/src/solaris/classes/sun/nio/fs/SolarisUserDefinedFileAttributeView.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/SolarisUserDefinedFileAttributeView.java	2012-11-30 15:09:47.255539318 +0000
 @@ -83,7 +83,7 @@
                  }
  
@@ -6076,8 +6235,8 @@
                      byte[] name;
                      while ((name = readdir(dp)) != null) {
 diff -Nru openjdk-boot.orig/jdk/src/solaris/classes/sun/nio/fs/UnixFileAttributes.java openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/UnixFileAttributes.java
---- openjdk-boot.orig/jdk/src/solaris/classes/sun/nio/fs/UnixFileAttributes.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/UnixFileAttributes.java	2012-09-26 02:21:47.813129171 +0100
+--- openjdk-boot.orig/jdk/src/solaris/classes/sun/nio/fs/UnixFileAttributes.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/UnixFileAttributes.java	2012-11-30 15:09:47.255539318 +0000
 @@ -194,7 +194,7 @@
      @Override
      public Set<PosixFilePermission> permissions() {
@@ -6088,8 +6247,8 @@
          if ((bits & UnixConstants.S_IRUSR) > 0)
              perms.add(PosixFilePermission.OWNER_READ);
 diff -Nru openjdk-boot.orig/jdk/src/windows/classes/java/lang/ProcessEnvironment.java openjdk-boot/jdk/src/windows/classes/java/lang/ProcessEnvironment.java
---- openjdk-boot.orig/jdk/src/windows/classes/java/lang/ProcessEnvironment.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/windows/classes/java/lang/ProcessEnvironment.java	2012-09-26 02:21:47.813129171 +0100
+--- openjdk-boot.orig/jdk/src/windows/classes/java/lang/ProcessEnvironment.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/windows/classes/java/lang/ProcessEnvironment.java	2012-11-30 15:09:47.255539318 +0000
 @@ -250,7 +250,8 @@
                                     envblock.substring(eql+1,end));
          }
@@ -6111,8 +6270,8 @@
  
          StringBuilder sb = new StringBuilder(size()*30);
 diff -Nru openjdk-boot.orig/jdk/src/windows/classes/sun/net/dns/ResolverConfigurationImpl.java openjdk-boot/jdk/src/windows/classes/sun/net/dns/ResolverConfigurationImpl.java
---- openjdk-boot.orig/jdk/src/windows/classes/sun/net/dns/ResolverConfigurationImpl.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/windows/classes/sun/net/dns/ResolverConfigurationImpl.java	2012-09-26 02:21:47.813129171 +0100
+--- openjdk-boot.orig/jdk/src/windows/classes/sun/net/dns/ResolverConfigurationImpl.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/windows/classes/sun/net/dns/ResolverConfigurationImpl.java	2012-11-30 15:09:47.255539318 +0000
 @@ -63,7 +63,7 @@
      // Parse string that consists of token delimited by space or commas
      // and return LinkedHashMap
@@ -6123,8 +6282,8 @@
          // comma and space are valid delimites
          StringTokenizer st = new StringTokenizer(str, ", ");
 diff -Nru openjdk-boot.orig/jdk/src/windows/classes/sun/nio/fs/WindowsFileSystem.java openjdk-boot/jdk/src/windows/classes/sun/nio/fs/WindowsFileSystem.java
---- openjdk-boot.orig/jdk/src/windows/classes/sun/nio/fs/WindowsFileSystem.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/windows/classes/sun/nio/fs/WindowsFileSystem.java	2012-09-26 02:21:47.813129171 +0100
+--- openjdk-boot.orig/jdk/src/windows/classes/sun/nio/fs/WindowsFileSystem.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/windows/classes/sun/nio/fs/WindowsFileSystem.java	2012-11-30 15:09:47.255539318 +0000
 @@ -128,7 +128,7 @@
          }
  
@@ -6135,8 +6294,8 @@
          for (int i = 0; i <= 25; i++) {  // 0->A, 1->B, 2->C...
              if ((drives & (1 << i)) != 0) {
 diff -Nru openjdk-boot.orig/jdk/src/windows/classes/sun/nio/fs/WindowsPath.java openjdk-boot/jdk/src/windows/classes/sun/nio/fs/WindowsPath.java
---- openjdk-boot.orig/jdk/src/windows/classes/sun/nio/fs/WindowsPath.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/windows/classes/sun/nio/fs/WindowsPath.java	2012-09-26 02:21:47.813129171 +0100
+--- openjdk-boot.orig/jdk/src/windows/classes/sun/nio/fs/WindowsPath.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/windows/classes/sun/nio/fs/WindowsPath.java	2012-11-30 15:09:47.259539380 +0000
 @@ -575,7 +575,7 @@
      // generate offset array
      private void initOffsets() {
@@ -6147,8 +6306,8 @@
                  // empty path considered to have one name element
                  list.add(0);
 diff -Nru openjdk-boot.orig/jdk/src/windows/classes/sun/nio/fs/WindowsSecurityDescriptor.java openjdk-boot/jdk/src/windows/classes/sun/nio/fs/WindowsSecurityDescriptor.java
---- openjdk-boot.orig/jdk/src/windows/classes/sun/nio/fs/WindowsSecurityDescriptor.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/windows/classes/sun/nio/fs/WindowsSecurityDescriptor.java	2012-09-26 02:21:47.813129171 +0100
+--- openjdk-boot.orig/jdk/src/windows/classes/sun/nio/fs/WindowsSecurityDescriptor.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/windows/classes/sun/nio/fs/WindowsSecurityDescriptor.java	2012-11-30 15:09:47.259539380 +0000
 @@ -378,7 +378,7 @@
              AclInformation aclInfo = GetAclInformation(aclAddress);
              aceCount = aclInfo.aceCount();
@@ -6159,8 +6318,8 @@
          // decode each of the ACEs to AclEntry objects
          for (int i=0; i<aceCount; i++) {
 diff -Nru openjdk-boot.orig/jdk/src/windows/classes/sun/nio/fs/WindowsUserDefinedFileAttributeView.java openjdk-boot/jdk/src/windows/classes/sun/nio/fs/WindowsUserDefinedFileAttributeView.java
---- openjdk-boot.orig/jdk/src/windows/classes/sun/nio/fs/WindowsUserDefinedFileAttributeView.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/src/windows/classes/sun/nio/fs/WindowsUserDefinedFileAttributeView.java	2012-09-26 02:21:47.813129171 +0100
+--- openjdk-boot.orig/jdk/src/windows/classes/sun/nio/fs/WindowsUserDefinedFileAttributeView.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/windows/classes/sun/nio/fs/WindowsUserDefinedFileAttributeView.java	2012-11-30 15:09:47.259539380 +0000
 @@ -65,7 +65,7 @@
  
      // enumerates the file streams using FindFirstStream/FindNextStream APIs.
@@ -6207,8 +6366,8 @@
                  opts.add(WindowsChannelFactory.OPEN_REPARSE_POINT);
              opts.add(CREATE);
 diff -Nru openjdk-boot.orig/jdk/test/java/io/Serializable/NPEProvoker/NPEProvoker.java openjdk-boot/jdk/test/java/io/Serializable/NPEProvoker/NPEProvoker.java
---- openjdk-boot.orig/jdk/test/java/io/Serializable/NPEProvoker/NPEProvoker.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/test/java/io/Serializable/NPEProvoker/NPEProvoker.java	2012-09-26 02:21:47.813129171 +0100
+--- openjdk-boot.orig/jdk/test/java/io/Serializable/NPEProvoker/NPEProvoker.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/test/java/io/Serializable/NPEProvoker/NPEProvoker.java	2012-11-30 15:09:47.259539380 +0000
 @@ -56,7 +56,7 @@
      public static void main(String[] args) {
          System.err.println("\n Regression test for bug 6541870\n");
@@ -6219,8 +6378,8 @@
              ByteArrayOutputStream baos = new ByteArrayOutputStream();
              ObjectOutputStream oos = new ObjectOutputStream(baos);
 diff -Nru openjdk-boot.orig/jdk/test/java/lang/instrument/ilib/InjectBytecodes.java openjdk-boot/jdk/test/java/lang/instrument/ilib/InjectBytecodes.java
---- openjdk-boot.orig/jdk/test/java/lang/instrument/ilib/InjectBytecodes.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/test/java/lang/instrument/ilib/InjectBytecodes.java	2012-09-26 02:21:47.813129171 +0100
+--- openjdk-boot.orig/jdk/test/java/lang/instrument/ilib/InjectBytecodes.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/test/java/lang/instrument/ilib/InjectBytecodes.java	2012-11-30 15:09:47.259539380 +0000
 @@ -50,7 +50,7 @@
      private final Injector[] after  = new Injector[256];
      private final String className;
@@ -6231,8 +6390,8 @@
      private int pos;
      private int newPos;
 diff -Nru openjdk-boot.orig/jdk/test/java/lang/instrument/ilib/Inject.java openjdk-boot/jdk/test/java/lang/instrument/ilib/Inject.java
---- openjdk-boot.orig/jdk/test/java/lang/instrument/ilib/Inject.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/test/java/lang/instrument/ilib/Inject.java	2012-09-26 02:21:47.813129171 +0100
+--- openjdk-boot.orig/jdk/test/java/lang/instrument/ilib/Inject.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/test/java/lang/instrument/ilib/Inject.java	2012-11-30 15:09:47.259539380 +0000
 @@ -107,7 +107,7 @@
      class IndexedInjector implements TrackerInjector {
          int counter = 0;
@@ -6243,8 +6402,8 @@
          public int stackSize(int currentSize) {
              return currentSize + 1;
 diff -Nru openjdk-boot.orig/jdk/test/java/lang/reflect/Generics/TestPlainArrayNotGeneric.java openjdk-boot/jdk/test/java/lang/reflect/Generics/TestPlainArrayNotGeneric.java
---- openjdk-boot.orig/jdk/test/java/lang/reflect/Generics/TestPlainArrayNotGeneric.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/test/java/lang/reflect/Generics/TestPlainArrayNotGeneric.java	2012-09-26 02:21:47.813129171 +0100
+--- openjdk-boot.orig/jdk/test/java/lang/reflect/Generics/TestPlainArrayNotGeneric.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/test/java/lang/reflect/Generics/TestPlainArrayNotGeneric.java	2012-11-30 15:09:47.259539380 +0000
 @@ -103,7 +103,7 @@
          }
      }
@@ -6255,8 +6414,8 @@
      private static void check(Type t, String what) {
          if (t == null || !checking.add(t))
 diff -Nru openjdk-boot.orig/jdk/test/java/util/logging/ClassLoaderLeakTest.java openjdk-boot/jdk/test/java/util/logging/ClassLoaderLeakTest.java
---- openjdk-boot.orig/jdk/test/java/util/logging/ClassLoaderLeakTest.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/test/java/util/logging/ClassLoaderLeakTest.java	2012-09-26 02:21:47.813129171 +0100
+--- openjdk-boot.orig/jdk/test/java/util/logging/ClassLoaderLeakTest.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/test/java/util/logging/ClassLoaderLeakTest.java	2012-11-30 15:09:47.259539380 +0000
 @@ -89,7 +89,7 @@
  
           MyClassLoader appClassLoader = new MyClassLoader(urls, "test0");
@@ -6267,8 +6426,8 @@
  
           Thread appThread = new Thread(appsThreadGroup, launcher, "AppThread-0");
 diff -Nru openjdk-boot.orig/jdk/test/java/util/Random/DistinctSeeds.java openjdk-boot/jdk/test/java/util/Random/DistinctSeeds.java
---- openjdk-boot.orig/jdk/test/java/util/Random/DistinctSeeds.java	2012-09-24 21:55:52.000000000 +0100
-+++ openjdk-boot/jdk/test/java/util/Random/DistinctSeeds.java	2012-09-26 02:21:47.813129171 +0100
+--- openjdk-boot.orig/jdk/test/java/util/Random/DistinctSeeds.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/test/java/util/Random/DistinctSeeds.java	2012-11-30 15:09:47.259539380 +0000
 @@ -59,7 +59,7 @@
              }
          }
--- a/patches/boot/ecj-multicatch.patch	Thu Nov 29 04:33:36 2012 +0000
+++ b/patches/boot/ecj-multicatch.patch	Tue Dec 04 11:00:41 2012 +0000
@@ -1,5 +1,6 @@
---- openjdk-boot/jdk/src/share/classes/java/io/PrintStream.java.orig
-+++ openjdk-boot/jdk/src/share/classes/java/io/PrintStream.java
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/io/PrintStream.java openjdk-boot/jdk/src/share/classes/java/io/PrintStream.java
+--- openjdk-boot.orig/jdk/src/share/classes/java/io/PrintStream.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/io/PrintStream.java	2012-11-30 14:51:29.846368398 +0000
 @@ -91,7 +91,10 @@
          requireNonNull(csn, "charsetName");
          try {
@@ -12,8 +13,9 @@
              // UnsupportedEncodingException should be thrown
              throw new UnsupportedEncodingException(csn);
          }
---- openjdk-boot/jdk/src/share/classes/java/io/PrintWriter.java.orig
-+++ openjdk-boot/jdk/src/share/classes/java/io/PrintWriter.java
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/io/PrintWriter.java openjdk-boot/jdk/src/share/classes/java/io/PrintWriter.java
+--- openjdk-boot.orig/jdk/src/share/classes/java/io/PrintWriter.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/io/PrintWriter.java	2012-11-30 14:51:29.858368581 +0000
 @@ -85,7 +85,10 @@
          Objects.requireNonNull(csn, "charsetName");
          try {
@@ -26,8 +28,9 @@
              // UnsupportedEncodingException should be thrown
              throw new UnsupportedEncodingException(csn);
          }
---- openjdk-boot/jdk/src/share/classes/java/lang/management/ManagementFactory.java.orig
-+++ openjdk-boot/jdk/src/share/classes/java/lang/management/ManagementFactory.java
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/management/ManagementFactory.java openjdk-boot/jdk/src/share/classes/java/lang/management/ManagementFactory.java
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/management/ManagementFactory.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/lang/management/ManagementFactory.java	2012-11-30 14:51:29.858368581 +0000
 @@ -606,7 +606,9 @@
              // create an MXBean proxy
              return JMX.newMXBeanProxy(connection, objName, mxbeanInterface,
@@ -39,8 +42,9 @@
              throw new IllegalArgumentException(e);
          }
      }
---- openjdk-boot/jdk/src/share/classes/java/util/Formatter.java.orig
-+++ openjdk-boot/jdk/src/share/classes/java/util/Formatter.java
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/Formatter.java openjdk-boot/jdk/src/share/classes/java/util/Formatter.java
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/Formatter.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/Formatter.java	2012-11-30 14:51:29.858368581 +0000
 @@ -1857,7 +1857,10 @@
          Objects.requireNonNull(csn, "charsetName");
          try {
@@ -53,8 +57,37 @@
              // UnsupportedEncodingException should be thrown
              throw new UnsupportedEncodingException(csn);
          }
---- openjdk-boot/jdk/src/share/classes/java/util/Scanner.java.orig
-+++ openjdk-boot/jdk/src/share/classes/java/util/Scanner.java
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/HashMap.java openjdk-boot/jdk/src/share/classes/java/util/HashMap.java
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/HashMap.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/HashMap.java	2012-11-30 14:51:29.862368643 +0000
+@@ -236,7 +236,9 @@
+                 UNSAFE = sun.misc.Unsafe.getUnsafe();
+                 HASHSEED_OFFSET = UNSAFE.objectFieldOffset(
+                     HashMap.class.getDeclaredField("hashSeed"));
+-            } catch (NoSuchFieldException | SecurityException e) {
++            } catch (NoSuchFieldException e ) {
++                throw new Error("Failed to record hashSeed offset", e);
++            } catch (SecurityException e) {
+                 throw new Error("Failed to record hashSeed offset", e);
+             }
+         }
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/Hashtable.java openjdk-boot/jdk/src/share/classes/java/util/Hashtable.java
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/Hashtable.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/Hashtable.java	2012-11-30 14:51:29.862368643 +0000
+@@ -234,7 +234,9 @@
+             UNSAFE = sun.misc.Unsafe.getUnsafe();
+             HASHSEED_OFFSET = UNSAFE.objectFieldOffset(
+                 Hashtable.class.getDeclaredField("hashSeed"));
+-        } catch (NoSuchFieldException | SecurityException e) {
++        } catch (NoSuchFieldException e) {
++            throw new Error("Failed to record hashSeed offset", e);
++        } catch (SecurityException e) {
+             throw new Error("Failed to record hashSeed offset", e);
+         }
+      }
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/Scanner.java openjdk-boot/jdk/src/share/classes/java/util/Scanner.java
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/Scanner.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/Scanner.java	2012-11-30 14:51:29.858368581 +0000
 @@ -633,7 +633,10 @@
          Objects.requireNonNull(csn, "charsetName");
          try {
@@ -78,23 +111,23 @@
              throw new IllegalArgumentException(charsetName);
          }
      }
---- openjdk-boot/jdk/src/share/classes/sun/invoke/util/ValueConversions.java.orig
-+++ openjdk-boot/jdk/src/share/classes/sun/invoke/util/ValueConversions.java
-@@ -676,7 +676,11 @@
-             IGNORE = IMPL_LOOKUP.findStatic(THIS_CLASS, "ignore", ignoreType);
-             EMPTY = IMPL_LOOKUP.findStatic(THIS_CLASS, "empty", ignoreType.dropParameterTypes(0, 1));
-             NEW_ARRAY = IMPL_LOOKUP.findStatic(THIS_CLASS, "newArray", MethodType.methodType(Object[].class, int.class));
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/invoke/util/ValueConversions.java openjdk-boot/jdk/src/share/classes/sun/invoke/util/ValueConversions.java
+--- openjdk-boot.orig/jdk/src/share/classes/sun/invoke/util/ValueConversions.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/invoke/util/ValueConversions.java	2012-11-30 14:54:56.693599035 +0000
+@@ -474,7 +474,9 @@
+             FILL_NEW_TYPED_ARRAY = IMPL_LOOKUP
+                     .findStatic(THIS_CLASS, "fillNewTypedArray",
+                           MethodType.methodType(Object[].class, Object[].class, Integer.class, Object[].class));
 -        } catch (NoSuchMethodException | IllegalAccessException ex) {
 +        } catch (NoSuchMethodException ex) {
-+            Error err = new InternalError("uncaught exception");
-+            err.initCause(ex);
-+            throw err;
++            throw newInternalError("uncaught exception", ex);
 +        } catch (IllegalAccessException ex) {
-             Error err = new InternalError("uncaught exception");
-             err.initCause(ex);
-             throw err;
---- openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/PAData.java.orig
-+++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/PAData.java
+             throw newInternalError("uncaught exception", ex);
+         }
+     }
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/PAData.java openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/PAData.java
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/PAData.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/PAData.java	2012-11-30 14:51:29.858368581 +0000
 @@ -280,7 +280,9 @@
                                      .append(info.getSalt())
                                      .append('\n');
@@ -117,9 +150,25 @@
                          sb.append("\t <Unparseable PA-ETYPE-INFO>\n");
                      }
                  }
---- openjdk-boot/jdk/src/share/classes/sun/text/bidi/BidiBase.java.orig
-+++ openjdk-boot/jdk/src/share/classes/sun/text/bidi/BidiBase.java
-@@ -3477,7 +3477,9 @@
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/util/UntrustedCertificates.java openjdk-boot/jdk/src/share/classes/sun/security/util/UntrustedCertificates.java
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/util/UntrustedCertificates.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/util/UntrustedCertificates.java	2012-11-30 14:51:29.862368643 +0000
+@@ -65,7 +65,10 @@
+                 throw new RuntimeException("Duplicate untrusted certificate: " +
+                     cert.getSubjectX500Principal());
+             }
+-        } catch (CertificateException | IOException e) {
++	} catch (CertificateException e) {
++            throw new RuntimeException(
++                        "Incorrect untrusted certificate: " + alias, e);
++	} catch (IOException e) {
+             throw new RuntimeException(
+                         "Incorrect untrusted certificate: " + alias, e);
+         }
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/text/bidi/BidiBase.java openjdk-boot/jdk/src/share/classes/sun/text/bidi/BidiBase.java
+--- openjdk-boot.orig/jdk/src/share/classes/sun/text/bidi/BidiBase.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/text/bidi/BidiBase.java	2012-11-30 14:51:29.858368581 +0000
+@@ -3479,7 +3479,9 @@
              try {
                  Field f = clazz.getField(name);
                  return f.get(null);
@@ -131,8 +180,8 @@
              }
          }
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/tools/jcmd/JCmd.java openjdk-boot/jdk/src/share/classes/sun/tools/jcmd/JCmd.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/tools/jcmd/JCmd.java	2012-03-22 10:00:56.029260268 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/tools/jcmd/JCmd.java	2012-03-22 10:02:41.275789667 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/sun/tools/jcmd/JCmd.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/tools/jcmd/JCmd.java	2012-11-30 14:51:29.862368643 +0000
 @@ -94,7 +94,7 @@
                          && mainClass.indexOf(arg.getProcessSubstring()) != -1) {
                              pids.add(vmd.id());
@@ -162,7 +211,7 @@
              }
              if (pids.isEmpty()) {
                  System.err.println("Could not find any processes matching : '"
-@@ -185,9 +196,11 @@
+@@ -191,9 +202,11 @@
          try {
              String mainClass = getMainClass(vmd);
              return mainClass != null && mainClass.equals(JCmd.class.getName());
@@ -176,52 +225,9 @@
      }
  
      private static String getMainClass(VirtualMachineDescriptor vmd)
-diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/util/UntrustedCertificates.java openjdk-boot/jdk/src/share/classes/sun/security/util/UntrustedCertificates.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/util/UntrustedCertificates.java	2012-05-02 20:50:17.549643066 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/util/UntrustedCertificates.java	2012-05-02 20:52:03.435320716 +0100
-@@ -65,7 +65,10 @@
-                 throw new RuntimeException("Duplicate untrusted certificate: " +
-                     cert.getSubjectX500Principal());
-             }
--        } catch (CertificateException | IOException e) {
-+	} catch (CertificateException e) {
-+            throw new RuntimeException(
-+                        "Incorrect untrusted certificate: " + alias, e);
-+	} catch (IOException e) {
-             throw new RuntimeException(
-                         "Incorrect untrusted certificate: " + alias, e);
-         }
-diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/HashMap.java openjdk-boot/jdk/src/share/classes/java/util/HashMap.java
---- openjdk-boot.orig/jdk/src/share/classes/java/util/HashMap.java	2012-06-08 17:12:17.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/util/HashMap.java	2012-06-11 14:54:16.123125601 +0100
-@@ -237,7 +237,9 @@
-                 UNSAFE = sun.misc.Unsafe.getUnsafe();
-                 HASHSEED_OFFSET = UNSAFE.objectFieldOffset(
-                     HashMap.class.getDeclaredField("hashSeed"));
--            } catch (NoSuchFieldException | SecurityException e) {
-+            } catch (NoSuchFieldException e ) {
-+                throw new Error("Failed to record hashSeed offset", e);
-+            } catch (SecurityException e) {
-                 throw new Error("Failed to record hashSeed offset", e);
-             }
-         }
-diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/Hashtable.java openjdk-boot/jdk/src/share/classes/java/util/Hashtable.java
---- openjdk-boot.orig/jdk/src/share/classes/java/util/Hashtable.java	2012-06-08 17:12:17.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/util/Hashtable.java	2012-06-11 14:54:40.275511896 +0100
-@@ -227,7 +227,9 @@
-             UNSAFE = sun.misc.Unsafe.getUnsafe();
-             HASHSEED_OFFSET = UNSAFE.objectFieldOffset(
-                 Hashtable.class.getDeclaredField("hashSeed"));
--        } catch (NoSuchFieldException | SecurityException e) {
-+        } catch (NoSuchFieldException e) {
-+            throw new Error("Failed to record hashSeed offset", e);
-+        } catch (SecurityException e) {
-             throw new Error("Failed to record hashSeed offset", e);
-         }
-      }
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/tools/jconsole/Resources.java openjdk-boot/jdk/src/share/classes/sun/tools/jconsole/Resources.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/tools/jconsole/Resources.java	2012-09-26 03:08:32.776450958 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/tools/jconsole/Resources.java	2012-09-26 03:09:50.525678273 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/tools/jconsole/Resources.java	2012-11-30 12:17:08.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/tools/jconsole/Resources.java	2012-11-30 14:51:29.862368643 +0000
 @@ -129,7 +129,9 @@
      private static void setFieldValue(Field field, String value) {
          try {
@@ -252,3 +258,80 @@
              // Missing VK is okay
              return 0;
          }
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/BoundMethodHandle.java openjdk-boot/jdk/src/share/classes/java/lang/invoke/BoundMethodHandle.java
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/BoundMethodHandle.java	2012-11-30 17:41:36.097551748 +0000
++++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/BoundMethodHandle.java	2012-11-30 17:40:44.604709097 +0000
+@@ -747,7 +747,9 @@
+             Class<?> fieldType = Wrapper.forBasicType(types.charAt(index)).primitiveType();
+             try {
+                 return LOOKUP.findGetter(cbmhClass, fieldName, fieldType);
+-            } catch (NoSuchFieldException | IllegalAccessException e) {
++            } catch (NoSuchFieldException e) {
++                throw newInternalError(e);
++            } catch (IllegalAccessException e) {
+                 throw newInternalError(e);
+             }
+         }
+@@ -801,7 +803,13 @@
+         static MethodHandle makeCbmhCtor(Class<? extends BoundMethodHandle> cbmh, String types) {
+             try {
+                 return linkConstructor(LOOKUP.findConstructor(cbmh, MethodType.fromMethodDescriptorString(makeSignature(types, true), null)));
+-            } catch (NoSuchMethodException | IllegalAccessException | IllegalArgumentException | TypeNotPresentException e) {
++            } catch (NoSuchMethodException e) {
++                throw newInternalError(e);
++            } catch (IllegalAccessException e) {
++                throw newInternalError(e);
++            } catch (IllegalArgumentException e) {
++                throw newInternalError(e);
++            } catch (TypeNotPresentException e) {
+                 throw newInternalError(e);
+             }
+         }
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/LambdaForm.java openjdk-boot/jdk/src/share/classes/java/lang/invoke/LambdaForm.java
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/LambdaForm.java	2012-11-30 17:37:04.389140174 +0000
++++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/LambdaForm.java	2012-11-30 17:37:48.621857219 +0000
+@@ -456,9 +456,11 @@
+                 traceInterpreter("compileToBytecode", this);
+             isCompiled = true;
+             return vmentry;
+-        } catch (Error | Exception ex) {
++        } catch (Error ex) {
+             throw newInternalError(this.toString(), ex);
+-        }
++        } catch (Exception ex) {
++            throw newInternalError(this.toString(), ex);
++	}
+     }
+ 
+     private static final ConcurrentHashMap<String,LambdaForm> PREPARED_FORMS;
+@@ -1546,9 +1548,11 @@
+             MemberName zmem = new MemberName(LambdaForm.class, "zero"+bt, MethodType.methodType(wrap.primitiveType()), REF_invokeStatic);
+             try {
+                 zmem = IMPL_NAMES.resolveOrFail(REF_invokeStatic, zmem, null, NoSuchMethodException.class);
+-            } catch (IllegalAccessException|NoSuchMethodException ex) {
++            } catch (IllegalAccessException ex) {
+                 throw newInternalError(ex);
+-            }
++            } catch (NoSuchMethodException ex) {
++                throw newInternalError(ex);
++	    }
+             NamedFunction zcon = new NamedFunction(zmem);
+             Name n = new Name(zcon).newIndex(0);
+             assert(n.type == ALL_TYPES.charAt(tn));
+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	2012-11-30 17:38:44.434761848 +0000
++++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandleNatives.java	2012-11-30 17:39:19.443329202 +0000
+@@ -263,7 +263,12 @@
+                     continue;
+                 }
+                 throw new InternalError(err);
+-            } catch (NoSuchFieldException | IllegalAccessException ex) {
++            } catch (NoSuchFieldException ex) {
++                String err = (name+": JVM has "+vmval+" which Java does not define");
++                // ignore exotic ops the JVM cares about; we just wont issue them
++                //System.err.println("warning: "+err);
++                continue;
++            } catch (IllegalAccessException ex) {
+                 String err = (name+": JVM has "+vmval+" which Java does not define");
+                 // ignore exotic ops the JVM cares about; we just wont issue them
+                 //System.err.println("warning: "+err);
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/boot/ecj-odd.patch	Tue Dec 04 11:00:41 2012 +0000
@@ -0,0 +1,12 @@
+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	2012-12-03 18:30:23.136253013 +0000
++++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandleNatives.java	2012-12-03 18:30:33.288416832 +0000
+@@ -364,7 +364,7 @@
+             return res;
+         } catch (Throwable ex) {
+             System.out.println("linkMethod => throw "+ex);
+-            throw ex;
++            throw new Error(ex);
+         }
+     }
+ 
--- a/patches/boot/ecj-opts.patch	Thu Nov 29 04:33:36 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-diff -Nru openjdk-boot.orig/jdk/make/java/nio/Makefile openjdk-boot/jdk/make/java/nio/Makefile
---- openjdk-boot.orig/jdk/make/java/nio/Makefile	2009-12-13 18:43:31.000000000 +0000
-+++ openjdk-boot/jdk/make/java/nio/Makefile	2009-12-13 19:03:31.000000000 +0000
-@@ -31,7 +31,7 @@
- PACKAGE = java.nio
- LIBRARY = nio
- PRODUCT = java
--OTHER_JAVACFLAGS += -Xmaxwarns 1000 -Xlint:serial -Werror
-+OTHER_JAVACFLAGS += -Xlint:serial -Werror
- include $(BUILDDIR)/common/Defs.gmk
- 
- NIO_SRC = $(SHARE_SRC)/classes/java/nio
--- a/patches/boot/ecj-stringswitch.patch	Thu Nov 29 04:33:36 2012 +0000
+++ b/patches/boot/ecj-stringswitch.patch	Tue Dec 04 11:00:41 2012 +0000
@@ -303,3 +303,171 @@
                  }
  
                  throw new IllegalArgumentException(
+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	2012-11-30 17:43:24.199320360 +0000
++++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandleNatives.java	2012-12-03 17:54:57.757827289 +0000
+@@ -327,12 +327,11 @@
+                                      Object[] appendixResult) {
+         try {
+             if (defc == MethodHandle.class && refKind == REF_invokeVirtual) {
+-                switch (name) {
+-                case "invoke":
+-                    return Invokers.genericInvokerMethod(fixMethodType(callerClass, type), appendixResult);
+-                case "invokeExact":
+-                    return Invokers.exactInvokerMethod(fixMethodType(callerClass, type), appendixResult);
+-                }
++	      if ("invoke".equals(name)) {
++		return Invokers.genericInvokerMethod(fixMethodType(callerClass, type), appendixResult);
++	      } else if ("invokeExact".equals(name)) {
++		return Invokers.exactInvokerMethod(fixMethodType(callerClass, type), appendixResult);
++	      }
+             }
+         } catch (Throwable ex) {
+             if (ex instanceof LinkageError)
+@@ -395,91 +394,82 @@
+     static boolean isCallerSensitive(MemberName mem) {
+         assert(mem.isInvocable());
+         Class<?> defc = mem.getDeclaringClass();
+-        switch (mem.getName()) {
+-        case "doPrivileged":
++	String memName = mem.getName();
++	if ("doPrivileged".equals(memName))
+             return defc == java.security.AccessController.class;
+-        case "getUnsafe":
++	else if ("getUnsafe".equals(memName)) 
+             return defc == sun.misc.Unsafe.class;
+-        case "lookup":
++        else if ("lookup".equals(memName)) 
+             return defc == java.lang.invoke.MethodHandles.class;
+-        case "invoke":
++        else if ("invoke".equals(memName)) 
+             return defc == java.lang.reflect.Method.class;
+-        case "get":
+-        case "getBoolean":
+-        case "getByte":
+-        case "getChar":
+-        case "getShort":
+-        case "getInt":
+-        case "getLong":
+-        case "getFloat":
+-        case "getDouble":
+-        case "set":
+-        case "setBoolean":
+-        case "setByte":
+-        case "setChar":
+-        case "setShort":
+-        case "setInt":
+-        case "setLong":
+-        case "setFloat":
+-        case "setDouble":
+-            return defc == java.lang.reflect.Field.class;
+-        case "newInstance":
++        else if ("get".equals(memName) ||
++	    "getBoolean".equals(memName) ||
++	    "getByte".equals(memName) ||
++	    "getChar".equals(memName) ||
++	    "getShort".equals(memName) ||
++	    "getInt".equals(memName) ||
++	    "getLong".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;
++        else if ("newInstance".equals(memName)) {
+             if (defc == java.lang.reflect.Constructor.class)  return true;
+             if (defc == java.lang.Class.class)  return true;
+-            break;
+-        case "forName":
+-        case "getClassLoader":
+-        case "getClasses":
+-        case "getFields":
+-        case "getMethods":
+-        case "getConstructors":
+-        case "getDeclaredClasses":
+-        case "getDeclaredFields":
+-        case "getDeclaredMethods":
+-        case "getDeclaredConstructors":
+-        case "getField":
+-        case "getMethod":
+-        case "getConstructor":
+-        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 "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;
+-        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;
+-            break;
+-        case "getContextClassLoader":
++        } else if ("getContextClassLoader".equals(memName))
+             return defc == 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 "getProxyClass":
+-        case "newProxyInstance":
++        else if ("getProxyClass".equals(memName) || "newProxyInstance".equals(memName))
+             return defc == java.lang.reflect.Proxy.class;
+-        case "getBundle":
+-        case "clearCache":
++        else if ("getBundle".equals(memName) || "clearCache".equals(memName))
+             return defc == java.util.ResourceBundle.class;
+-        }
+         return false;
+     }
+ }
--- a/patches/boot/ecj-trywithresources.patch	Thu Nov 29 04:33:36 2012 +0000
+++ b/patches/boot/ecj-trywithresources.patch	Tue Dec 04 11:00:41 2012 +0000
@@ -1081,3 +1081,120 @@
                  }
              } else {
                  out.add(a.arg);
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/MethodHandleImpl.java openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandleImpl.java
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/MethodHandleImpl.java	2012-11-30 17:35:03.823185224 +0000
++++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandleImpl.java	2012-11-30 17:35:55.920030051 +0000
+@@ -927,10 +927,15 @@
+                             java.net.URLConnection uconn = tClass.getResource(tResource).openConnection();
+                             int len = uconn.getContentLength();
+                             byte[] bytes = new byte[len];
+-                            try (java.io.InputStream str = uconn.getInputStream()) {
++			    java.io.InputStream str = null;
++                            try {
++			        str = uconn.getInputStream();
+                                 int nr = str.read(bytes);
+                                 if (nr != len)  throw new java.io.IOException(tResource);
+-                            }
++                            } finally {
++			      if (str != null)
++				str.close();
++			    }
+                             values[0] = bytes;
+                         } catch (java.io.IOException ex) {
+                             throw newInternalError(ex);
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/print/PSPrinterJob.java openjdk-boot/jdk/src/share/classes/sun/print/PSPrinterJob.java
+--- openjdk-boot.orig/jdk/src/share/classes/sun/print/PSPrinterJob.java	2012-12-04 05:13:31.292848926 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/print/PSPrinterJob.java	2012-12-04 05:18:24.261609680 +0000
+@@ -680,25 +680,38 @@
+ 
+         private void handleProcessFailure(final Process failedProcess,
+                 final String[] execCmd, final int result) throws IOException {
+-            try (StringWriter sw = new StringWriter();
+-                    PrintWriter pw = new PrintWriter(sw)) {
++	    StringWriter sw = null;
++	    PrintWriter pw = null;
++            try { 
++		sw = new StringWriter();
++		pw = new PrintWriter(sw);
+                 pw.append("error=").append(Integer.toString(result));
+                 pw.append(" running:");
+                 for (String arg: execCmd) {
+                     pw.append(" '").append(arg).append("'");
+                 }
+-                try (InputStream is = failedProcess.getErrorStream();
+-                        InputStreamReader isr = new InputStreamReader(is);
+-                        BufferedReader br = new BufferedReader(isr)) {
++		InputStream is = null;
++		InputStreamReader isr = null;
++		BufferedReader br = null;
++                try {
++		    is = failedProcess.getErrorStream();
++                    isr = new InputStreamReader(is);
++                    br = new BufferedReader(isr);
+                     while (br.ready()) {
+                         pw.println();
+                         pw.append("\t\t").append(br.readLine());
+                     }
+                 } finally {
+                     pw.flush();
++		    if (br != null) br.close();
++		    if (isr != null) isr.close();
++		    if (is != null) is.close();
+                     throw new IOException(sw.toString());
+                 }
+-            }
++            } finally {
++		if (pw != null) pw.close();
++		if (sw != null) sw.close();
++	    }
+         }
+ 
+         public Object run() {
+diff -Nru openjdk-boot.orig/jdk/src/solaris/classes/sun/print/UnixPrintJob.java openjdk-boot/jdk/src/solaris/classes/sun/print/UnixPrintJob.java
+--- openjdk-boot.orig/jdk/src/solaris/classes/sun/print/UnixPrintJob.java	2012-12-04 05:12:45.884111471 +0000
++++ openjdk-boot/jdk/src/solaris/classes/sun/print/UnixPrintJob.java	2012-12-04 05:18:59.906188886 +0000
+@@ -960,25 +960,38 @@
+ 
+         private void handleProcessFailure(final Process failedProcess,
+                 final String[] execCmd, final int result) throws IOException {
+-            try (StringWriter sw = new StringWriter();
+-                    PrintWriter pw = new PrintWriter(sw)) {
++	    StringWriter sw = null;
++	    PrintWriter pw = null;
++            try {
++		sw = new StringWriter();
++                pw = new PrintWriter(sw);
+                 pw.append("error=").append(Integer.toString(result));
+                 pw.append(" running:");
+                 for (String arg: execCmd) {
+                     pw.append(" '").append(arg).append("'");
+                 }
+-                try (InputStream is = failedProcess.getErrorStream();
+-                        InputStreamReader isr = new InputStreamReader(is);
+-                        BufferedReader br = new BufferedReader(isr)) {
++		InputStream is = null;
++		InputStreamReader isr = null;
++		BufferedReader br = null;
++                try {
++		    is = failedProcess.getErrorStream();
++                    isr = new InputStreamReader(is);
++                    br = new BufferedReader(isr);
+                     while (br.ready()) {
+                         pw.println();
+                         pw.append("\t\t").append(br.readLine());
+                     }
+                 } finally {
+                     pw.flush();
++		    if (br != null) br.close();
++		    if (isr != null) isr.close();
++		    if (is != null) is.close();
+                     throw new IOException(sw.toString());
+                 }
+-            }
++            } finally {
++		if (pw != null) pw.close();
++		if (sw != null) sw.close();
++	    }
+         }
+ 
+         public Object run() {
--- a/patches/systemtap_gc.patch	Thu Nov 29 04:33:36 2012 +0000
+++ b/patches/systemtap_gc.patch	Tue Dec 04 11:00:41 2012 +0000
@@ -1,5 +1,6 @@
---- openjdk.orig/hotspot/src/share/vm/compiler/oopMap.cpp	2012-06-26 09:24:22.390325184 -0400
-+++ openjdk/hotspot/src/share/vm/compiler/oopMap.cpp	2012-07-06 10:12:44.981413003 -0400
+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	2012-11-30 12:17:17.000000000 +0000
++++ openjdk/hotspot/src/share/vm/compiler/oopMap.cpp	2012-11-30 14:47:23.074518179 +0000
 @@ -33,9 +33,13 @@
  #include "memory/resourceArea.hpp"
  #include "runtime/frame.inline.hpp"
@@ -24,12 +25,112 @@
  
      // Delete entry
      delete entry;
---- openjdk.orig/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp	2012-07-12 09:48:40.349999515 -0400
-+++ openjdk/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp	2012-07-19 18:38:07.560757426 -0400
-@@ -53,11 +53,18 @@
+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	2012-11-30 12:17:17.000000000 +0000
++++ openjdk/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp	2012-11-30 14:47:23.082518302 +0000
+@@ -55,6 +55,12 @@
+ #include "runtime/vmThread.hpp"
+ #include "services/memoryService.hpp"
+ #include "services/runtimeService.hpp"
++#include "utilities/dtrace.hpp"
++
++#ifndef USDT2
++  HS_DTRACE_PROBE_DECL4(provider, gc__collection__contig__begin, bool, bool, size_t, bool);
++  HS_DTRACE_PROBE_DECL4(provider, gc__collection__contig__end, bool, bool, size_t, bool);
++#endif /* !USDT2 */
+ 
+ // statics
+ CMSCollector* ConcurrentMarkSweepGeneration::_collector = NULL;
+@@ -1639,7 +1645,13 @@
+                                             size_t size,
+                                             bool   tlab)
+ {
++#ifndef USDT2
++  HS_DTRACE_PROBE4(hotspot, gc__collection__contig__begin, full, clear_all_soft_refs, size, tlab);
++#endif /* !USDT2 */
+   collector()->collect(full, clear_all_soft_refs, size, tlab);
++#ifndef USDT2
++  HS_DTRACE_PROBE4(hotspot, gc__collection__contig__end, full, clear_all_soft_refs, size, tlab);
++#endif /* !USDT2 */
+ }
+ 
+ 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	2012-11-30 12:17:17.000000000 +0000
++++ openjdk/hotspot/src/share/vm/gc_implementation/g1/g1MarkSweep.cpp	2012-11-30 14:47:23.082518302 +0000
+@@ -46,8 +46,13 @@
+ #include "runtime/thread.hpp"
  #include "runtime/vmThread.hpp"
+ #include "utilities/copy.hpp"
++#include "utilities/dtrace.hpp"
+ #include "utilities/events.hpp"
+ 
++#ifndef USDT2
++  HS_DTRACE_PROBE_DECL2(provider, gc__collection__G1__begin, *uintptr_t, *uintptr_t);
++  HS_DTRACE_PROBE_DECL2(provider, gc__collection__G1__end, *uintptr_t, *uintptr_t);
++ #endif /* !USDT2 */ 
+ class HeapRegion;
+ 
+ void G1MarkSweep::invoke_at_safepoint(ReferenceProcessor* rp,
+@@ -85,6 +90,9 @@
+   // The marking doesn't preserve the marks of biased objects.
+   BiasedLocking::preserve_marks();
+ 
++#ifndef USDT2
++  HS_DTRACE_PROBE2(hotspot, gc__collection__G1__begin, &sh, sh->gc_cause());
++#endif /* !USDT2 */
+   mark_sweep_phase1(marked_for_unloading, clear_all_softrefs);
+ 
+   mark_sweep_phase2();
+@@ -104,6 +112,9 @@
+   GenRemSet* rs = sh->rem_set();
+   rs->invalidate(sh->perm_gen()->used_region(), true /*whole_heap*/);
+ 
++#ifndef USDT2
++  HS_DTRACE_PROBE2(hotspot, gc__collection__G1__end, &sh, sh->gc_cause());
++#endif /* !USDT2 */
+   // "free at last gc" is calculated from these.
+   // 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	2012-11-30 12:17:17.000000000 +0000
++++ openjdk/hotspot/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.cpp	2012-11-30 14:48:05.819184778 +0000
+@@ -41,8 +41,14 @@
+ #include "runtime/java.hpp"
+ #include "runtime/vmThread.hpp"
+ #include "services/memTracker.hpp"
++#include "utilities/dtrace.hpp"
+ #include "utilities/vmError.hpp"
+ 
++#ifndef USDT2
++  HS_DTRACE_PROBE_DECL2(provider, gc__collection__parscavenge__heap__begin, *uintptr_t, *uintptr_t);
++  HS_DTRACE_PROBE_DECL2(provider, gc__collection__parscavenge__heap__end, *uintptr_t, *uintptr_t);
++#endif /* !USDT2 */
++
+ PSYoungGen*  ParallelScavengeHeap::_young_gen = NULL;
+ PSOldGen*    ParallelScavengeHeap::_old_gen = NULL;
+ PSPermGen*   ParallelScavengeHeap::_perm_gen = NULL;
+@@ -809,7 +815,13 @@
+   }
+ 
+   VM_ParallelGCSystemGC op(gc_count, full_gc_count, cause);
++#ifndef USDT2
++  HS_DTRACE_PROBE2(hotspot, gc__collection__parscavenge__heap__begin, &op, cause);
++#endif /* !USDT2 */
+   VMThread::execute(&op);
++#ifndef USDT2
++  HS_DTRACE_PROBE2(hotspot, gc__collection__parscavenge__heap__end, &op, cause);
++#endif /* !USDT2 */
+ }
+ 
+ // 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	2012-11-30 12:17:17.000000000 +0000
++++ openjdk/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp	2012-11-30 14:48:33.123610660 +0000
+@@ -54,11 +54,18 @@
  #include "services/management.hpp"
  #include "services/memoryService.hpp"
+ #include "services/memTracker.hpp"
 +#include "utilities/dtrace.hpp"
  #include "utilities/events.hpp"
  #include "utilities/stack.inline.hpp"
@@ -45,7 +146,7 @@
  // All sizes are in HeapWords.
  const size_t ParallelCompactData::Log2RegionSize  = 9; // 512 words
  const size_t ParallelCompactData::RegionSize      = (size_t)1 << Log2RegionSize;
-@@ -433,6 +439,9 @@
+@@ -436,6 +443,9 @@
  
  void ParallelCompactData::clear()
  {
@@ -55,7 +156,7 @@
    memset(_region_data, 0, _region_vspace->committed_size());
  }
  
-@@ -1970,6 +1979,9 @@
+@@ -1973,6 +1983,9 @@
           "should be in vm thread");
  
    ParallelScavengeHeap* heap = gc_heap();
@@ -65,7 +166,7 @@
    GCCause::Cause gc_cause = heap->gc_cause();
    assert(!heap->is_gc_active(), "not reentrant");
  
-@@ -3376,6 +3388,9 @@
+@@ -3372,6 +3385,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();
@@ -75,213 +176,9 @@
    assert(new_top >= dest_addr, "bad new_top value");
    const size_t words = pointer_delta(new_top, dest_addr);
  
---- openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/g1MarkSweep.cpp	2012-08-15 12:04:43.837439833 -0400
-+++ openjdk/hotspot/src/share/vm/gc_implementation/g1/g1MarkSweep.cpp	2012-08-15 12:01:47.897745719 -0400
-@@ -45,8 +45,13 @@
- #include "runtime/thread.hpp"
- #include "runtime/vmThread.hpp"
- #include "utilities/copy.hpp"
-+#include "utilities/dtrace.hpp"
- #include "utilities/events.hpp"
- 
-+#ifndef USDT2
-+  HS_DTRACE_PROBE_DECL2(provider, gc__collection__G1__begin, *uintptr_t, *uintptr_t);
-+  HS_DTRACE_PROBE_DECL2(provider, gc__collection__G1__end, *uintptr_t, *uintptr_t);
-+ #endif /* !USDT2 */ 
- class HeapRegion;
- 
- void G1MarkSweep::invoke_at_safepoint(ReferenceProcessor* rp,
-@@ -84,6 +89,9 @@
-   // The marking doesn't preserve the marks of biased objects.
-   BiasedLocking::preserve_marks();
- 
-+#ifndef USDT2
-+  HS_DTRACE_PROBE2(hotspot, gc__collection__G1__begin, &sh, sh->gc_cause());
-+#endif /* !USDT2 */
-   mark_sweep_phase1(marked_for_unloading, clear_all_softrefs);
- 
-   mark_sweep_phase2();
-@@ -103,6 +111,9 @@
-   GenRemSet* rs = sh->rem_set();
-   rs->invalidate(sh->perm_gen()->used_region(), true /*whole_heap*/);
- 
-+#ifndef USDT2
-+  HS_DTRACE_PROBE2(hotspot, gc__collection__G1__end, &sh, sh->gc_cause());
-+#endif /* !USDT2 */
-   // "free at last gc" is calculated from these.
-   // CHF: cheating for now!!!
-   //  Universe::set_heap_capacity_at_last_gc(Universe::heap()->capacity());
---- openjdk.orig/hotspot/src/share/vm/memory/tenuredGeneration.cpp	2012-08-15 12:03:43.009543167 -0400
-+++ openjdk/hotspot/src/share/vm/memory/tenuredGeneration.cpp	2012-08-15 12:14:25.414381449 -0400
-@@ -33,6 +33,12 @@
- #include "memory/tenuredGeneration.hpp"
- #include "oops/oop.inline.hpp"
- #include "runtime/java.hpp"
-+#include "utilities/dtrace.hpp"
-+
-+#ifndef USDT2
-+  HS_DTRACE_PROBE_DECL4(provider, gc__collection__tenured__begin, bool, bool, size_t, bool);
-+  HS_DTRACE_PROBE_DECL4(provider, gc__collection__tenured__end, bool, bool, size_t, bool);
-+#endif /* !USDT2 */
- 
- TenuredGeneration::TenuredGeneration(ReservedSpace rs,
-                                      size_t initial_byte_size, int level,
-@@ -307,8 +313,14 @@
-                                 size_t size,
-                                 bool   is_tlab) {
-   retire_alloc_buffers_before_full_gc();
-+#ifndef USDT2
-+  HS_DTRACE_PROBE4(hotspot, gc__collection__tenured__begin, full, clear_all_soft_refs, size, is_tlab);
-+#endif  /* !USDT2 */
-   OneContigSpaceCardGeneration::collect(full, clear_all_soft_refs,
-                                         size, is_tlab);
-+#ifndef USDT2
-+  HS_DTRACE_PROBE4(hotspot, gc__collection__tenured__end, full, clear_all_soft_refs, size, is_tlab);
-+#endif  /* !USDT2 */
- }
- 
- void TenuredGeneration::update_gc_stats(int current_level,
---- openjdk.orig/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp	2012-08-15 12:03:43.039543116 -0400
-+++ openjdk/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp	2012-08-15 12:18:57.181932342 -0400
-@@ -49,6 +49,12 @@
- #include "utilities/copy.hpp"
- #include "utilities/globalDefinitions.hpp"
- #include "utilities/workgroup.hpp"
-+#include "utilities/dtrace.hpp"
-+
-+#ifndef USDT2
-+  HS_DTRACE_PROBE_DECL4(provider, gc__collection__parnew__begin, bool, bool, size_t, bool);
-+  HS_DTRACE_PROBE_DECL4(provider, gc__collection__parnew__end, bool, bool, size_t, bool);
-+#endif /* !USDT2 */
- 
- #ifdef _MSC_VER
- #pragma warning( push )
-@@ -878,6 +884,9 @@
-                                bool   clear_all_soft_refs,
-                                size_t size,
-                                bool   is_tlab) {
-+#ifndef USDT2
-+  HS_DTRACE_PROBE4(hotspot, gc__collection__parnew__begin, full, clear_all_soft_refs, size, is_tlab);
-+#endif  /* !USDT2 */
-   assert(full || size > 0, "otherwise we don't want to collect");
-   GenCollectedHeap* gch = GenCollectedHeap::heap();
-   assert(gch->kind() == CollectedHeap::GenCollectedHeap,
-@@ -1032,6 +1041,10 @@
-     gch->print_heap_change(gch_prev_used);
-   }
- 
-+#ifndef USDT2
-+  HS_DTRACE_PROBE4(hotspot, gc__collection__parnew__end, full, clear_all_soft_refs, size, is_tlab);
-+#endif  /* !USDT2 */
-+
-   if (PrintGCDetails && ParallelGCVerbose) {
-     TASKQUEUE_STATS_ONLY(thread_state_set.print_termination_stats());
-     TASKQUEUE_STATS_ONLY(thread_state_set.print_taskqueue_stats());
---- openjdk.orig/hotspot/src/share/vm/memory/defNewGeneration.cpp	2012-08-15 12:03:43.010543164 -0400
-+++ openjdk/hotspot/src/share/vm/memory/defNewGeneration.cpp	2012-08-15 12:21:41.076673646 -0400
-@@ -38,6 +38,7 @@
- #include "oops/oop.inline.hpp"
- #include "runtime/java.hpp"
- #include "utilities/copy.hpp"
-+#include "utilities/dtrace.hpp"
- #include "utilities/stack.inline.hpp"
- #ifdef TARGET_OS_FAMILY_linux
- # include "thread_linux.inline.hpp"
-@@ -51,7 +52,10 @@
- #ifdef TARGET_OS_FAMILY_bsd
- # include "thread_bsd.inline.hpp"
- #endif
--
-+#ifndef USDT2
-+  HS_DTRACE_PROBE_DECL4(provider, gc__collection__defnew__begin, bool, bool, size_t, bool);
-+  HS_DTRACE_PROBE_DECL4(provider, gc__collection__defnew__end, bool, bool, size_t, bool);
-+#endif /* !USDT2 */
- //
- // DefNewGeneration functions.
- 
-@@ -528,6 +532,9 @@
-                                bool   clear_all_soft_refs,
-                                size_t size,
-                                bool   is_tlab) {
-+#ifndef USDT2
-+  HS_DTRACE_PROBE4(hotspot, gc__collection__defnew__begin, full, clear_all_soft_refs, size, is_tlab);
-+#endif  /* !USDT2 */
-   assert(full || size > 0, "otherwise we don't want to collect");
-   GenCollectedHeap* gch = GenCollectedHeap::heap();
-   _next_gen = gch->next_gen(this);
-@@ -661,6 +668,10 @@
-   // does not guarantee monotonicity.
-   jlong now = os::javaTimeNanos() / NANOSECS_PER_MILLISEC;
-   update_time_of_last_gc(now);
-+#ifndef USDT2
-+  HS_DTRACE_PROBE4(hotspot, gc__collection__defnew__end, full, clear_all_soft_refs, size, is_tlab);
-+#endif  /* !USDT2 */
-+
- }
- 
- class RemoveForwardPointerClosure: public ObjectClosure {
---- openjdk.orig/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp	2012-08-15 12:03:43.044543106 -0400
-+++ openjdk/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp	2012-08-15 12:25:26.632316692 -0400
-@@ -55,6 +55,12 @@
- #include "runtime/vmThread.hpp"
- #include "services/memoryService.hpp"
- #include "services/runtimeService.hpp"
-+#include "utilities/dtrace.hpp"
-+
-+#ifndef USDT2
-+  HS_DTRACE_PROBE_DECL4(provider, gc__collection__contig__begin, bool, bool, size_t, bool);
-+  HS_DTRACE_PROBE_DECL4(provider, gc__collection__contig__end, bool, bool, size_t, bool);
-+#endif /* !USDT2 */
- 
- // statics
- CMSCollector* ConcurrentMarkSweepGeneration::_collector = NULL;
-@@ -1647,7 +1653,13 @@
-                                             size_t size,
-                                             bool   tlab)
- {
-+#ifndef USDT2
-+  HS_DTRACE_PROBE4(hotspot, gc__collection__contig__begin, full, clear_all_soft_refs, size, tlab);
-+#endif /* !USDT2 */
-   collector()->collect(full, clear_all_soft_refs, size, tlab);
-+#ifndef USDT2
-+  HS_DTRACE_PROBE4(hotspot, gc__collection__contig__end, full, clear_all_soft_refs, size, tlab);
-+#endif /* !USDT2 */
- }
- 
- void CMSCollector::collect(bool   full,
---- openjdk.orig/hotspot/src/share/vm/memory/generation.cpp	2012-08-15 12:03:43.009543167 -0400
-+++ openjdk/hotspot/src/share/vm/memory/generation.cpp	2012-08-15 12:27:46.378095083 -0400
-@@ -39,8 +39,14 @@
- #include "oops/oop.inline.hpp"
- #include "runtime/java.hpp"
- #include "utilities/copy.hpp"
-+#include "utilities/dtrace.hpp"
- #include "utilities/events.hpp"
- 
-+#ifndef USDT2
-+  HS_DTRACE_PROBE_DECL4(provider, gc__collection__contig__begin, bool, bool, size_t, bool);
-+  HS_DTRACE_PROBE_DECL4(provider, gc__collection__contig__end, bool, bool, size_t, bool);
-+#endif /* !USDT2 */
-+
- Generation::Generation(ReservedSpace rs, size_t initial_size, int level) :
-   _level(level),
-   _ref_processor(NULL) {
-@@ -470,7 +476,13 @@
-   // refs discovery is over the entire heap, not just this generation
-   ReferenceProcessorSpanMutator
-     x(ref_processor(), GenCollectedHeap::heap()->reserved_region());
-+#ifndef USDT2
-+  HS_DTRACE_PROBE4(hotspot, gc__collection__contig__begin, full, clear_all_soft_refs, size, is_tlab);
-+#endif  /* !USDT2 */
-   GenMarkSweep::invoke_at_safepoint(_level, ref_processor(), clear_all_soft_refs);
-+#ifndef USDT2
-+  HS_DTRACE_PROBE4(hotspot, gc__collection__contig__end, full, clear_all_soft_refs, size, is_tlab);
-+#endif  /* !USDT2 */
-   SpecializationStats::print();
- }
- 
---- openjdk.orig/hotspot/src/share/vm/gc_implementation/parallelScavenge/psScavenge.cpp	2012-07-25 13:24:07.000000000 -0400
-+++ openjdk/hotspot/src/share/vm/gc_implementation/parallelScavenge/psScavenge.cpp	2012-08-17 10:26:44.181117802 -0400
+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	2012-11-30 12:17:17.000000000 +0000
++++ openjdk/hotspot/src/share/vm/gc_implementation/parallelScavenge/psScavenge.cpp	2012-11-30 14:47:23.082518302 +0000
 @@ -51,8 +51,17 @@
  #include "runtime/vmThread.hpp"
  #include "runtime/vm_operations.hpp"
@@ -336,34 +233,147 @@
      }
    }
  
---- openjdk.orig/hotspot/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.cpp	2012-07-25 13:24:07.000000000 -0400
-+++ openjdk/hotspot/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.cpp	2012-08-31 15:14:23.936576341 -0400
-@@ -40,8 +40,14 @@
- #include "runtime/handles.inline.hpp"
- #include "runtime/java.hpp"
- #include "runtime/vmThread.hpp"
+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	2012-11-30 12:17:17.000000000 +0000
++++ openjdk/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp	2012-11-30 14:47:23.082518302 +0000
+@@ -49,6 +49,12 @@
+ #include "utilities/copy.hpp"
+ #include "utilities/globalDefinitions.hpp"
+ #include "utilities/workgroup.hpp"
 +#include "utilities/dtrace.hpp"
- #include "utilities/vmError.hpp"
++
++#ifndef USDT2
++  HS_DTRACE_PROBE_DECL4(provider, gc__collection__parnew__begin, bool, bool, size_t, bool);
++  HS_DTRACE_PROBE_DECL4(provider, gc__collection__parnew__end, bool, bool, size_t, bool);
++#endif /* !USDT2 */
+ 
+ #ifdef _MSC_VER
+ #pragma warning( push )
+@@ -884,6 +890,9 @@
+                                bool   clear_all_soft_refs,
+                                size_t size,
+                                bool   is_tlab) {
++#ifndef USDT2
++  HS_DTRACE_PROBE4(hotspot, gc__collection__parnew__begin, full, clear_all_soft_refs, size, is_tlab);
++#endif  /* !USDT2 */
+   assert(full || size > 0, "otherwise we don't want to collect");
+   GenCollectedHeap* gch = GenCollectedHeap::heap();
+   assert(gch->kind() == CollectedHeap::GenCollectedHeap,
+@@ -1038,6 +1047,10 @@
+     gch->print_heap_change(gch_prev_used);
+   }
  
 +#ifndef USDT2
-+  HS_DTRACE_PROBE_DECL2(provider, gc__collection__parscavenge__heap__begin, *uintptr_t, *uintptr_t);
-+  HS_DTRACE_PROBE_DECL2(provider, gc__collection__parscavenge__heap__end, *uintptr_t, *uintptr_t);
++  HS_DTRACE_PROBE4(hotspot, gc__collection__parnew__end, full, clear_all_soft_refs, size, is_tlab);
++#endif  /* !USDT2 */
++
+   if (PrintGCDetails && ParallelGCVerbose) {
+     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	2012-11-30 12:17:17.000000000 +0000
++++ openjdk/hotspot/src/share/vm/memory/defNewGeneration.cpp	2012-11-30 14:47:23.082518302 +0000
+@@ -38,6 +38,7 @@
+ #include "oops/oop.inline.hpp"
+ #include "runtime/java.hpp"
+ #include "utilities/copy.hpp"
++#include "utilities/dtrace.hpp"
+ #include "utilities/stack.inline.hpp"
+ #ifdef TARGET_OS_FAMILY_linux
+ # include "thread_linux.inline.hpp"
+@@ -51,7 +52,10 @@
+ #ifdef TARGET_OS_FAMILY_bsd
+ # include "thread_bsd.inline.hpp"
+ #endif
+-
++#ifndef USDT2
++  HS_DTRACE_PROBE_DECL4(provider, gc__collection__defnew__begin, bool, bool, size_t, bool);
++  HS_DTRACE_PROBE_DECL4(provider, gc__collection__defnew__end, bool, bool, size_t, bool);
++#endif /* !USDT2 */
+ //
+ // DefNewGeneration functions.
+ 
+@@ -528,6 +532,9 @@
+                                bool   clear_all_soft_refs,
+                                size_t size,
+                                bool   is_tlab) {
++#ifndef USDT2
++  HS_DTRACE_PROBE4(hotspot, gc__collection__defnew__begin, full, clear_all_soft_refs, size, is_tlab);
++#endif  /* !USDT2 */
+   assert(full || size > 0, "otherwise we don't want to collect");
+   GenCollectedHeap* gch = GenCollectedHeap::heap();
+   _next_gen = gch->next_gen(this);
+@@ -661,6 +668,10 @@
+   // does not guarantee monotonicity.
+   jlong now = os::javaTimeNanos() / NANOSECS_PER_MILLISEC;
+   update_time_of_last_gc(now);
++#ifndef USDT2
++  HS_DTRACE_PROBE4(hotspot, gc__collection__defnew__end, full, clear_all_soft_refs, size, is_tlab);
++#endif  /* !USDT2 */
++
+ }
+ 
+ class RemoveForwardPointerClosure: public ObjectClosure {
+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	2012-11-30 12:17:17.000000000 +0000
++++ openjdk/hotspot/src/share/vm/memory/generation.cpp	2012-11-30 14:47:23.082518302 +0000
+@@ -39,8 +39,14 @@
+ #include "oops/oop.inline.hpp"
+ #include "runtime/java.hpp"
+ #include "utilities/copy.hpp"
++#include "utilities/dtrace.hpp"
+ #include "utilities/events.hpp"
+ 
++#ifndef USDT2
++  HS_DTRACE_PROBE_DECL4(provider, gc__collection__contig__begin, bool, bool, size_t, bool);
++  HS_DTRACE_PROBE_DECL4(provider, gc__collection__contig__end, bool, bool, size_t, bool);
 +#endif /* !USDT2 */
 +
- PSYoungGen*  ParallelScavengeHeap::_young_gen = NULL;
- PSOldGen*    ParallelScavengeHeap::_old_gen = NULL;
- PSPermGen*   ParallelScavengeHeap::_perm_gen = NULL;
-@@ -806,7 +812,13 @@
-   }
- 
-   VM_ParallelGCSystemGC op(gc_count, full_gc_count, cause);
+ Generation::Generation(ReservedSpace rs, size_t initial_size, int level) :
+   _level(level),
+   _ref_processor(NULL) {
+@@ -470,7 +476,13 @@
+   // refs discovery is over the entire heap, not just this generation
+   ReferenceProcessorSpanMutator
+     x(ref_processor(), GenCollectedHeap::heap()->reserved_region());
 +#ifndef USDT2
-+  HS_DTRACE_PROBE2(hotspot, gc__collection__parscavenge__heap__begin, &op, cause);
-+#endif /* !USDT2 */
-   VMThread::execute(&op);
++  HS_DTRACE_PROBE4(hotspot, gc__collection__contig__begin, full, clear_all_soft_refs, size, is_tlab);
++#endif  /* !USDT2 */
+   GenMarkSweep::invoke_at_safepoint(_level, ref_processor(), clear_all_soft_refs);
 +#ifndef USDT2
-+  HS_DTRACE_PROBE2(hotspot, gc__collection__parscavenge__heap__end, &op, cause);
-+#endif /* !USDT2 */
++  HS_DTRACE_PROBE4(hotspot, gc__collection__contig__end, full, clear_all_soft_refs, size, is_tlab);
++#endif  /* !USDT2 */
+   SpecializationStats::print();
  }
  
- // This interface assumes that it's being called by the
+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	2012-11-30 12:17:17.000000000 +0000
++++ openjdk/hotspot/src/share/vm/memory/tenuredGeneration.cpp	2012-11-30 14:47:23.082518302 +0000
+@@ -33,6 +33,12 @@
+ #include "memory/tenuredGeneration.hpp"
+ #include "oops/oop.inline.hpp"
+ #include "runtime/java.hpp"
++#include "utilities/dtrace.hpp"
++
++#ifndef USDT2
++  HS_DTRACE_PROBE_DECL4(provider, gc__collection__tenured__begin, bool, bool, size_t, bool);
++  HS_DTRACE_PROBE_DECL4(provider, gc__collection__tenured__end, bool, bool, size_t, bool);
++#endif /* !USDT2 */
+ 
+ TenuredGeneration::TenuredGeneration(ReservedSpace rs,
+                                      size_t initial_byte_size, int level,
+@@ -307,8 +313,14 @@
+                                 size_t size,
+                                 bool   is_tlab) {
+   retire_alloc_buffers_before_full_gc();
++#ifndef USDT2
++  HS_DTRACE_PROBE4(hotspot, gc__collection__tenured__begin, full, clear_all_soft_refs, size, is_tlab);
++#endif  /* !USDT2 */
+   OneContigSpaceCardGeneration::collect(full, clear_all_soft_refs,
+                                         size, is_tlab);
++#ifndef USDT2
++  HS_DTRACE_PROBE4(hotspot, gc__collection__tenured__end, full, clear_all_soft_refs, size, is_tlab);
++#endif  /* !USDT2 */
+ }
+ 
+ void TenuredGeneration::update_gc_stats(int current_level,