changeset 2533:a5c9abaa3f1a

Merge 7u4 update and tapset tests. No merge conflicts. Two probes fail: Probe hotspot.thread_start failed. Probe hotspot.thread_stop failed.
author Mark Wielaard <mark@klomp.org>
date Mon, 26 Mar 2012 19:33:38 +0200
parents f67b9f19ee57 (current diff) 3aba3623d5af (diff)
children 81ebf494d83d
files ChangeLog Makefile.am patches/systemtap-alloc-size-workaround.patch
diffstat 14 files changed, 1654 insertions(+), 1186 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Fri Mar 23 22:39:35 2012 +0100
+++ b/ChangeLog	Mon Mar 26 19:33:38 2012 +0200
@@ -1,3 +1,44 @@
+2012-03-23  Andrew John Hughes  <ahughes@redhat.com>
+
+	* patches/boot/pr39408.patch,
+	* patches/cacao/launcher.patch:
+	Regenerated.
+
+2012-03-22  Andrew John Hughes  <ahughes@redhat.com>
+
+	* patches/systemtap-alloc-size-workaround.patch:
+	Removed; upstream.
+	* Makefile.am:
+	(JDK_UPDATE_VERSION): Bump to 4.
+	(CORBA_CHANGESET): Update to IcedTea7 forest head.
+	(HOTSPOT_CHANGESET): Likewise.
+	(JAXP_CHANGESET): Likewise.
+	(JAXWS_CHANGESET): Likewise.
+	(JDK_CHANGESET): Likewise.
+	(LANGTOOLS_CHANGESET): Likewise.
+	(OPENJDK_CHANGESET): Likewise.
+	(CORBA_SHA256SUM): Likewise.
+	(HOTSPOT_SHA256SUM): Likewise.
+	(JAXP_SHA256SUM): Likewise.
+	(JAXWS_SHA256SUM): Likewise.
+	(JDK_SHA256SUM): Likewise.
+	(LANGTOOLS_SHA256SUM): Likewise.
+	(OPENJDK_SHA256SUM): Likewise.
+	(ICEDTEA_PATCHES): Drop upstreamed patch.
+	* patches/boot/ant-javac.patch,
+	* patches/boot/corba-defs.patch,
+	* patches/boot/demos.patch:
+	Regenerated.
+	* patches/boot/ecj-diamond.patch,
+	* patches/boot/ecj-multicatch.patch,
+	* patches/boot/ecj-trywithresources.patch:
+	Regenerated; additional cases added.
+	* patches/boot/hotspot-jdk-dependency.patch,
+	* patches/rhino.patch:
+	Regenerated.
+	* patches/systemtap.patch:
+	Rewritten.
+
 2012-03-23  Mark Wielaard  <mjw@redhat.com>
 
 	* test/tapset/jstaptest.pl: Add jstack tests.
--- a/Makefile.am	Fri Mar 23 22:39:35 2012 +0100
+++ b/Makefile.am	Mon Mar 26 19:33:38 2012 +0200
@@ -1,24 +1,24 @@
 # Dependencies
 
 OPENJDK_VERSION = b147
-JDK_UPDATE_VERSION = 02
+JDK_UPDATE_VERSION = 04
 COMBINED_VERSION = $(JDK_UPDATE_VERSION)-$(OPENJDK_VERSION)
 
-CORBA_CHANGESET = 78cd4b4fcb75
-HOTSPOT_CHANGESET = 433e4570d57c
-JAXP_CHANGESET = 7300d2ab9fb2
-JAXWS_CHANGESET = d26ff33070cb
-JDK_CHANGESET = afdcedc27c23
-LANGTOOLS_CHANGESET = 58f6a950cd72
-OPENJDK_CHANGESET = a66b58021165
+CORBA_CHANGESET = c628aeb3d72f
+HOTSPOT_CHANGESET = b1dfb460ee5c
+JAXP_CHANGESET = 9b7a2f21b8a8
+JAXWS_CHANGESET = 9ae185bd7ff2
+JDK_CHANGESET = 3377516da583
+LANGTOOLS_CHANGESET = 54b1383d794c
+OPENJDK_CHANGESET = 3a0fd3cc84a0
 
-CORBA_SHA256SUM = c25abc052d0e3041c558869ba88f80bf3ff051efbcd20e6c22b862fdd4c066d4
-HOTSPOT_SHA256SUM = 51f4d29c9bfa7bc08a0e70be33b71e2af4f114b78d0a99a4e9c6f6a9977d0568
-JAXP_SHA256SUM = 0774d2acaa47052b8f529edae1ca868721a0164a956455958a6ea51550fa01e0
-JAXWS_SHA256SUM = 5f0a98280219fa8fe2926cfd4471fb0e98391b38a3c4b29743ad361832cea0e2
-JDK_SHA256SUM = 35ad431d5d80e9b77bdbadc5218500e8ea377c3c731ddab0db7179bc5860075f
-LANGTOOLS_SHA256SUM = 3e66400ba51c5de4bf79be50dff41f47134ba2fcdbea845fb1ed0f492cfb0efb
-OPENJDK_SHA256SUM = 714a000514e273bae755f4cc90df839a298583b38bb93518d6cf805dede99b6d
+CORBA_SHA256SUM = b176cf1fd8a461413ab822236753cf455210e97c11a8d4224929582607c212b4
+HOTSPOT_SHA256SUM = 43d83d5209a9f748e6650c792ca8ef8d9a90d6e3c53e461993c6bffb8c37e972
+JAXP_SHA256SUM = 4d38e8a0fc0fcbe3ba8a56f9fc0960ecbf15cd4cef44b76fdc82418c008a33c3
+JAXWS_SHA256SUM = 60c6c62c851eafc15ff33e58aa625e6f58fd31f15328b121602a07891fc1d272
+JDK_SHA256SUM = 5707d697c2dfc44fbf91ec90721055b5a23ea4c77f0cb53abf00a0f53fa0845e
+LANGTOOLS_SHA256SUM = 97821e49028d8d726fac9563c361c682146e037074179cbd68ed5cb80e82f9fa
+OPENJDK_SHA256SUM = abe0c3b348c35f79117ef726bb2580b279024b1f73b6487fda4a1e717c738f9f
 
 CACAO_VERSION = a567bcb7f589
 CACAO_SHA256SUM = d49f79debc131a5694cae6ab3ba2864e7f3249ee8d9dc09aae8afdd4dc6b09f9
@@ -267,8 +267,7 @@
 endif
 
 if ENABLE_SYSTEMTAP
-ICEDTEA_PATCHES += patches/systemtap.patch \
-	patches/systemtap-alloc-size-workaround.patch
+ICEDTEA_PATCHES += patches/systemtap.patch
 endif
 
 if ENABLE_NSS
--- a/patches/boot/ant-javac.patch	Fri Mar 23 22:39:35 2012 +0100
+++ b/patches/boot/ant-javac.patch	Mon Mar 26 19:33:38 2012 +0200
@@ -1,7 +1,7 @@
 diff -Nru openjdk-boot.orig/jaxp/build.xml openjdk-boot/jaxp/build.xml
---- openjdk-boot.orig/jaxp/build.xml	2009-12-04 15:29:13.000000000 +0000
-+++ openjdk-boot/jaxp/build.xml	2009-12-14 22:57:23.000000000 +0000
-@@ -122,7 +122,8 @@
+--- openjdk-boot.orig/jaxp/build.xml	2012-02-21 23:55:29.000000000 +0000
++++ openjdk-boot/jaxp/build.xml	2012-03-18 22:26:49.382089457 +0000
+@@ -123,7 +123,8 @@
               memoryMaximumSize="${javac.memoryMaximumSize}"
               source="${javac.source}"
  	     debug="${javac.debug}"
@@ -10,11 +10,11 @@
 +	     executable="${jdk.home}/bin/javac">
              <compilerarg value="-J-Xbootclasspath/p:${javac.jar}"/>
              <compilerarg line="${javac.version.opt} ${javac.lint.opts} ${javac.no.jdk.warnings}"/>
-             <src refid="src.dir.id"/>
+         </javac>
 diff -Nru openjdk-boot.orig/jaxws/build.xml openjdk-boot/jaxws/build.xml
---- openjdk-boot.orig/jaxws/build.xml	2009-12-04 15:35:01.000000000 +0000
-+++ openjdk-boot/jaxws/build.xml	2009-12-14 22:57:41.000000000 +0000
-@@ -122,7 +122,8 @@
+--- openjdk-boot.orig/jaxws/build.xml	2012-02-15 17:08:44.000000000 +0000
++++ openjdk-boot/jaxws/build.xml	2012-03-18 22:26:49.382089457 +0000
+@@ -123,7 +123,8 @@
               memoryMaximumSize="${javac.memoryMaximumSize}"
               source="${javac.source}"
  	     debug="${javac.debug}"
--- a/patches/boot/corba-defs.patch	Fri Mar 23 22:39:35 2012 +0100
+++ b/patches/boot/corba-defs.patch	Mon Mar 26 19:33:38 2012 +0200
@@ -1,9 +1,9 @@
-diff -Nru openjdk.orig/corba/make/common/Defs.gmk openjdk/corba/make/common/Defs.gmk
---- openjdk-boot.orig/corba/make/common/Defs.gmk	2010-11-12 01:18:17.000000000 +0000
-+++ openjdk-boot/corba/make/common/Defs.gmk	2010-11-19 22:40:28.154937216 +0000
-@@ -53,6 +53,13 @@
- 
- _OUTPUTDIR=$(TOPDIR)/build/$(PLATFORM)-$(ARCH)
+diff -Nru openjdk-boot.orig/corba/make/common/Defs.gmk openjdk-boot/corba/make/common/Defs.gmk
+--- openjdk-boot.orig/corba/make/common/Defs.gmk	2012-02-15 17:08:19.000000000 +0000
++++ openjdk-boot/corba/make/common/Defs.gmk	2012-03-18 22:37:54.536815001 +0000
+@@ -75,6 +75,13 @@
+   endif
+ endif
  
 +
 +ifdef ALT_LANGTOOLS_DIST
@@ -15,7 +15,7 @@
  #
  # Get platform definitions
  #
-@@ -85,8 +92,6 @@
+@@ -107,8 +114,6 @@
  # for build tool jar files
  BUILDTOOLJARDIR     = $(OUTPUTDIR)/btjars
  ABS_BUILDTOOLJARDIR = $(ABS_OUTPUTDIR)/btjars
@@ -24,7 +24,7 @@
  # for imported source files
  IMPORTSRCDIR        = $(OUTPUTDIR)/impsrc
  # for imported documents
-@@ -167,7 +172,7 @@
+@@ -189,7 +194,7 @@
  # We define an intermediate variable for Java files because
  # we use its value later to help define $SOURCEPATH
  
--- a/patches/boot/demos.patch	Fri Mar 23 22:39:35 2012 +0100
+++ b/patches/boot/demos.patch	Mon Mar 26 19:33:38 2012 +0200
@@ -1,8 +1,8 @@
-diff -Nru openjdk.orig/jdk/make/common/Release.gmk openjdk/jdk/make/common/Release.gmk
---- openjdk-boot.orig/jdk/make/common/Release.gmk	2011-03-16 20:59:31.000000000 +0000
-+++ openjdk-boot/jdk/make/common/Release.gmk	2011-03-16 21:29:40.269191529 +0000
-@@ -1071,16 +1071,6 @@
- 	$(CP) $(PLATFORM_SRC)/bin/java_md.h $(JDK_IMAGE_DIR)/src/launcher
+diff -Nru openjdk-boot.orig/jdk/make/common/Release.gmk openjdk-boot/jdk/make/common/Release.gmk
+--- openjdk-boot.orig/jdk/make/common/Release.gmk	2012-03-18 22:39:44.298585468 +0000
++++ openjdk-boot/jdk/make/common/Release.gmk	2012-03-19 00:50:02.224588936 +0000
+@@ -1104,16 +1104,6 @@
+ 	$(CP) $(FILES_launcher) $(JDK_IMAGE_DIR)/src/launcher
  	$(CD) $(JDK_IMAGE_DIR)/src && $(ZIPEXE) -qr ../src.zip *
  	$(RM) -r $(JDK_IMAGE_DIR)/src
 -	@#
@@ -18,12 +18,12 @@
  ifneq ($(PLATFORM), windows)
  	$(call copy-man-pages,$(JDK_IMAGE_DIR),$(JDK_MAN_PAGES))
  endif # !windows
-diff -Nru openjdk.orig/jdk/make/Makefile openjdk/jdk/make/Makefile
---- openjdk-boot.orig/jdk/make/Makefile	2011-03-14 22:10:30.000000000 +0000
-+++ openjdk-boot/jdk/make/Makefile	2011-03-16 21:29:40.269191529 +0000
-@@ -238,7 +238,7 @@
- 
- SUBDIRS       = tools java javax sun com
+diff -Nru openjdk-boot.orig/jdk/make/Makefile openjdk-boot/jdk/make/Makefile
+--- openjdk-boot.orig/jdk/make/Makefile	2012-03-12 17:25:51.000000000 +0000
++++ openjdk-boot/jdk/make/Makefile	2012-03-19 00:50:02.224588936 +0000
+@@ -237,7 +237,7 @@
+   SUBDIRS += apple
+ endif
  SUBDIRS_tools = launchers
 -SUBDIRS_misc  = org sunw jpda mkdemo mksample
 +SUBDIRS_misc  = org sunw jpda mksample
--- a/patches/boot/ecj-diamond.patch	Fri Mar 23 22:39:35 2012 +0100
+++ b/patches/boot/ecj-diamond.patch	Mon Mar 26 19:33:38 2012 +0200
@@ -1,5 +1,6 @@
---- openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Attribute.java.orig
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Attribute.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Attribute.java	2012-03-22 11:28:14.027881166 +0000
 @@ -103,9 +103,9 @@
          return this.def.compareTo(that.def);
      }
@@ -70,8 +71,9 @@
          // Parse several independent layout bodies:  "[foo][bar]...[baz]"
          for (int i = 0; i < layout.length(); i++) {
              if (layout.charAt(i++) != '[')
---- openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/BandStructure.java.orig
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/BandStructure.java
+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-03-22 11:18:05.190037791 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/BandStructure.java	2012-03-22 11:28:14.047881492 +0000
 @@ -257,7 +257,7 @@
          assert(basicCodings[_meta_default] == null);
          assert(basicCodings[_meta_canon_min] != null);
@@ -139,8 +141,9 @@
          prevForAssertMap.put(b, p);
          return true;
      }
---- openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/ClassReader.java.orig
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/ClassReader.java
+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-03-22 11:18:05.066035805 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/ClassReader.java	2012-03-22 11:28:14.047881492 +0000
 @@ -466,7 +466,7 @@
  
      void readInnerClasses(Class cls) throws IOException {
@@ -150,19 +153,9 @@
          for (int i = 0; i < nc; i++) {
              InnerClass ic =
                  new InnerClass(readClassRef(),
---- openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Coding.java.orig
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Coding.java
-@@ -402,7 +402,7 @@
-     private static Map<Coding, Coding> codeMap;
- 
-     private static synchronized Coding of(int B, int H, int S, int del) {
--        if (codeMap == null)  codeMap = new HashMap<>();
-+        if (codeMap == null)  codeMap = new HashMap<Coding, Coding>();
-         Coding x0 = new Coding(B, H, S, del);
-         Coding x1 = codeMap.get(x0);
-         if (x1 == null)  codeMap.put(x0, x1 = x0);
---- openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/CodingChooser.java.orig
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/CodingChooser.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/CodingChooser.java	2012-03-22 11:28:14.047881492 +0000
 @@ -743,9 +743,9 @@
          // Steps 1/2/3 are interdependent, and may be iterated.
          // Steps 4 and 5 may be decided independently afterward.
@@ -198,8 +191,21 @@
              for (int i = start; i < end; i++) {
                  if (popset.add(values[i]))  popvals.add(values[i]);
              }
---- openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/ConstantPool.java.orig
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/ConstantPool.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Coding.java	2012-03-22 11:28:14.047881492 +0000
+@@ -402,7 +402,7 @@
+     private static Map<Coding, Coding> codeMap;
+ 
+     private static synchronized Coding of(int B, int H, int S, int del) {
+-        if (codeMap == null)  codeMap = new HashMap<>();
++        if (codeMap == null)  codeMap = new HashMap<Coding, Coding>();
+         Coding x0 = new Coding(B, H, S, del);
+         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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/ConstantPool.java	2012-03-22 11:28:14.047881492 +0000
 @@ -915,7 +915,7 @@
      public static
      Index[] partition(Index ix, int[] keys) {
@@ -227,8 +233,9 @@
               work.hasPrevious(); ) {
              Entry e = work.previous();
              work.remove();          // pop stack
---- openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java.orig
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java
+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-03-22 11:18:05.190037791 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java	2012-03-22 11:28:14.047881492 +0000
 @@ -59,7 +59,7 @@
                  ResourceBundle.getBundle("com.sun.java.util.jar.pack.DriverResource");
  
@@ -265,8 +272,9 @@
      loadOptmap:
          for (String optline : options.split("\n")) {
              String[] words = optline.split("\\p{Space}+");
---- openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/FixedList.java.orig
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/FixedList.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/FixedList.java	2012-03-22 11:28:14.047881492 +0000
 @@ -45,7 +45,7 @@
      private final ArrayList<E> flist;
  
@@ -276,8 +284,9 @@
          // initialize the list to null
          for (int i = 0 ; i < capacity ; i++) {
              flist.add(null);
---- openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Fixups.java.orig
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Fixups.java
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Fixups.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Fixups.java
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Fixups.java	2012-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Fixups.java	2012-03-22 11:28:14.051881557 +0000
 @@ -126,11 +126,11 @@
      public void setBytes(byte[] newBytes) {
          if (bytes == newBytes)  return;
@@ -301,8 +310,9 @@
      }
  
      static final int LOC_SHIFT = 1;
---- openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Package.java.orig
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Package.java
+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-03-22 11:18:05.070035870 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Package.java	2012-03-22 11:28:14.051881557 +0000
 @@ -112,7 +112,7 @@
      public static final Attribute.Layout attrSourceFileSpecial;
      public static final Map<Attribute.Layout, Attribute> attrDefs;
@@ -466,8 +476,9 @@
          for (Class cls : classes) {
              // Add to the end of ths list:
              if (!fileSet.contains(cls.file))
---- openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageReader.java.orig
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageReader.java
+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-03-22 11:18:05.194037856 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageReader.java	2012-03-22 11:28:14.051881557 +0000
 @@ -686,7 +686,7 @@
          cp_Signature_classes.expectLength(getIntTotal(numSigClasses));
          cp_Signature_classes.readFrom(in);
@@ -580,8 +591,9 @@
  
              ClassEntry thisClass  = curClass.thisClass;
              ClassEntry superClass = curClass.superClass;
---- openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageWriter.java.orig
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageWriter.java
+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-03-22 11:18:05.194037856 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageWriter.java	2012-03-22 11:28:14.051881557 +0000
 @@ -116,7 +116,7 @@
      int[][]     attrCounts;       // count attr. occurences
  
@@ -636,8 +648,9 @@
          // First, collect a consistent global set.
          for (Class cls : pkg.classes) {
              if (!cls.hasInnerClasses())  continue;
---- openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackerImpl.java.orig
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackerImpl.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackerImpl.java	2012-03-22 11:28:14.051881557 +0000
 @@ -181,8 +181,8 @@
          final Map<Attribute.Layout, Attribute> attrDefs;
          final Map<Attribute.Layout, String> attrCommands;
@@ -667,8 +680,9 @@
              try {
                  for (JarEntry je : Collections.list(jf.entries())) {
                      InFile inFile = new InFile(jf, je);
---- openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PopulationCoding.java.orig
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PopulationCoding.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PopulationCoding.java	2012-03-22 11:28:14.051881557 +0000
 @@ -309,7 +309,7 @@
          // As each new value is added, we assert that the value
          // was not already in the set.
@@ -678,8 +692,9 @@
          int fillp = 1;
          maxForDebug += fillp;
          int min = Integer.MIN_VALUE;  // farthest from the center
---- openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PropMap.java.orig
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PropMap.java
+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-03-22 11:18:05.194037856 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PropMap.java	2012-03-22 11:28:14.051881557 +0000
 @@ -47,8 +47,8 @@
   */
  
@@ -700,8 +715,9 @@
          res.addAll(values);
          while (res.remove(null));
          return res;
---- openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/TLGlobals.java.orig
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/TLGlobals.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/TLGlobals.java	2012-03-22 11:28:14.051881557 +0000
 @@ -58,12 +58,12 @@
      private final Map<String, MemberEntry> memberEntries;
  
@@ -721,8 +737,9 @@
          props = new PropMap();
      }
  
---- openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/UnpackerImpl.java.orig
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/UnpackerImpl.java
+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-03-22 11:18:05.194037856 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/UnpackerImpl.java	2012-03-22 11:28:14.051881557 +0000
 @@ -232,7 +232,7 @@
              props.setProperty(java.util.jar.Pack200.Unpacker.PROGRESS,"50");
              pkg.ensureAllClassFiles();
@@ -732,8 +749,9 @@
              for (Package.File file : pkg.getFiles()) {
                  String name = file.nameString;
                  JarEntry je = new JarEntry(Utils.getJarEntryName(name));
---- openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Utils.java.orig
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Utils.java
+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-03-22 11:18:05.194037856 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Utils.java	2012-03-22 11:28:14.051881557 +0000
 @@ -132,7 +132,7 @@
      // Keep a TLS point to the global data and environment.
      // This makes it simpler to supply environmental options
@@ -743,8 +761,9 @@
  
      // convenience methods to access the TL globals
      static TLGlobals getTLGlobals() {
---- openjdk-boot/jdk/src/share/classes/com/sun/rowset/CachedRowSetImpl.java.orig
-+++ openjdk-boot/jdk/src/share/classes/com/sun/rowset/CachedRowSetImpl.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/rowset/CachedRowSetImpl.java	2012-03-22 11:28:14.055881623 +0000
 @@ -1284,7 +1284,7 @@
       */
      public Collection<?> toCollection() throws SQLException {
@@ -763,8 +782,9 @@
  
          // create a copy
          CachedRowSetImpl crsTemp;
---- openjdk-boot/jdk/src/share/classes/com/sun/rowset/JoinRowSetImpl.java.orig
-+++ openjdk-boot/jdk/src/share/classes/com/sun/rowset/JoinRowSetImpl.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/rowset/JoinRowSetImpl.java	2012-03-22 11:28:14.055881623 +0000
 @@ -222,7 +222,7 @@
             // either of the setter methods have been set.
             if(boolColId){
@@ -774,19 +794,9 @@
                for(int i=0;i<cRowset.getMatchColumnNames().length;i++) {
                    if( (strMatchKey = (cRowset.getMatchColumnNames())[i]) != null) {
                        iMatchKey = cRowset.findColumn(strMatchKey);
---- openjdk-boot/jdk/src/share/classes/com/sun/security/auth/PolicyFile.java.orig
-+++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/PolicyFile.java
-@@ -1180,7 +1180,7 @@
-             // Done
-             return certs;
- 
--        ArrayList<Certificate> userCertList = new ArrayList<>();
-+        ArrayList<Certificate> userCertList = new ArrayList<Certificate>();
-         i = 0;
-         while (i < certs.length) {
-             userCertList.add(certs[i]);
---- openjdk-boot/jdk/src/share/classes/com/sun/security/auth/callback/DialogCallbackHandler.java.orig
-+++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/callback/DialogCallbackHandler.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/callback/DialogCallbackHandler.java	2012-03-22 11:28:14.055881623 +0000
 @@ -99,10 +99,10 @@
          throws UnsupportedCallbackException
      {
@@ -800,8 +810,9 @@
  
          ConfirmationInfo confirmation = new ConfirmationInfo();
  
---- openjdk-boot/jdk/src/share/classes/com/sun/security/auth/login/ConfigFile.java.orig
-+++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/login/ConfigFile.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/login/ConfigFile.java	2012-03-22 11:28:14.055881623 +0000
 @@ -152,7 +152,7 @@
  
          // new configuration
@@ -829,8 +840,9 @@
              String key;
              String value;
              while (peek(";") == false) {
---- openjdk-boot/jdk/src/share/classes/com/sun/security/auth/module/JndiLoginModule.java.orig
-+++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/module/JndiLoginModule.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/module/JndiLoginModule.java	2012-03-22 11:28:14.055881623 +0000
 @@ -184,7 +184,7 @@
      private UnixNumericUserPrincipal UIDPrincipal;
      private UnixNumericGroupPrincipal GIDPrincipal;
@@ -840,8 +852,9 @@
  
      // initial state
      private Subject subject;
---- openjdk-boot/jdk/src/share/classes/com/sun/security/auth/module/KeyStoreLoginModule.java.orig
-+++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/module/KeyStoreLoginModule.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/module/KeyStoreLoginModule.java	2012-03-22 11:28:14.055881623 +0000
 @@ -658,7 +658,7 @@
                  throw new FailedLoginException(
                      "Unable to find X.509 certificate chain in keystore");
@@ -851,8 +864,9 @@
                  for (int i=0; i < fromKeyStore.length; i++) {
                      certList.add(fromKeyStore[i]);
                  }
---- openjdk-boot/jdk/src/share/classes/com/sun/security/auth/module/SolarisLoginModule.java.orig
-+++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/module/SolarisLoginModule.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/module/SolarisLoginModule.java	2012-03-22 11:28:14.055881623 +0000
 @@ -76,7 +76,7 @@
      private SolarisNumericUserPrincipal UIDPrincipal;
      private SolarisNumericGroupPrincipal GIDPrincipal;
@@ -862,8 +876,9 @@
  
      /**
       * Initialize this <code>LoginModule</code>.
---- openjdk-boot/jdk/src/share/classes/com/sun/security/auth/module/UnixLoginModule.java.orig
-+++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/module/UnixLoginModule.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/module/UnixLoginModule.java	2012-03-22 11:28:14.055881623 +0000
 @@ -70,7 +70,7 @@
      private UnixNumericUserPrincipal UIDPrincipal;
      private UnixNumericGroupPrincipal GIDPrincipal;
@@ -873,8 +888,21 @@
  
      /**
       * Initialize this <code>LoginModule</code>.
---- openjdk-boot/jdk/src/share/classes/com/sun/tools/example/trace/EventThread.java.orig
-+++ openjdk-boot/jdk/src/share/classes/com/sun/tools/example/trace/EventThread.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/PolicyFile.java	2012-03-22 11:28:14.055881623 +0000
+@@ -1180,7 +1180,7 @@
+             // Done
+             return certs;
+ 
+-        ArrayList<Certificate> userCertList = new ArrayList<>();
++        ArrayList<Certificate> userCertList = new ArrayList<Certificate>();
+         i = 0;
+         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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/tools/example/trace/EventThread.java	2012-03-22 11:28:14.055881623 +0000
 @@ -59,7 +59,7 @@
  
      // Maps ThreadReference to ThreadTrace instances
@@ -884,8 +912,9 @@
  
      EventThread(VirtualMachine vm, String[] excludes, PrintWriter writer) {
          super("event-handler");
---- openjdk-boot/jdk/src/share/classes/java/beans/Introspector.java.orig
-+++ openjdk-boot/jdk/src/share/classes/java/beans/Introspector.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/beans/Introspector.java	2012-03-22 11:28:14.055881623 +0000
 @@ -95,7 +95,7 @@
      public final static int IGNORE_ALL_BEANINFO        = 3;
  
@@ -895,8 +924,9 @@
  
      private Class beanClass;
      private BeanInfo explicitBeanInfo;
---- openjdk-boot/jdk/src/share/classes/java/beans/ThreadGroupContext.java.orig
-+++ openjdk-boot/jdk/src/share/classes/java/beans/ThreadGroupContext.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/beans/ThreadGroupContext.java	2012-03-22 11:28:14.055881623 +0000
 @@ -42,7 +42,7 @@
   */
  final class ThreadGroupContext {
@@ -915,8 +945,9 @@
          }
          return this.beanInfoCache.put(type, info);
      }
---- openjdk-boot/jdk/src/share/classes/java/io/DeleteOnExitHook.java.orig
-+++ openjdk-boot/jdk/src/share/classes/java/io/DeleteOnExitHook.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/io/DeleteOnExitHook.java	2012-03-22 11:28:14.055881623 +0000
 @@ -34,7 +34,7 @@
   */
  
@@ -935,8 +966,21 @@
  
          // reverse the list to maintain previous jdk deletion order.
          // Last in first deleted.
---- openjdk-boot/jdk/src/share/classes/java/io/File.java.orig
-+++ openjdk-boot/jdk/src/share/classes/java/io/File.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/io/FileInputStream.java	2012-03-22 11:28:14.059881688 +0000
+@@ -57,7 +57,7 @@
+     private volatile boolean closed = false;
+ 
+     private static final ThreadLocal<Boolean> runningFinalize =
+-        new ThreadLocal<>();
++        new ThreadLocal<Boolean>();
+ 
+     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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/io/File.java	2012-03-22 11:28:14.059881688 +0000
 @@ -1082,7 +1082,7 @@
          if ((names == null) || (filter == null)) {
              return names;
@@ -964,19 +1008,9 @@
          for (String s : ss) {
              File f = new File(s, this);
              if ((filter == null) || filter.accept(f))
---- openjdk-boot/jdk/src/share/classes/java/io/FileInputStream.java.orig
-+++ openjdk-boot/jdk/src/share/classes/java/io/FileInputStream.java
-@@ -57,7 +57,7 @@
-     private volatile boolean closed = false;
- 
-     private static final ThreadLocal<Boolean> runningFinalize =
--        new ThreadLocal<>();
-+        new ThreadLocal<Boolean>();
- 
-     private static boolean isRunningFinalize() {
-         Boolean val;
---- openjdk-boot/jdk/src/share/classes/java/io/FileOutputStream.java.orig
-+++ openjdk-boot/jdk/src/share/classes/java/io/FileOutputStream.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/io/FileOutputStream.java	2012-03-22 11:28:14.059881688 +0000
 @@ -70,7 +70,7 @@
      private final Object closeLock = new Object();
      private volatile boolean closed = false;
@@ -986,8 +1020,9 @@
  
      private static boolean isRunningFinalize() {
          Boolean val;
---- openjdk-boot/jdk/src/share/classes/java/io/FilePermission.java.orig
-+++ openjdk-boot/jdk/src/share/classes/java/io/FilePermission.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/io/FilePermission.java	2012-03-22 11:28:14.059881688 +0000
 @@ -725,7 +725,7 @@
       */
  
@@ -1015,8 +1050,9 @@
          perms.addAll(permissions);
      }
  }
---- openjdk-boot/jdk/src/share/classes/java/io/ObjectInputStream.java.orig
-+++ openjdk-boot/jdk/src/share/classes/java/io/ObjectInputStream.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/io/ObjectInputStream.java	2012-03-22 11:28:14.059881688 +0000
 @@ -213,7 +213,7 @@
  
      /** table mapping primitive type names to corresponding class objects */
@@ -1040,8 +1076,9 @@
      }
  
      /** filter stream for handling block data conversion */
---- openjdk-boot/jdk/src/share/classes/java/io/ObjectOutputStream.java.orig
-+++ openjdk-boot/jdk/src/share/classes/java/io/ObjectOutputStream.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/io/ObjectOutputStream.java	2012-03-22 11:28:14.059881688 +0000
 @@ -165,11 +165,11 @@
      private static class Caches {
          /** cache of subclass security audit results */
@@ -1065,8 +1102,9 @@
          }
  
          /**
---- openjdk-boot/jdk/src/share/classes/java/io/ObjectStreamClass.java.orig
-+++ openjdk-boot/jdk/src/share/classes/java/io/ObjectStreamClass.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/io/ObjectStreamClass.java	2012-03-22 11:28:14.059881688 +0000
 @@ -84,18 +84,18 @@
      private static class Caches {
          /** cache mapping local classes -> descriptors */
@@ -1090,7 +1128,7 @@
      }
  
      /** class associated with this descriptor (if any) */
-@@ -290,7 +290,7 @@
+@@ -315,7 +315,7 @@
          EntryFuture future = null;
          if (entry == null) {
              EntryFuture newEntry = new EntryFuture();
@@ -1099,7 +1137,7 @@
              do {
                  if (ref != null) {
                      Caches.localDescs.remove(key, ref);
-@@ -1130,7 +1130,7 @@
+@@ -1143,7 +1143,7 @@
      private ClassDataSlot[] getClassDataLayout0()
          throws InvalidClassException
      {
@@ -1108,7 +1146,7 @@
          Class<?> start = cl, end = cl;
  
          // locate closest non-serializable superclass
-@@ -1566,7 +1566,7 @@
+@@ -1579,7 +1579,7 @@
  
          ObjectStreamField[] boundFields =
              new ObjectStreamField[serialPersistentFields.length];
@@ -1117,7 +1155,7 @@
  
          for (int i = 0; i < serialPersistentFields.length; i++) {
              ObjectStreamField spf = serialPersistentFields[i];
-@@ -1604,7 +1604,7 @@
+@@ -1617,7 +1617,7 @@
       */
      private static ObjectStreamField[] getDefaultSerialFields(Class<?> cl) {
          Field[] clFields = cl.getDeclaredFields();
@@ -1126,7 +1164,7 @@
          int mask = Modifier.STATIC | Modifier.TRANSIENT;
  
          for (int i = 0; i < clFields.length; i++) {
-@@ -1855,8 +1855,8 @@
+@@ -1868,8 +1868,8 @@
              writeKeys = new long[nfields];
              offsets = new int[nfields];
              typeCodes = new char[nfields];
@@ -1137,7 +1175,7 @@
  
  
              for (int i = 0; i < nfields; i++) {
-@@ -2092,7 +2092,7 @@
+@@ -2105,7 +2105,7 @@
          EntryFuture future = null;
          if (entry == null) {
              EntryFuture newEntry = new EntryFuture();
@@ -1146,8 +1184,9 @@
              do {
                  if (ref != null) {
                      Caches.reflectors.remove(key, ref);
---- openjdk-boot/jdk/src/share/classes/java/lang/ApplicationShutdownHooks.java.orig
-+++ openjdk-boot/jdk/src/share/classes/java/lang/ApplicationShutdownHooks.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/lang/ApplicationShutdownHooks.java	2012-03-22 11:28:14.059881688 +0000
 @@ -47,7 +47,7 @@
                      }
                  }
@@ -1157,8 +1196,9 @@
          } catch (IllegalStateException e) {
              // application shutdown hooks cannot be added if
              // shutdown is in progress.
---- openjdk-boot/jdk/src/share/classes/java/lang/Character.java.orig
-+++ openjdk-boot/jdk/src/share/classes/java/lang/Character.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/lang/Character.java	2012-03-22 11:28:14.059881688 +0000
 @@ -646,7 +646,8 @@
       */
      public static final class UnicodeBlock extends Subset {
@@ -1178,8 +1218,9 @@
              aliases.put("ARAB", ARABIC);
              aliases.put("ARMI", IMPERIAL_ARAMAIC);
              aliases.put("ARMN", ARMENIAN);
---- openjdk-boot/jdk/src/share/classes/java/lang/CharacterName.java.orig
-+++ openjdk-boot/jdk/src/share/classes/java/lang/CharacterName.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/lang/CharacterName.java	2012-03-22 11:28:14.059881688 +0000
 @@ -81,7 +81,7 @@
              } while (cpOff < cpEnd);
              strPool = new byte[total - cpEnd];
@@ -1189,8 +1230,9 @@
          } catch (Exception x) {
              throw new InternalError(x.getMessage());
          } finally {
---- openjdk-boot/jdk/src/share/classes/java/lang/Class.java.orig
-+++ openjdk-boot/jdk/src/share/classes/java/lang/Class.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/lang/Class.java	2012-03-22 11:28:14.063881753 +0000
 @@ -1308,7 +1308,7 @@
          return java.security.AccessController.doPrivileged(
              new java.security.PrivilegedAction<Class<?>[]>() {
@@ -1284,8 +1326,9 @@
              superClass.initAnnotationsIfNecessary();
              for (Map.Entry<Class<? extends Annotation>, Annotation> e : superClass.annotations.entrySet()) {
                  Class<? extends Annotation> annotationClass = e.getKey();
---- openjdk-boot/jdk/src/share/classes/java/lang/ClassLoader.java.orig
-+++ openjdk-boot/jdk/src/share/classes/java/lang/ClassLoader.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/lang/ClassLoader.java	2012-03-22 11:28:14.063881753 +0000
 @@ -246,7 +246,7 @@
  
      // The classes loaded by this class loader. The only purpose of this table
@@ -1391,121 +1434,52 @@
          AssertionStatusDirectives directives = retrieveDirectives();
  
          for(int i = 0; i < directives.classes.length; i++)
---- openjdk-boot/jdk/src/share/classes/java/lang/Package.java.orig
-+++ openjdk-boot/jdk/src/share/classes/java/lang/Package.java
-@@ -596,13 +596,16 @@
-     }
- 
-     // The map of loaded system packages
--    private static Map<String, Package> pkgs = new HashMap<>(31);
-+    private static Map<String, Package> pkgs
-+        = new HashMap<String, Package>(31);
- 
-     // Maps each directory or zip file name to its corresponding url
--    private static Map<String, URL> urls = new HashMap<>(10);
-+    private static Map<String, URL> urls
-+        = new HashMap<String, URL>(10);
- 
-     // Maps each code source url for a jar file to its manifest
--    private static Map<String, Manifest> mans = new HashMap<>(10);
-+    private static Map<String, Manifest> mans
-+        = new HashMap<String, Manifest>(10);
- 
-     private static native String getSystemPackage0(String name);
-     private static native String[] getSystemPackages0();
---- openjdk-boot/jdk/src/share/classes/java/lang/ProcessBuilder.java.orig
-+++ openjdk-boot/jdk/src/share/classes/java/lang/ProcessBuilder.java
-@@ -214,7 +214,7 @@
-      * @param command a string array containing the program and its arguments
-      */
-     public ProcessBuilder(String... command) {
--        this.command = new ArrayList<>(command.length);
-+        this.command = new ArrayList<String>(command.length);
-         for (String arg : command)
-             this.command.add(arg);
-     }
-@@ -251,7 +251,7 @@
-      * @return this process builder
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/lang/ClassValue.java	2012-03-22 11:28:14.063881753 +0000
+@@ -297,12 +297,12 @@
+      * Some machines may also require a barrier instruction to execute
+      * before this.version.
       */
-     public ProcessBuilder command(String... command) {
--        this.command = new ArrayList<>(command.length);
-+        this.command = new ArrayList<String>(command.length);
-         for (String arg : command)
-             this.command.add(arg);
-         return this;
---- openjdk-boot/jdk/src/share/classes/java/lang/String.java.orig
-+++ openjdk-boot/jdk/src/share/classes/java/lang/String.java
-@@ -2330,7 +2330,7 @@
-             int off = 0;
-             int next = 0;
-             boolean limited = limit > 0;
--            ArrayList<String> list = new ArrayList<>();
-+            ArrayList<String> list = new ArrayList<String>();
-             while ((next = indexOf(ch, off)) != -1) {
-                 if (!limited || list.size() < limit - 1) {
-                     list.add(substring(off, next));
---- openjdk-boot/jdk/src/share/classes/java/lang/StringCoding.java.orig
-+++ openjdk-boot/jdk/src/share/classes/java/lang/StringCoding.java
-@@ -53,9 +53,9 @@
- 
-     /** The cached coders for each thread */
-     private final static ThreadLocal<SoftReference<StringDecoder>> decoder =
--        new ThreadLocal<>();
-+        new ThreadLocal<SoftReference<StringDecoder>>();
-     private final static ThreadLocal<SoftReference<StringEncoder>> encoder =
--        new ThreadLocal<>();
-+        new ThreadLocal<SoftReference<StringEncoder>>();
- 
-     private static boolean warnUnsupportedCharset = true;
- 
---- openjdk-boot/jdk/src/share/classes/java/lang/Thread.java.orig
-+++ openjdk-boot/jdk/src/share/classes/java/lang/Thread.java
-@@ -1616,7 +1616,8 @@
-         // Get a snapshot of the list of all threads
-         Thread[] threads = getThreads();
-         StackTraceElement[][] traces = dumpThreads(threads);
--        Map<Thread, StackTraceElement[]> m = new HashMap<>(threads.length);
-+        Map<Thread, StackTraceElement[]> m
-+            = new HashMap<Thread, StackTraceElement[]>(threads.length);
-         for (int i = 0; i < threads.length; i++) {
-             StackTraceElement[] stackTrace = traces[i];
-             if (stackTrace != null) {
-@@ -1637,11 +1638,11 @@
-     private static class Caches {
-         /** cache of subclass security audit results */
-         static final ConcurrentMap<WeakClassKey,Boolean> subclassAudits =
--            new ConcurrentHashMap<>();
-+            new ConcurrentHashMap<WeakClassKey,Boolean>();
- 
-         /** queue for WeakReferences to audited subclasses */
-         static final ReferenceQueue<Class<?>> subclassAuditsQueue =
--            new ReferenceQueue<>();
-+            new ReferenceQueue<Class<?>>();
+-    private volatile Version<T> version = new Version<>(this);
++    private volatile Version<T> version = new Version<T>(this);
+     Version<T> version() { return version; }
+-    void bumpVersion() { version = new Version<>(this); }
++    void bumpVersion() { version = new Version<T>(this); }
+     static class Version<T> {
+         private final ClassValue<T> classValue;
+-        private final Entry<T> promise = new Entry<>(this);
++        private final Entry<T> promise = new Entry<T>(this);
+         Version(ClassValue<T> classValue) { this.classValue = classValue; }
+         ClassValue<T> classValue() { return classValue; }
+         Entry<T> promise() { return promise; }
+@@ -351,12 +351,12 @@
+         Entry<T> refreshVersion(Version<T> v2) {
+             assertNotPromise();
+             @SuppressWarnings("unchecked")  // if !isPromise, type is T
+-            Entry<T> e2 = new Entry<>(v2, (T) value);
++            Entry<T> e2 = new Entry<T>(v2, (T) value);
+             clear();
+             // value = null -- caller must drop
+             return e2;
+         }
+-        static final Entry<?> DEAD_ENTRY = new Entry<>(null, null);
++        static final Entry<?> DEAD_ENTRY = new Entry<Object>(null, null);
      }
  
-     /**
---- openjdk-boot/jdk/src/share/classes/java/lang/Throwable.java.orig
-+++ openjdk-boot/jdk/src/share/classes/java/lang/Throwable.java
-@@ -917,7 +917,7 @@
-                 // Use the sentinel for a zero-length list
-                 suppressed = SUPPRESSED_SENTINEL;
-             } else { // Copy Throwables to new list
--                suppressed = new ArrayList<>(1);
-+                suppressed = new ArrayList<Throwable>(1);
-                 for (Throwable t : suppressedExceptions) {
-                     // Enforce constraints on suppressed exceptions in
-                     // case of corrupt or malicious stream.
-@@ -1048,7 +1048,7 @@
-             return;
- 
-         if (suppressedExceptions == SUPPRESSED_SENTINEL)
--            suppressedExceptions = new ArrayList<>(1);
-+            suppressedExceptions = new ArrayList<Throwable>(1);
- 
-         suppressedExceptions.add(exception);
-     }
---- openjdk-boot/jdk/src/share/classes/java/lang/management/ManagementFactory.java.orig
-+++ openjdk-boot/jdk/src/share/classes/java/lang/management/ManagementFactory.java
+     /** Return the backing map associated with this type. */
+@@ -382,7 +382,7 @@
+ 
+     static <T> Entry<T> makeEntry(Version<T> explicitVersion, T value) {
+         // Note that explicitVersion might be different from this.version.
+-        return new Entry<>(explicitVersion, value);
++        return new Entry<T>(explicitVersion, value);
+ 
+         // 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/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-03-22 11:18:05.138036959 +0000
++++ openjdk-boot/jdk/src/share/classes/java/lang/management/ManagementFactory.java	2012-03-22 11:28:14.063881753 +0000
 @@ -789,7 +789,7 @@
             getPlatformManagementInterfaces()
      {
@@ -1515,8 +1489,9 @@
          for (PlatformComponent component: PlatformComponent.values()) {
              result.add(component.getMXBeanInterface());
          }
---- openjdk-boot/jdk/src/share/classes/java/lang/management/PlatformComponent.java.orig
-+++ openjdk-boot/jdk/src/share/classes/java/lang/management/PlatformComponent.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/lang/management/PlatformComponent.java	2012-03-22 11:28:14.063881753 +0000
 @@ -287,7 +287,7 @@
              List<T> getGcMXBeanList(Class<T> gcMXBeanIntf) {
          List<GarbageCollectorMXBean> list =
@@ -1553,8 +1528,53 @@
              for (PlatformComponent pc: PlatformComponent.values()) {
                  // Use String as the key rather than Class<?> to avoid
                  // causing unnecessary class loading of management interface
---- openjdk-boot/jdk/src/share/classes/java/lang/reflect/Constructor.java.orig
-+++ openjdk-boot/jdk/src/share/classes/java/lang/reflect/Constructor.java
+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-03-22 11:18:05.198037920 +0000
++++ openjdk-boot/jdk/src/share/classes/java/lang/Package.java	2012-03-22 11:28:14.063881753 +0000
+@@ -596,13 +596,16 @@
+     }
+ 
+     // The map of loaded system packages
+-    private static Map<String, Package> pkgs = new HashMap<>(31);
++    private static Map<String, Package> pkgs
++        = new HashMap<String, Package>(31);
+ 
+     // Maps each directory or zip file name to its corresponding url
+-    private static Map<String, URL> urls = new HashMap<>(10);
++    private static Map<String, URL> urls
++        = new HashMap<String, URL>(10);
+ 
+     // Maps each code source url for a jar file to its manifest
+-    private static Map<String, Manifest> mans = new HashMap<>(10);
++    private static Map<String, Manifest> mans
++        = new HashMap<String, Manifest>(10);
+ 
+     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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/lang/ProcessBuilder.java	2012-03-22 11:28:14.063881753 +0000
+@@ -214,7 +214,7 @@
+      * @param command a string array containing the program and its arguments
+      */
+     public ProcessBuilder(String... command) {
+-        this.command = new ArrayList<>(command.length);
++        this.command = new ArrayList<String>(command.length);
+         for (String arg : command)
+             this.command.add(arg);
+     }
+@@ -251,7 +251,7 @@
+      * @return this process builder
+      */
+     public ProcessBuilder command(String... command) {
+-        this.command = new ArrayList<>(command.length);
++        this.command = new ArrayList<String>(command.length);
+         for (String arg : command)
+             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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/lang/reflect/Constructor.java	2012-03-22 11:28:14.063881753 +0000
 @@ -136,7 +136,7 @@
          // which implicitly requires that new java.lang.reflect
          // objects be fabricated for each reflective call on Class
@@ -1564,8 +1584,9 @@
                                                  parameterTypes,
                                                  exceptionTypes, modifiers, slot,
                                                  signature,
---- openjdk-boot/jdk/src/share/classes/java/lang/reflect/Proxy.java.orig
-+++ openjdk-boot/jdk/src/share/classes/java/lang/reflect/Proxy.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/lang/reflect/Proxy.java	2012-03-22 11:28:14.063881753 +0000
 @@ -232,7 +232,7 @@
  
      /** maps a class loader to the proxy class cache for that loader */
@@ -1593,8 +1614,9 @@
                  loaderToCache.put(loader, cache);
              }
              /*
---- openjdk-boot/jdk/src/share/classes/java/lang/reflect/ReflectAccess.java.orig
-+++ openjdk-boot/jdk/src/share/classes/java/lang/reflect/ReflectAccess.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/lang/reflect/ReflectAccess.java	2012-03-22 11:28:14.063881753 +0000
 @@ -84,7 +84,7 @@
                                               byte[] annotations,
                                               byte[] parameterAnnotations)
@@ -1604,8 +1626,84 @@
                                    parameterTypes,
                                    checkedExceptions,
                                    modifiers,
---- openjdk-boot/jdk/src/share/classes/java/net/InetAddress.java.orig
-+++ openjdk-boot/jdk/src/share/classes/java/net/InetAddress.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/lang/StringCoding.java	2012-03-22 11:28:14.063881753 +0000
+@@ -53,9 +53,9 @@
+ 
+     /** The cached coders for each thread */
+     private final static ThreadLocal<SoftReference<StringDecoder>> decoder =
+-        new ThreadLocal<>();
++        new ThreadLocal<SoftReference<StringDecoder>>();
+     private final static ThreadLocal<SoftReference<StringEncoder>> encoder =
+-        new ThreadLocal<>();
++        new ThreadLocal<SoftReference<StringEncoder>>();
+ 
+     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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/lang/String.java	2012-03-22 11:28:14.063881753 +0000
+@@ -2330,7 +2330,7 @@
+             int off = 0;
+             int next = 0;
+             boolean limited = limit > 0;
+-            ArrayList<String> list = new ArrayList<>();
++            ArrayList<String> list = new ArrayList<String>();
+             while ((next = indexOf(ch, off)) != -1) {
+                 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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/lang/Thread.java	2012-03-22 11:28:14.063881753 +0000
+@@ -1616,7 +1616,8 @@
+         // Get a snapshot of the list of all threads
+         Thread[] threads = getThreads();
+         StackTraceElement[][] traces = dumpThreads(threads);
+-        Map<Thread, StackTraceElement[]> m = new HashMap<>(threads.length);
++        Map<Thread, StackTraceElement[]> m
++            = new HashMap<Thread, StackTraceElement[]>(threads.length);
+         for (int i = 0; i < threads.length; i++) {
+             StackTraceElement[] stackTrace = traces[i];
+             if (stackTrace != null) {
+@@ -1637,11 +1638,11 @@
+     private static class Caches {
+         /** cache of subclass security audit results */
+         static final ConcurrentMap<WeakClassKey,Boolean> subclassAudits =
+-            new ConcurrentHashMap<>();
++            new ConcurrentHashMap<WeakClassKey,Boolean>();
+ 
+         /** queue for WeakReferences to audited subclasses */
+         static final ReferenceQueue<Class<?>> subclassAuditsQueue =
+-            new ReferenceQueue<>();
++            new ReferenceQueue<Class<?>>();
+     }
+ 
+     /**
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/lang/Throwable.java	2012-03-22 11:28:14.067881818 +0000
+@@ -917,7 +917,7 @@
+                 // Use the sentinel for a zero-length list
+                 suppressed = SUPPRESSED_SENTINEL;
+             } else { // Copy Throwables to new list
+-                suppressed = new ArrayList<>(1);
++                suppressed = new ArrayList<Throwable>(1);
+                 for (Throwable t : suppressedExceptions) {
+                     // Enforce constraints on suppressed exceptions in
+                     // case of corrupt or malicious stream.
+@@ -1048,7 +1048,7 @@
+             return;
+ 
+         if (suppressedExceptions == SUPPRESSED_SENTINEL)
+-            suppressedExceptions = new ArrayList<>(1);
++            suppressedExceptions = new ArrayList<Throwable>(1);
+ 
+         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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/net/InetAddress.java	2012-03-22 11:28:14.067881818 +0000
 @@ -677,7 +677,7 @@
  
      static InetAddressImpl  impl;
@@ -1624,8 +1722,9 @@
                  long now = System.currentTimeMillis();
                  for (String key : cache.keySet()) {
                      CacheEntry entry = cache.get(key);
---- openjdk-boot/jdk/src/share/classes/java/net/URLClassLoader.java.orig
-+++ openjdk-boot/jdk/src/share/classes/java/net/URLClassLoader.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/net/URLClassLoader.java	2012-03-22 11:28:14.067881818 +0000
 @@ -205,7 +205,7 @@
       */
  
@@ -1635,8 +1734,9 @@
  
      /**
       * Returns an input stream for reading the specified resource.
---- openjdk-boot/jdk/src/share/classes/java/nio/file/Files.java.orig
-+++ openjdk-boot/jdk/src/share/classes/java/nio/file/Files.java
+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-03-22 11:18:05.198037920 +0000
++++ openjdk-boot/jdk/src/share/classes/java/nio/file/Files.java	2012-03-22 11:28:26.992092657 +0000
 @@ -1487,7 +1487,7 @@
              return AccessController
                  .doPrivileged(new PrivilegedAction<List<FileTypeDetector>>() {
@@ -1651,12 +1751,13 @@
          try {
              reader = newBufferedReader(path, cs);
 -            List<String> result = new ArrayList<>();
-+            List<String> result = new ArrayList();
++            List<String> result = new ArrayList<String>();
              for (;;) {
                  String line = reader.readLine();
                  if (line == null)
---- openjdk-boot/jdk/src/share/classes/java/security/AccessControlContext.java.orig
-+++ openjdk-boot/jdk/src/share/classes/java/security/AccessControlContext.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/security/AccessControlContext.java	2012-03-22 11:28:14.067881818 +0000
 @@ -124,7 +124,7 @@
                  this.context = null;
              }
@@ -1666,8 +1767,9 @@
              for (int i =0; i< context.length; i++) {
                  if ((context[i] != null) &&  (!v.contains(context[i])))
                      v.add(context[i]);
---- openjdk-boot/jdk/src/share/classes/java/security/BasicPermission.java.orig
-+++ openjdk-boot/jdk/src/share/classes/java/security/BasicPermission.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/security/BasicPermission.java	2012-03-22 11:28:14.067881818 +0000
 @@ -515,7 +515,7 @@
  
          // Copy perms into a Hashtable
@@ -1677,8 +1779,9 @@
  
          synchronized (this) {
              permissions.putAll(perms);
---- openjdk-boot/jdk/src/share/classes/java/security/CodeSource.java.orig
-+++ openjdk-boot/jdk/src/share/classes/java/security/CodeSource.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/security/CodeSource.java	2012-03-22 11:28:14.067881818 +0000
 @@ -188,7 +188,7 @@
          } else if (signers != null) {
              // Convert the code signers to certs
@@ -1701,8 +1804,9 @@
                  certChain.add(certs[i++]); // first cert is an end-entity cert
                  int j = i;
  
---- openjdk-boot/jdk/src/share/classes/java/security/Permissions.java.orig
-+++ openjdk-boot/jdk/src/share/classes/java/security/Permissions.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/security/Permissions.java	2012-03-22 11:28:14.067881818 +0000
 @@ -362,7 +362,7 @@
  
          // Copy perms into a Hashtable
@@ -1721,8 +1825,30 @@
          synchronized (this) {
              perms.putAll(permsMap);
          }
---- openjdk-boot/jdk/src/share/classes/java/security/ProtectionDomain.java.orig
-+++ openjdk-boot/jdk/src/share/classes/java/security/ProtectionDomain.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/security/Policy.java	2012-03-22 11:28:14.067881818 +0000
+@@ -118,7 +118,7 @@
+ 
+     // PolicyInfo is stored in an AtomicReference
+     private static AtomicReference<PolicyInfo> policy =
+-        new AtomicReference<>(new PolicyInfo(null, false));
++        new AtomicReference<PolicyInfo>(new PolicyInfo(null, false));
+ 
+     private static final Debug debug = Debug.getInstance("policy");
+ 
+@@ -328,7 +328,7 @@
+         PermissionCollection policyPerms = null;
+         synchronized (p) {
+             if (p.pdMapping == null) {
+-                p.pdMapping = new WeakHashMap<>();
++                p.pdMapping = new WeakHashMap<ProtectionDomain.Key, PermissionCollection>();
+            }
+         }
+ 
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/security/ProtectionDomain.java	2012-03-22 11:28:14.067881818 +0000
 @@ -368,8 +368,8 @@
          int swag = 32;
          int vcap = 8;
@@ -1734,8 +1860,9 @@
  
          //
          // Build a vector of domain permissions for subsequent merge
---- openjdk-boot/jdk/src/share/classes/java/security/Provider.java.orig
-+++ openjdk-boot/jdk/src/share/classes/java/security/Provider.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/security/Provider.java	2012-03-22 11:28:14.067881818 +0000
 @@ -437,7 +437,7 @@
  
      private void readObject(ObjectInputStream in)
@@ -1763,8 +1890,9 @@
                          for (String className : classNames) {
                              Class clazz = getKeyClass(className);
                              if (clazz != null) {
---- openjdk-boot/jdk/src/share/classes/java/security/SecureClassLoader.java.orig
-+++ openjdk-boot/jdk/src/share/classes/java/security/SecureClassLoader.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/security/SecureClassLoader.java	2012-03-22 11:28:14.067881818 +0000
 @@ -50,7 +50,7 @@
      // HashMap that maps CodeSource to ProtectionDomain
      // @GuardedBy("pdcache")
@@ -1774,8 +1902,9 @@
  
      private static final Debug debug = Debug.getInstance("scl");
  
---- openjdk-boot/jdk/src/share/classes/java/security/Security.java.orig
-+++ openjdk-boot/jdk/src/share/classes/java/security/Security.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/security/Security.java	2012-03-22 11:28:14.067881818 +0000
 @@ -546,7 +546,7 @@
              value = filter.substring(index + 1);
          }
@@ -1821,19 +1950,9 @@
          Provider[] providers = Security.getProviders();
  
          for (int i = 0; i < providers.length; i++) {
---- openjdk-boot/jdk/src/share/classes/java/security/UnresolvedPermission.java.orig
-+++ openjdk-boot/jdk/src/share/classes/java/security/UnresolvedPermission.java
-@@ -198,7 +198,7 @@
-                 if (this.certs == null) {
-                     // extract the signer certs
-                     ArrayList<java.security.cert.Certificate> signerCerts =
--                        new ArrayList<>();
-+                        new ArrayList<java.security.cert.Certificate>();
-                     i = 0;
-                     while (i < certs.length) {
-                         signerCerts.add(certs[i]);
---- openjdk-boot/jdk/src/share/classes/java/security/UnresolvedPermissionCollection.java.orig
-+++ openjdk-boot/jdk/src/share/classes/java/security/UnresolvedPermissionCollection.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/security/UnresolvedPermissionCollection.java	2012-03-22 11:28:14.067881818 +0000
 @@ -119,7 +119,7 @@
  
      public Enumeration<Permission> elements() {
@@ -1870,8 +1989,21 @@
              list.addAll(vec);
  
              // Add to Hashtable being serialized
---- openjdk-boot/jdk/src/share/classes/java/util/AbstractList.java.orig
-+++ openjdk-boot/jdk/src/share/classes/java/util/AbstractList.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/security/UnresolvedPermission.java	2012-03-22 11:28:14.067881818 +0000
+@@ -198,7 +198,7 @@
+                 if (this.certs == null) {
+                     // extract the signer certs
+                     ArrayList<java.security.cert.Certificate> signerCerts =
+-                        new ArrayList<>();
++                        new ArrayList<java.security.cert.Certificate>();
+                     i = 0;
+                     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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/AbstractList.java	2012-03-22 11:28:14.071881884 +0000
 @@ -482,8 +482,8 @@
       */
      public List<E> subList(int fromIndex, int toIndex) {
@@ -1900,8 +2032,9 @@
 +        return new RandomAccessSubList<E>(this, fromIndex, toIndex);
      }
  }
---- openjdk-boot/jdk/src/share/classes/java/util/Arrays.java.orig
-+++ openjdk-boot/jdk/src/share/classes/java/util/Arrays.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/Arrays.java	2012-03-22 11:28:14.071881884 +0000
 @@ -2825,7 +2825,7 @@
       */
      @SafeVarargs
@@ -1911,8 +2044,9 @@
      }
  
      /**
---- openjdk-boot/jdk/src/share/classes/java/util/Collections.java.orig
-+++ openjdk-boot/jdk/src/share/classes/java/util/Collections.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/Collections.java	2012-03-22 11:28:14.071881884 +0000
 @@ -1035,7 +1035,7 @@
       * @return an unmodifiable view of the specified collection.
       */
@@ -2537,9 +2671,10 @@
      }
  
      /**
---- openjdk-boot/jdk/src/share/classes/java/util/EnumMap.java.orig
-+++ openjdk-boot/jdk/src/share/classes/java/util/EnumMap.java
-@@ -500,7 +500,7 @@
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/EnumMap.java	2012-03-22 11:28:14.071881884 +0000
+@@ -508,7 +508,7 @@
              int j = 0;
              for (int i = 0; i < vals.length; i++)
                  if (vals[i] != null)
@@ -2548,8 +2683,9 @@
                          keyUniverse[i], unmaskNull(vals[i]));
              return a;
          }
---- openjdk-boot/jdk/src/share/classes/java/util/EnumSet.java.orig
-+++ openjdk-boot/jdk/src/share/classes/java/util/EnumSet.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/EnumSet.java	2012-03-22 11:28:14.071881884 +0000
 @@ -110,9 +110,9 @@
              throw new ClassCastException(elementType + " not an enum");
  
@@ -2571,8 +2707,9 @@
      }
  
      // readObject method for the serialization proxy pattern
---- 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-03-22 11:18:05.138036959 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/Formatter.java	2012-03-22 11:28:14.071881884 +0000
 @@ -2514,7 +2514,7 @@
       * Finds format specifiers in the format string.
       */
@@ -2582,8 +2719,9 @@
          Matcher m = fsPattern.matcher(s);
          for (int i = 0, len = s.length(); i < len; ) {
              if (m.find(i)) {
---- openjdk-boot/jdk/src/share/classes/java/util/HashMap.java.orig
-+++ openjdk-boot/jdk/src/share/classes/java/util/HashMap.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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/HashMap.java	2012-03-22 11:28:14.071881884 +0000
 @@ -763,7 +763,7 @@
       */
      void addEntry(int hash, K key, V value, int bucketIndex) {
@@ -2602,8 +2740,9 @@
          size++;
      }
  
---- openjdk-boot/jdk/src/share/classes/java/util/HashSet.java.orig
-+++ openjdk-boot/jdk/src/share/classes/java/util/HashSet.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/HashSet.java	2012-03-22 11:28:14.071881884 +0000
 @@ -100,7 +100,7 @@
       * default initial capacity (16) and load factor (0.75).
       */
@@ -2649,8 +2788,9 @@
      }
  
      /**
---- openjdk-boot/jdk/src/share/classes/java/util/Hashtable.java.orig
-+++ openjdk-boot/jdk/src/share/classes/java/util/Hashtable.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/Hashtable.java	2012-03-22 11:28:14.071881884 +0000
 @@ -455,7 +455,7 @@
  
          // Creates the new entry.
@@ -2705,8 +2845,9 @@
                                    (next==null ? null : (Entry<K,V>) next.clone()));
          }
  
---- openjdk-boot/jdk/src/share/classes/java/util/IdentityHashMap.java.orig
-+++ openjdk-boot/jdk/src/share/classes/java/util/IdentityHashMap.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/IdentityHashMap.java	2012-03-22 11:28:14.075881949 +0000
 @@ -1145,7 +1145,7 @@
              Object[] result = new Object[size];
              Iterator<Map.Entry<K,V>> it = iterator();
@@ -2725,8 +2866,9 @@
              if (a.length > size)
                  a[size] = null;
              return a;
---- openjdk-boot/jdk/src/share/classes/java/util/JumboEnumSet.java.orig
-+++ openjdk-boot/jdk/src/share/classes/java/util/JumboEnumSet.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/JumboEnumSet.java	2012-03-22 11:28:14.075881949 +0000
 @@ -91,7 +91,7 @@
       * @return an iterator over the elements contained in this set
       */
@@ -2736,8 +2878,9 @@
      }
  
      private class EnumSetIterator<E extends Enum<E>> implements Iterator<E> {
---- openjdk-boot/jdk/src/share/classes/java/util/LinkedHashMap.java.orig
-+++ openjdk-boot/jdk/src/share/classes/java/util/LinkedHashMap.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/LinkedHashMap.java	2012-03-22 11:28:14.075881949 +0000
 @@ -237,7 +237,7 @@
       * the chain.
       */
@@ -2756,8 +2899,9 @@
          table[bucketIndex] = e;
          e.addBefore(header);
          size++;
---- openjdk-boot/jdk/src/share/classes/java/util/LinkedList.java.orig
-+++ openjdk-boot/jdk/src/share/classes/java/util/LinkedList.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/LinkedList.java	2012-03-22 11:28:14.075881949 +0000
 @@ -122,7 +122,7 @@
       */
      private void linkFirst(E e) {
@@ -2794,8 +2938,9 @@
              if (pred == null)
                  first = newNode;
              else
---- openjdk-boot/jdk/src/share/classes/java/util/ListResourceBundle.java.orig
-+++ openjdk-boot/jdk/src/share/classes/java/util/ListResourceBundle.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/ListResourceBundle.java	2012-03-22 11:28:14.075881949 +0000
 @@ -187,7 +187,7 @@
              return;
  
@@ -2805,8 +2950,9 @@
          for (int i = 0; i < contents.length; ++i) {
              // key must be non-null String, value must be non-null
              String key = (String) contents[i][0];
---- openjdk-boot/jdk/src/share/classes/java/util/Locale.java.orig
-+++ openjdk-boot/jdk/src/share/classes/java/util/Locale.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/Locale.java	2012-03-22 11:28:14.075881949 +0000
 @@ -1793,7 +1793,7 @@
                  return formatList(variantNames, listPattern, listCompositionPattern);
              }
@@ -2816,8 +2962,151 @@
          if (languageName.length() != 0) {
              names.add(languageName);
          }
---- openjdk-boot/jdk/src/share/classes/java/util/PriorityQueue.java.orig
-+++ openjdk-boot/jdk/src/share/classes/java/util/PriorityQueue.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/logging/FileHandler.java	2012-03-22 11:28:14.075881949 +0000
+@@ -127,7 +127,7 @@
+     private FileOutputStream lockStream;
+     private File files[];
+     private static final int MAX_LOCKS = 100;
+-    private static java.util.HashMap<String, String> locks = new java.util.HashMap<>();
++    private static java.util.HashMap<String, String> locks = new java.util.HashMap<String, String>();
+ 
+     // 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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/logging/Level.java	2012-03-22 11:28:14.075881949 +0000
+@@ -59,7 +59,7 @@
+  */
+ 
+ public class Level implements java.io.Serializable {
+-    private static java.util.ArrayList<Level> known = new java.util.ArrayList<>();
++    private static java.util.ArrayList<Level> known = new java.util.ArrayList<Level>();
+     private static String defaultBundle = "sun.util.logging.resources.logging";
+ 
+     /**
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/logging/Logger.java	2012-03-22 11:28:14.075881949 +0000
+@@ -170,7 +170,7 @@
+     private LogManager manager;
+     private String name;
+     private final CopyOnWriteArrayList<Handler> handlers =
+-        new CopyOnWriteArrayList<>();
++        new CopyOnWriteArrayList<Handler>();
+     private String resourceBundleName;
+     private volatile boolean useParentHandlers = true;
+     private volatile Filter filter;
+@@ -1439,7 +1439,7 @@
+             // Set our new parent.
+             parent = newParent;
+             if (parent.kids == null) {
+-                parent.kids = new ArrayList<>(2);
++                parent.kids = new ArrayList<LogManager.LoggerWeakRef>(2);
+             }
+             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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/logging/Logging.java	2012-03-22 11:28:14.075881949 +0000
+@@ -56,7 +56,7 @@
+ 
+     public List<String> getLoggerNames() {
+         Enumeration loggers = logManager.getLoggerNames();
+-        ArrayList<String> array = new ArrayList<>();
++        ArrayList<String> array = new ArrayList<String>();
+ 
+         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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/logging/LogManager.java	2012-03-22 11:28:14.075881949 +0000
+@@ -156,7 +156,8 @@
+     private final static Level defaultLevel = Level.INFO;
+ 
+     // Table of named Loggers that maps names to Loggers.
+-    private Hashtable<String,LoggerWeakRef> namedLoggers = new Hashtable<>();
++    private Hashtable<String,LoggerWeakRef> namedLoggers =
++        new Hashtable<String,LoggerWeakRef>();
+     // Tree of named Loggers
+     private LogNode root = new LogNode(null);
+     private Logger rootLogger;
+@@ -444,7 +445,7 @@
+     // loggerRefQueue holds LoggerWeakRef objects for Logger objects
+     // that have been GC'ed.
+     private final ReferenceQueue<Logger> loggerRefQueue
+-        = new ReferenceQueue<>();
++        = new ReferenceQueue<Logger>();
+ 
+     // Package-level inner class.
+     // Helper class for managing WeakReferences to Logger objects.
+@@ -694,7 +695,7 @@
+                 name = "";
+             }
+             if (node.children == null) {
+-                node.children = new HashMap<>();
++                node.children = new HashMap<String,LogNode>();
+             }
+             LogNode child = node.children.get(head);
+             if (child == null) {
+@@ -878,7 +879,7 @@
+         }
+         hands = hands.trim();
+         int ix = 0;
+-        Vector<String> result = new Vector<>();
++        Vector<String> result = new Vector<String>();
+         while (ix < hands.length()) {
+             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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/logging/LogRecord.java	2012-03-22 11:28:14.075881949 +0000
+@@ -85,7 +85,8 @@
+     private static final AtomicInteger nextThreadId
+         = new AtomicInteger(MIN_SEQUENTIAL_THREAD_ID);
+ 
+-    private static final ThreadLocal<Integer> threadIds = new ThreadLocal<>();
++    private static final ThreadLocal<Integer> threadIds
++        = new ThreadLocal<Integer>();
+ 
+     /**
+      * @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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/prefs/AbstractPreferences.java	2012-03-22 11:28:14.075881949 +0000
+@@ -155,7 +155,8 @@
+      * All known unremoved children of this node.  (This "cache" is consulted
+      * prior to calling childSpi() or getChild().
+      */
+-    private Map<String, AbstractPreferences> kidCache = new HashMap<>();
++    private Map<String, AbstractPreferences> kidCache
++        = new HashMap<String, AbstractPreferences>();
+ 
+     /**
+      * This field is used to keep track of whether or not this node has
+@@ -712,7 +713,7 @@
+             if (removed)
+                 throw new IllegalStateException("Node has been removed.");
+ 
+-            Set<String> s = new TreeSet<>(kidCache.keySet());
++            Set<String> s = new TreeSet<String>(kidCache.keySet());
+             for (String kid : childrenNamesSpi())
+                 s.add(kid);
+             return s.toArray(EMPTY_STRING_ARRAY);
+@@ -1441,7 +1442,8 @@
+      * event delivery from preference activity, greatly simplifying
+      * locking and reducing opportunity for deadlock.
+      */
+-    private static final List<EventObject> eventQueue = new LinkedList<>();
++    private static final List<EventObject> eventQueue
++        = new LinkedList<EventObject>();
+ 
+     /**
+      * 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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/PriorityQueue.java	2012-03-22 11:28:14.075881949 +0000
 @@ -538,7 +538,7 @@
                      cursor--;
                  else {
@@ -2827,8 +3116,9 @@
                      forgetMeNot.add(moved);
                  }
              } else if (lastRetElt != null) {
---- openjdk-boot/jdk/src/share/classes/java/util/Properties.java.orig
-+++ openjdk-boot/jdk/src/share/classes/java/util/Properties.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/Properties.java	2012-03-22 11:28:14.075881949 +0000
 @@ -1010,7 +1010,7 @@
       * @since   1.6
       */
@@ -2838,8 +3128,62 @@
          enumerateStringProperties(h);
          return h.keySet();
      }
---- openjdk-boot/jdk/src/share/classes/java/util/RegularEnumSet.java.orig
-+++ openjdk-boot/jdk/src/share/classes/java/util/RegularEnumSet.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/regex/Pattern.java	2012-03-22 11:28:14.079882014 +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>
+  *     <td headers="matches">Nothing, but ends quoting started by <tt>\Q</tt></td></tr>
+- *     <!-- Metachars: !$()*+.<>?[\]^{|} -->
++ *     <!-- Metachars: !$()*+.?[\]^{|} -->
+  *
+  * <tr><th>&nbsp;</th></tr>
+  * <tr align="left"><th colspan="2" id="special">Special constructs (named-capturing and non-capturing)</th></tr>
+@@ -1193,7 +1193,7 @@
+     public String[] split(CharSequence input, int limit) {
+         int index = 0;
+         boolean matchLimited = limit > 0;
+-        ArrayList<String> matchList = new ArrayList<>();
++        ArrayList<String> matchList = new ArrayList<String>();
+         Matcher m = matcher(input);
+ 
+         // Add segments before each match found
+@@ -1695,7 +1695,7 @@
+ 
+     Map<String, Integer> namedGroups() {
+         if (namedGroups == null)
+-            namedGroups = new HashMap<>(2);
++            namedGroups = new HashMap<String, Integer>(2);
+         return namedGroups;
+     }
+ 
+@@ -5495,7 +5495,7 @@
+         }
+ 
+         private static final HashMap<String, CharPropertyFactory> map
+-            = new HashMap<>();
++            = new HashMap<String, CharPropertyFactory>();
+ 
+         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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/regex/UnicodeProp.java	2012-03-22 11:28:14.079882014 +0000
+@@ -193,8 +193,8 @@
+         }
+     };
+ 
+-    private final static HashMap<String, String> posix = new HashMap<>();
+-    private final static HashMap<String, String> aliases = new HashMap<>();
++    private final static HashMap<String, String> posix = new HashMap<String,String>();
++    private final static HashMap<String, String> aliases = new HashMap<String,String>();
+     static {
+         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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/RegularEnumSet.java	2012-03-22 11:28:14.079882014 +0000
 @@ -72,7 +72,7 @@
       * @return an iterator over the elements contained in this set
       */
@@ -2849,8 +3193,9 @@
      }
  
      private class EnumSetIterator<E extends Enum<E>> implements Iterator<E> {
---- openjdk-boot/jdk/src/share/classes/java/util/ResourceBundle.java.orig
-+++ openjdk-boot/jdk/src/share/classes/java/util/ResourceBundle.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/ResourceBundle.java	2012-03-22 11:28:14.079882014 +0000
 @@ -289,7 +289,7 @@
       * name for compatibility with some workarounds for bug 4212439.
       */
@@ -2914,8 +3259,9 @@
  
                  if (variants != null) {
                      for (String v : variants) {
---- openjdk-boot/jdk/src/share/classes/java/util/ServiceLoader.java.orig
-+++ openjdk-boot/jdk/src/share/classes/java/util/ServiceLoader.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/ServiceLoader.java	2012-03-22 11:28:14.079882014 +0000
 @@ -191,7 +191,7 @@
      private ClassLoader loader;
  
@@ -2943,8 +3289,9 @@
      }
  
      /**
---- openjdk-boot/jdk/src/share/classes/java/util/TimSort.java.orig
-+++ openjdk-boot/jdk/src/share/classes/java/util/TimSort.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/TimSort.java	2012-03-22 11:28:14.079882014 +0000
 @@ -196,7 +196,7 @@
           * extending short natural runs to minRun elements, and merging runs
           * to maintain stack invariant.
@@ -2954,8 +3301,9 @@
          int minRun = minRunLength(nRemaining);
          do {
              // Identify next run
---- openjdk-boot/jdk/src/share/classes/java/util/TreeMap.java.orig
-+++ openjdk-boot/jdk/src/share/classes/java/util/TreeMap.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/TreeMap.java	2012-03-22 11:28:14.079882014 +0000
 @@ -530,7 +530,7 @@
          if (t == null) {
              compare(key, key); // type (and possibly null) check
@@ -3010,8 +3358,9 @@
  
          // color nodes in non-full bottommost level red
          if (level == redLevel)
---- openjdk-boot/jdk/src/share/classes/java/util/TreeSet.java.orig
-+++ openjdk-boot/jdk/src/share/classes/java/util/TreeSet.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/TreeSet.java	2012-03-22 11:28:14.079882014 +0000
 @@ -138,7 +138,7 @@
       *        ordering} of the elements will be used.
       */
@@ -3078,8 +3427,9 @@
          m = tm;
  
          // Read in size
---- openjdk-boot/jdk/src/share/classes/java/util/WeakHashMap.java.orig
-+++ openjdk-boot/jdk/src/share/classes/java/util/WeakHashMap.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/WeakHashMap.java	2012-03-22 11:28:14.079882014 +0000
 @@ -171,7 +171,7 @@
      /**
       * Reference queue for cleared WeakEntries
@@ -3111,194 +3461,9 @@
              return list;
          }
  
---- openjdk-boot/jdk/src/share/classes/java/util/logging/FileHandler.java.orig
-+++ openjdk-boot/jdk/src/share/classes/java/util/logging/FileHandler.java
-@@ -127,7 +127,7 @@
-     private FileOutputStream lockStream;
-     private File files[];
-     private static final int MAX_LOCKS = 100;
--    private static java.util.HashMap<String, String> locks = new java.util.HashMap<>();
-+    private static java.util.HashMap<String, String> locks = new java.util.HashMap<String, String>();
- 
-     // A metered stream is a subclass of OutputStream that
-     //   (a) forwards all its output to a target stream
---- openjdk-boot/jdk/src/share/classes/java/util/logging/Level.java.orig
-+++ openjdk-boot/jdk/src/share/classes/java/util/logging/Level.java
-@@ -59,7 +59,7 @@
-  */
- 
- public class Level implements java.io.Serializable {
--    private static java.util.ArrayList<Level> known = new java.util.ArrayList<>();
-+    private static java.util.ArrayList<Level> known = new java.util.ArrayList<Level>();
-     private static String defaultBundle = "sun.util.logging.resources.logging";
- 
-     /**
---- openjdk-boot/jdk/src/share/classes/java/util/logging/LogManager.java.orig
-+++ openjdk-boot/jdk/src/share/classes/java/util/logging/LogManager.java
-@@ -156,7 +156,8 @@
-     private final static Level defaultLevel = Level.INFO;
- 
-     // Table of named Loggers that maps names to Loggers.
--    private Hashtable<String,LoggerWeakRef> namedLoggers = new Hashtable<>();
-+    private Hashtable<String,LoggerWeakRef> namedLoggers =
-+        new Hashtable<String,LoggerWeakRef>();
-     // Tree of named Loggers
-     private LogNode root = new LogNode(null);
-     private Logger rootLogger;
-@@ -444,7 +445,7 @@
-     // loggerRefQueue holds LoggerWeakRef objects for Logger objects
-     // that have been GC'ed.
-     private final ReferenceQueue<Logger> loggerRefQueue
--        = new ReferenceQueue<>();
-+        = new ReferenceQueue<Logger>();
- 
-     // Package-level inner class.
-     // Helper class for managing WeakReferences to Logger objects.
-@@ -694,7 +695,7 @@
-                 name = "";
-             }
-             if (node.children == null) {
--                node.children = new HashMap<>();
-+                node.children = new HashMap<String,LogNode>();
-             }
-             LogNode child = node.children.get(head);
-             if (child == null) {
-@@ -878,7 +879,7 @@
-         }
-         hands = hands.trim();
-         int ix = 0;
--        Vector<String> result = new Vector<>();
-+        Vector<String> result = new Vector<String>();
-         while (ix < hands.length()) {
-             int end = ix;
-             while (end < hands.length()) {
---- openjdk-boot/jdk/src/share/classes/java/util/logging/LogRecord.java.orig
-+++ openjdk-boot/jdk/src/share/classes/java/util/logging/LogRecord.java
-@@ -85,7 +85,8 @@
-     private static final AtomicInteger nextThreadId
-         = new AtomicInteger(MIN_SEQUENTIAL_THREAD_ID);
- 
--    private static final ThreadLocal<Integer> threadIds = new ThreadLocal<>();
-+    private static final ThreadLocal<Integer> threadIds
-+        = new ThreadLocal<Integer>();
- 
-     /**
-      * @serial Logging message level
---- openjdk-boot/jdk/src/share/classes/java/util/logging/Logger.java.orig
-+++ openjdk-boot/jdk/src/share/classes/java/util/logging/Logger.java
-@@ -170,7 +170,7 @@
-     private LogManager manager;
-     private String name;
-     private final CopyOnWriteArrayList<Handler> handlers =
--        new CopyOnWriteArrayList<>();
-+        new CopyOnWriteArrayList<Handler>();
-     private String resourceBundleName;
-     private volatile boolean useParentHandlers = true;
-     private volatile Filter filter;
-@@ -1439,7 +1439,7 @@
-             // Set our new parent.
-             parent = newParent;
-             if (parent.kids == null) {
--                parent.kids = new ArrayList<>(2);
-+                parent.kids = new ArrayList<LogManager.LoggerWeakRef>(2);
-             }
-             if (ref == null) {
-                 // we didn't have a previous parent
---- openjdk-boot/jdk/src/share/classes/java/util/logging/Logging.java.orig
-+++ openjdk-boot/jdk/src/share/classes/java/util/logging/Logging.java
-@@ -56,7 +56,7 @@
- 
-     public List<String> getLoggerNames() {
-         Enumeration loggers = logManager.getLoggerNames();
--        ArrayList<String> array = new ArrayList<>();
-+        ArrayList<String> array = new ArrayList<String>();
- 
-         for (; loggers.hasMoreElements();) {
-             array.add((String) loggers.nextElement());
---- openjdk-boot/jdk/src/share/classes/java/util/prefs/AbstractPreferences.java.orig
-+++ openjdk-boot/jdk/src/share/classes/java/util/prefs/AbstractPreferences.java
-@@ -155,7 +155,8 @@
-      * All known unremoved children of this node.  (This "cache" is consulted
-      * prior to calling childSpi() or getChild().
-      */
--    private Map<String, AbstractPreferences> kidCache = new HashMap<>();
-+    private Map<String, AbstractPreferences> kidCache
-+        = new HashMap<String, AbstractPreferences>();
- 
-     /**
-      * This field is used to keep track of whether or not this node has
-@@ -712,7 +713,7 @@
-             if (removed)
-                 throw new IllegalStateException("Node has been removed.");
- 
--            Set<String> s = new TreeSet<>(kidCache.keySet());
-+            Set<String> s = new TreeSet<String>(kidCache.keySet());
-             for (String kid : childrenNamesSpi())
-                 s.add(kid);
-             return s.toArray(EMPTY_STRING_ARRAY);
-@@ -1441,7 +1442,8 @@
-      * event delivery from preference activity, greatly simplifying
-      * locking and reducing opportunity for deadlock.
-      */
--    private static final List<EventObject> eventQueue = new LinkedList<>();
-+    private static final List<EventObject> eventQueue
-+        = new LinkedList<EventObject>();
- 
-     /**
-      * These two classes are used to distinguish NodeChangeEvents on
---- openjdk-boot/jdk/src/share/classes/java/util/regex/Pattern.java.orig
-+++ openjdk-boot/jdk/src/share/classes/java/util/regex/Pattern.java
-@@ -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>
-  *     <td headers="matches">Nothing, but ends quoting started by <tt>\Q</tt></td></tr>
-- *     <!-- Metachars: !$()*+.<>?[\]^{|} -->
-+ *     <!-- Metachars: !$()*+.?[\]^{|} -->
-  *
-  * <tr><th>&nbsp;</th></tr>
-  * <tr align="left"><th colspan="2" id="special">Special constructs (named-capturing and non-capturing)</th></tr>
-@@ -1193,7 +1193,7 @@
-     public String[] split(CharSequence input, int limit) {
-         int index = 0;
-         boolean matchLimited = limit > 0;
--        ArrayList<String> matchList = new ArrayList<>();
-+        ArrayList<String> matchList = new ArrayList<String>();
-         Matcher m = matcher(input);
- 
-         // Add segments before each match found
-@@ -1695,7 +1695,7 @@
- 
-     Map<String, Integer> namedGroups() {
-         if (namedGroups == null)
--            namedGroups = new HashMap<>(2);
-+            namedGroups = new HashMap<String, Integer>(2);
-         return namedGroups;
-     }
- 
-@@ -5495,7 +5495,7 @@
-         }
- 
-         private static final HashMap<String, CharPropertyFactory> map
--            = new HashMap<>();
-+            = new HashMap<String, CharPropertyFactory>();
- 
-         static {
-             // Unicode character property aliases, defined in
---- openjdk-boot/jdk/src/share/classes/java/util/regex/UnicodeProp.java.orig
-+++ openjdk-boot/jdk/src/share/classes/java/util/regex/UnicodeProp.java
-@@ -193,8 +193,8 @@
-         }
-     };
- 
--    private final static HashMap<String, String> posix = new HashMap<>();
--    private final static HashMap<String, String> aliases = new HashMap<>();
-+    private final static HashMap<String, String> posix = new HashMap<String,String>();
-+    private final static HashMap<String, String> aliases = new HashMap<String,String>();
-     static {
-         posix.put("ALPHA", "ALPHABETIC");
-         posix.put("LOWER", "LOWERCASE");
---- openjdk-boot/jdk/src/share/classes/java/util/zip/ZipFile.java.orig
-+++ openjdk-boot/jdk/src/share/classes/java/util/zip/ZipFile.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/zip/ZipFile.java	2012-03-22 11:28:14.079882014 +0000
 @@ -319,7 +319,7 @@
  
      // the outstanding inputstreams that need to be closed,
@@ -3326,8 +3491,9 @@
                      streams.clear();
                      for (Map.Entry<InputStream, Inflater> e : copy.entrySet()) {
                          e.getKey().close();
---- openjdk-boot/jdk/src/share/classes/java/util/zip/ZipOutputStream.java.orig
-+++ openjdk-boot/jdk/src/share/classes/java/util/zip/ZipOutputStream.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/zip/ZipOutputStream.java	2012-03-22 11:28:14.079882014 +0000
 @@ -53,8 +53,8 @@
      }
  
@@ -3339,8 +3505,33 @@
      private CRC32 crc = new CRC32();
      private long written = 0;
      private long locoff = 0;
---- openjdk-boot/jdk/src/share/classes/javax/security/auth/PrivateCredentialPermission.java.orig
-+++ openjdk-boot/jdk/src/share/classes/javax/security/auth/PrivateCredentialPermission.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/javax/security/auth/kerberos/DelegationPermission.java	2012-03-22 11:28:14.079882014 +0000
+@@ -361,7 +361,7 @@
+         // Don't call out.defaultWriteObject()
+ 
+         // Write out Vector
+-        Vector<Permission> permissions = new Vector<>(perms.size());
++        Vector<Permission> permissions = new Vector<Permission>(perms.size());
+ 
+         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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/javax/security/auth/kerberos/ServicePermission.java	2012-03-22 11:28:14.079882014 +0000
+@@ -569,7 +569,7 @@
+         // Don't call out.defaultWriteObject()
+ 
+         // Write out Vector
+-        Vector<Permission> permissions = new Vector<>(perms.size());
++        Vector<Permission> permissions = new Vector<Permission>(perms.size());
+ 
+         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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/javax/security/auth/PrivateCredentialPermission.java	2012-03-22 11:28:14.079882014 +0000
 @@ -329,7 +329,7 @@
              throw new IllegalArgumentException("invalid empty name");
          }
@@ -3350,8 +3541,9 @@
          StringTokenizer tokenizer = new StringTokenizer(name, " ", true);
          String principalClass = null;
          String principalName = null;
---- openjdk-boot/jdk/src/share/classes/javax/security/auth/SubjectDomainCombiner.java.orig
-+++ openjdk-boot/jdk/src/share/classes/javax/security/auth/SubjectDomainCombiner.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/javax/security/auth/SubjectDomainCombiner.java	2012-03-22 11:28:14.083882079 +0000
 @@ -48,7 +48,7 @@
  
      private Subject subject;
@@ -3361,30 +3553,9 @@
      private Set<Principal> principalSet;
      private Principal[] principals;
  
---- openjdk-boot/jdk/src/share/classes/javax/security/auth/kerberos/DelegationPermission.java.orig
-+++ openjdk-boot/jdk/src/share/classes/javax/security/auth/kerberos/DelegationPermission.java
-@@ -361,7 +361,7 @@
-         // Don't call out.defaultWriteObject()
- 
-         // Write out Vector
--        Vector<Permission> permissions = new Vector<>(perms.size());
-+        Vector<Permission> permissions = new Vector<Permission>(perms.size());
- 
-         synchronized (this) {
-             permissions.addAll(perms);
---- openjdk-boot/jdk/src/share/classes/javax/security/auth/kerberos/ServicePermission.java.orig
-+++ openjdk-boot/jdk/src/share/classes/javax/security/auth/kerberos/ServicePermission.java
-@@ -569,7 +569,7 @@
-         // Don't call out.defaultWriteObject()
- 
-         // Write out Vector
--        Vector<Permission> permissions = new Vector<>(perms.size());
-+        Vector<Permission> permissions = new Vector<Permission>(perms.size());
- 
-         synchronized (this) {
-             permissions.addAll(perms);
---- openjdk-boot/jdk/src/share/classes/sun/invoke/util/ValueConversions.java.orig
-+++ openjdk-boot/jdk/src/share/classes/sun/invoke/util/ValueConversions.java
+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-03-22 11:18:05.238038559 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/invoke/util/ValueConversions.java	2012-03-22 11:28:14.083882079 +0000
 @@ -59,7 +59,7 @@
          EnumMap<Wrapper, MethodHandle>[] caches
                  = (EnumMap<Wrapper, MethodHandle>[]) new EnumMap[n];  // unchecked warning expected here
@@ -3421,8 +3592,9 @@
          for (;;) {
              MethodHandle mh = findCollector("list", mhs.size(), List.class);
              if (mh == null)  break;
---- openjdk-boot/jdk/src/share/classes/sun/io/CharacterEncoding.java.orig
-+++ openjdk-boot/jdk/src/share/classes/sun/io/CharacterEncoding.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/io/CharacterEncoding.java	2012-03-22 11:28:14.083882079 +0000
 @@ -54,7 +54,7 @@
      private static volatile boolean installedAll;
  
@@ -3432,8 +3604,9 @@
  
          aliasTable.put("us-ascii",              "ASCII");
          aliasTable.put("ascii",                 "ASCII");
---- openjdk-boot/jdk/src/share/classes/sun/io/Converters.java.orig
-+++ openjdk-boot/jdk/src/share/classes/sun/io/Converters.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/io/Converters.java	2012-03-22 11:28:14.083882079 +0000
 @@ -120,7 +120,7 @@
  
      private static Class<?> cache(int type, Object encoding, Class<?> c) {
@@ -3443,8 +3616,9 @@
          moveToFront(srs, CACHE_SIZE - 1);
          return c;
      }
---- openjdk-boot/jdk/src/share/classes/sun/launcher/LauncherHelper.java.orig
-+++ openjdk-boot/jdk/src/share/classes/sun/launcher/LauncherHelper.java
+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-03-22 11:18:05.070035870 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/launcher/LauncherHelper.java	2012-03-22 11:28:14.083882079 +0000
 @@ -169,7 +169,7 @@
      private static void printProperties(PrintStream ostream) {
          Properties p = System.getProperties();
@@ -3463,8 +3637,9 @@
          for (Locale l : tlocales) {
              sortedSet.add(l.toString());
          }
---- openjdk-boot/jdk/src/share/classes/sun/management/ManagementFactoryHelper.java.orig
-+++ openjdk-boot/jdk/src/share/classes/sun/management/ManagementFactoryHelper.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/management/ManagementFactoryHelper.java	2012-03-22 11:28:14.083882079 +0000
 @@ -205,7 +205,7 @@
      private static List<BufferPoolMXBean> bufferPools = null;
      public static synchronized List<BufferPoolMXBean> getBufferPoolMXBeans() {
@@ -3474,8 +3649,9 @@
              bufferPools.add(createBufferPoolMXBean(sun.misc.SharedSecrets.getJavaNioAccess()
                  .getDirectBufferPool()));
              bufferPools.add(createBufferPoolMXBean(sun.nio.ch.FileChannelImpl
---- openjdk-boot/jdk/src/share/classes/sun/net/spi/nameservice/dns/DNSNameService.java.orig
-+++ openjdk-boot/jdk/src/share/classes/sun/net/spi/nameservice/dns/DNSNameService.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/net/spi/nameservice/dns/DNSNameService.java	2012-03-22 11:28:14.083882079 +0000
 @@ -52,7 +52,7 @@
  
      // Per-thread soft cache of the last temporary context
@@ -3503,8 +3679,42 @@
          Attributes attrs;
  
          // do the query
---- openjdk-boot/jdk/src/share/classes/sun/net/www/URLConnection.java.orig
-+++ openjdk-boot/jdk/src/share/classes/sun/net/www/URLConnection.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/net/www/protocol/http/AuthenticationInfo.java	2012-03-22 11:28:14.083882079 +0000
+@@ -111,7 +111,7 @@
+      * at the same time, then all but the first will block until
+      * the first completes its authentication.
+      */
+-    static private HashMap<String,Thread> requests = new HashMap<>();
++    static private HashMap<String,Thread> requests = new HashMap<String,Thread>();
+ 
+     /* 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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/net/www/protocol/http/HttpURLConnection.java	2012-03-22 11:28:14.083882079 +0000
+@@ -2628,7 +2628,7 @@
+         if (filteredHeaders != null)
+             return filteredHeaders;
+ 
+-        Map<String, List<String>> headers, tmpMap = new HashMap<>();
++        Map<String, List<String>> headers, tmpMap = new HashMap<String, List<String>>();
+ 
+         if (cachedHeaders != null)
+             headers = cachedHeaders.getHeaders();
+@@ -2637,7 +2637,7 @@
+ 
+         for (Map.Entry<String, List<String>> e: headers.entrySet()) {
+             String key = e.getKey();
+-            List<String> values = e.getValue(), filteredVals = new ArrayList<>();
++            List<String> values = e.getValue(), filteredVals = new ArrayList<String>();
+             for (String value : values) {
+                 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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/net/www/URLConnection.java	2012-03-22 11:28:14.083882079 +0000
 @@ -239,7 +239,7 @@
          url = null;
      }
@@ -3514,19 +3724,9 @@
  
      public synchronized static void setProxiedHost(String host) {
          proxiedHosts.put(host.toLowerCase(), null);
---- openjdk-boot/jdk/src/share/classes/sun/net/www/protocol/http/AuthenticationInfo.java.orig
-+++ openjdk-boot/jdk/src/share/classes/sun/net/www/protocol/http/AuthenticationInfo.java
-@@ -111,7 +111,7 @@
-      * at the same time, then all but the first will block until
-      * the first completes its authentication.
-      */
--    static private HashMap<String,Thread> requests = new HashMap<>();
-+    static private HashMap<String,Thread> requests = new HashMap<String,Thread>();
- 
-     /* check if a request for this destination is in progress
-      * return false immediately if not. Otherwise block until
---- openjdk-boot/jdk/src/share/classes/sun/nio/cs/AbstractCharsetProvider.java.orig
-+++ openjdk-boot/jdk/src/share/classes/sun/nio/cs/AbstractCharsetProvider.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/nio/cs/AbstractCharsetProvider.java	2012-03-22 11:28:14.083882079 +0000
 @@ -49,22 +49,22 @@
      /* Maps canonical names to class names
       */
@@ -3563,8 +3763,9 @@
          }
  
          return new Iterator<Charset>() {
---- openjdk-boot/jdk/src/share/classes/sun/nio/fs/AbstractAclFileAttributeView.java.orig
-+++ openjdk-boot/jdk/src/share/classes/sun/nio/fs/AbstractAclFileAttributeView.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/nio/fs/AbstractAclFileAttributeView.java	2012-03-22 11:28:14.083882079 +0000
 @@ -84,7 +84,7 @@
              throw new IllegalArgumentException("'" + name() + ":" +
                  attribute + "' not recognized");
@@ -3574,8 +3775,9 @@
          if (acl)
              result.put(ACL_NAME, getAcl());
          if (owner)
---- openjdk-boot/jdk/src/share/classes/sun/nio/fs/AbstractBasicFileAttributeView.java.orig
-+++ openjdk-boot/jdk/src/share/classes/sun/nio/fs/AbstractBasicFileAttributeView.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/nio/fs/AbstractBasicFileAttributeView.java	2012-03-22 11:28:14.083882079 +0000
 @@ -89,8 +89,8 @@
       * Used to build a map of attribute name/values.
       */
@@ -3587,8 +3789,9 @@
          private boolean copyAll;
  
          private AttributesBuilder(Set<String> allowed, String[] requested) {
---- openjdk-boot/jdk/src/share/classes/sun/nio/fs/AbstractPoller.java.orig
-+++ openjdk-boot/jdk/src/share/classes/sun/nio/fs/AbstractPoller.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/nio/fs/AbstractPoller.java	2012-03-22 11:28:14.083882079 +0000
 @@ -102,7 +102,7 @@
              throw new NullPointerException();
          if (events.length == 0)
@@ -3598,8 +3801,9 @@
          for (WatchEvent.Kind<?> event: events) {
              // standard events
              if (event == StandardWatchEventKinds.ENTRY_CREATE ||
---- openjdk-boot/jdk/src/share/classes/sun/nio/fs/AbstractUserDefinedFileAttributeView.java.orig
-+++ openjdk-boot/jdk/src/share/classes/sun/nio/fs/AbstractUserDefinedFileAttributeView.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/nio/fs/AbstractUserDefinedFileAttributeView.java	2012-03-22 11:28:14.083882079 +0000
 @@ -77,7 +77,7 @@
          throws IOException
      {
@@ -3618,8 +3822,9 @@
          for (String name: names) {
              int size = size(name);
              byte[] buf = new byte[size];
---- openjdk-boot/jdk/src/share/classes/sun/nio/fs/FileOwnerAttributeViewImpl.java.orig
-+++ openjdk-boot/jdk/src/share/classes/sun/nio/fs/FileOwnerAttributeViewImpl.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/nio/fs/FileOwnerAttributeViewImpl.java	2012-03-22 11:28:14.083882079 +0000
 @@ -71,7 +71,7 @@
  
      @Override
@@ -3629,8 +3834,9 @@
          for (String attribute: attributes) {
              if (attribute.equals("*") || attribute.equals(OWNER_NAME)) {
                  result.put(OWNER_NAME, getOwner());
---- openjdk-boot/jdk/src/share/classes/sun/nio/fs/Util.java.orig
-+++ openjdk-boot/jdk/src/share/classes/sun/nio/fs/Util.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/nio/fs/Util.java	2012-03-22 11:28:14.083882079 +0000
 @@ -63,7 +63,7 @@
       * Returns a Set containing the given elements.
       */
@@ -3649,8 +3855,9 @@
          for (E e: elements) {
              set.add(e);
          }
---- openjdk-boot/jdk/src/share/classes/sun/reflect/generics/parser/SignatureParser.java.orig
-+++ openjdk-boot/jdk/src/share/classes/sun/reflect/generics/parser/SignatureParser.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/reflect/generics/parser/SignatureParser.java	2012-03-22 11:28:14.083882079 +0000
 @@ -229,7 +229,7 @@
       *     "<" FormalTypeParameter+ ">"
       */
@@ -3714,8 +3921,9 @@
          while( current() == '^') {
              ets.add(parseThrowsSignature());
          }
---- openjdk-boot/jdk/src/share/classes/sun/rmi/server/Activation.java.orig
-+++ openjdk-boot/jdk/src/share/classes/sun/rmi/server/Activation.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/rmi/server/Activation.java	2012-03-22 11:28:14.087882145 +0000
 @@ -149,10 +149,10 @@
  
      /** maps activation id to its respective group id */
@@ -3742,8 +3950,9 @@
          }
      }
  
---- openjdk-boot/jdk/src/share/classes/sun/security/acl/AclEntryImpl.java.orig
-+++ openjdk-boot/jdk/src/share/classes/sun/security/acl/AclEntryImpl.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/acl/AclEntryImpl.java	2012-03-22 11:28:14.087882145 +0000
 @@ -37,7 +37,7 @@
   */
  public class AclEntryImpl implements AclEntry {
@@ -3753,8 +3962,9 @@
      private boolean negative = false;
  
      /**
---- openjdk-boot/jdk/src/share/classes/sun/security/acl/AclImpl.java.orig
-+++ openjdk-boot/jdk/src/share/classes/sun/security/acl/AclImpl.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/acl/AclImpl.java	2012-03-22 11:28:14.087882145 +0000
 @@ -41,15 +41,15 @@
      // or principal.
      //
@@ -3794,8 +4004,9 @@
  
          while (e1.hasMoreElements())
              v.addElement(e1.nextElement());
---- openjdk-boot/jdk/src/share/classes/sun/security/acl/GroupImpl.java.orig
-+++ openjdk-boot/jdk/src/share/classes/sun/security/acl/GroupImpl.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/acl/GroupImpl.java	2012-03-22 11:28:14.087882145 +0000
 @@ -34,7 +34,7 @@
   * @author      Satish Dharmaraj
   */
@@ -3814,8 +4025,9 @@
              return isMemberRecurse(member, alreadySeen);
          }
      }
---- openjdk-boot/jdk/src/share/classes/sun/security/jca/ProviderList.java.orig
-+++ openjdk-boot/jdk/src/share/classes/sun/security/jca/ProviderList.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/jca/ProviderList.java	2012-03-22 11:28:14.087882145 +0000
 @@ -96,7 +96,7 @@
          if (providerList.getProvider(p.getName()) != null) {
              return providerList;
@@ -3852,8 +4064,9 @@
          for (String alg : algorithms) {
              ids.add(new ServiceId(type, alg));
          }
---- openjdk-boot/jdk/src/share/classes/sun/security/jca/Providers.java.orig
-+++ openjdk-boot/jdk/src/share/classes/sun/security/jca/Providers.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/jca/Providers.java	2012-03-22 11:28:14.087882145 +0000
 @@ -40,7 +40,7 @@
  public class Providers {
  
@@ -3863,8 +4076,9 @@
  
      // number of threads currently using thread-local provider lists
      // tracked to allow an optimization if == 0
---- openjdk-boot/jdk/src/share/classes/sun/security/jgss/krb5/Krb5Util.java.orig
-+++ openjdk-boot/jdk/src/share/classes/sun/security/jgss/krb5/Krb5Util.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/jgss/krb5/Krb5Util.java	2012-03-22 11:28:14.087882145 +0000
 @@ -267,7 +267,7 @@
              if (ktabs.isEmpty()) {
                  return kk.toArray(new KerberosKey[kk.size()]);
@@ -3874,9 +4088,10 @@
                  for (KeyTab ktab: ktabs) {
                      for (KerberosKey k: ktab.getKeys(kp)) {
                          keys.add(k);
---- openjdk-boot/jdk/src/share/classes/sun/security/krb5/Config.java.orig
-+++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/Config.java
-@@ -527,7 +527,7 @@
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/Config.java	2012-03-22 11:28:14.087882145 +0000
+@@ -551,7 +551,7 @@
                  }
                  })));
                  String Line;
@@ -3885,7 +4100,7 @@
                  String previous = null;
                  while ((Line = br.readLine()) != null) {
                      // ignore comments and blank line in the configuration file.
-@@ -588,7 +588,7 @@
+@@ -612,7 +612,7 @@
              throw new KrbException("I/O error while reading" +
                          " configuration file.");
          }
@@ -3894,7 +4109,7 @@
          for (int i = 0; i < v.size(); i++) {
              String line = v.elementAt(i).trim();
              if (line.equalsIgnoreCase("[realms]")) {
-@@ -597,7 +597,7 @@
+@@ -621,7 +621,7 @@
                      if ((count == v.size()) ||
                          (v.elementAt(count).startsWith("["))) {
                          Hashtable<String,Hashtable<String,Vector<String>>> temp =
@@ -3903,7 +4118,7 @@
                          temp = parseRealmField(v, i + 1, count);
                          table.put("realms", temp);
                          i = count - 1;
-@@ -610,7 +610,7 @@
+@@ -634,7 +634,7 @@
                      if ((count == v.size()) ||
                          (v.elementAt(count).startsWith("["))) {
                          Hashtable<String,Hashtable<String,Vector<String>>> temp =
@@ -3912,7 +4127,7 @@
                          temp = parseRealmField(v, i + 1, count);
                          table.put("capaths", temp);
                          i = count - 1;
-@@ -728,7 +728,7 @@
+@@ -779,7 +779,7 @@
       * Parses key-value pairs under a stanza name.
       */
      private Hashtable<String,String>  parseField(Vector<String> v, int start, int end) {
@@ -3921,7 +4136,7 @@
          String line;
          for (int i = start; i < end; i++) {
              line = v.elementAt(i);
-@@ -750,7 +750,7 @@
+@@ -801,7 +801,7 @@
       * information for the realm given within a pair of braces.
       */
      private Hashtable<String,Hashtable<String,Vector<String>>> parseRealmField(Vector<String> v, int start, int end) {
@@ -3930,7 +4145,7 @@
          String line;
          for (int i = start; i < end; i++) {
              line = v.elementAt(i).trim();
-@@ -790,9 +790,9 @@
+@@ -841,9 +841,9 @@
       * Parses key-value pairs within each braces under [realms].
       */
      private Hashtable<String,Vector<String>> parseRealmFieldEx(Vector<String> v, int start, int end) {
@@ -3943,7 +4158,7 @@
          String line = "";
          String key;
          for (int i = start; i < end; i++) {
-@@ -897,7 +897,7 @@
+@@ -948,7 +948,7 @@
              }
              st = new StringTokenizer(default_enctypes, delim);
              int len = st.countTokens();
@@ -3952,70 +4167,9 @@
              int type;
              for (int i = 0; i < len; i++) {
                  type = getType(st.nextToken());
---- openjdk-boot/jdk/src/share/classes/sun/security/krb5/KdcComm.java.orig
-+++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/KdcComm.java
-@@ -462,7 +462,7 @@
-      */
-     static class KdcAccessibility {
-         // Known bad KDCs
--        private static Set<String> bads = new HashSet<>();
-+        private static Set<String> bads = new HashSet<String>();
- 
-         private static synchronized void addBad(String kdc) {
-             if (DEBUG) {
-@@ -492,9 +492,9 @@
-         // Returns a preferred KDC list by putting the bad ones at the end
-         private static synchronized String[] list(String kdcList) {
-             StringTokenizer st = new StringTokenizer(kdcList);
--            List<String> list = new ArrayList<>();
-+            List<String> list = new ArrayList<String>();
-             if (badPolicy == BpType.TRY_LAST) {
--                List<String> badkdcs = new ArrayList<>();
-+                List<String> badkdcs = new ArrayList<String>();
-                 while (st.hasMoreTokens()) {
-                     String t = st.nextToken();
-                     if (bads.contains(t)) badkdcs.add(t);
---- openjdk-boot/jdk/src/share/classes/sun/security/krb5/PrincipalName.java.orig
-+++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/PrincipalName.java
-@@ -238,7 +238,7 @@
-             if (subDer.getTag() != DerValue.tag_SequenceOf) {
-                 throw new Asn1Exception(Krb5.ASN1_BAD_ID);
-             }
--            Vector<String> v = new Vector<>();
-+            Vector<String> v = new Vector<String>();
-             DerValue subSubDer;
-             while(subDer.getData().available() > 0) {
-                 subSubDer = subDer.getData().getDerValue();
-@@ -293,7 +293,7 @@
-     // Code repetition, realm parsed again by class Realm
-     protected static String[] parseName(String name) {
- 
--        Vector<String> tempStrings = new Vector<>();
-+        Vector<String> tempStrings = new Vector<String>();
-         String temp = name;
-         int i = 0;
-         int componentStart = 0;
---- openjdk-boot/jdk/src/share/classes/sun/security/krb5/Realm.java.orig
-+++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/Realm.java
-@@ -359,14 +359,14 @@
-         }
- 
-         String tempTarget = null, tempRealm = null;
--        Stack<String> iStack = new Stack<>();
-+        Stack<String> iStack = new Stack<String>();
- 
-         /*
-          * The half-established reversed-path, starting from the final target
-          * (sRealm), each item can be connected to by the next one.
-          * Might contains wrong item, if found, a bad track is performed
-          */
--        Vector<String> tempList = new Vector<>(8, 8);
-+        Vector<String> tempList = new Vector<String>(8, 8);
-         tempList.add(sRealm);
- 
-         int count = 0; // For debug only
---- openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/Authenticator.java.orig
-+++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/Authenticator.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/Authenticator.java	2012-03-22 11:28:14.087882145 +0000
 @@ -176,7 +176,7 @@
       * @exception IOException if an I/O error occurs while reading encoded data.
       */
@@ -4025,8 +4179,9 @@
          DerOutputStream temp = new DerOutputStream();
          temp.putInteger(BigInteger.valueOf(authenticator_vno));
          v.addElement(new DerValue(DerValue.createTag(DerValue.TAG_CONTEXT, true, (byte) 0x00), temp.toByteArray()));
---- openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/AuthorizationData.java.orig
-+++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/AuthorizationData.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/AuthorizationData.java	2012-03-22 11:28:14.087882145 +0000
 @@ -99,7 +99,7 @@
       * @exception IOException if an I/O error occurs while reading encoded data.
       */
@@ -4036,8 +4191,33 @@
          if (der.getTag() != DerValue.tag_Sequence) {
              throw new Asn1Exception(Krb5.ASN1_BAD_ID);
          }
---- openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/EncAPRepPart.java.orig
-+++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/EncAPRepPart.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/ccache/FileCredentialsCache.java	2012-03-22 11:28:14.087882145 +0000
+@@ -490,7 +490,7 @@
+ 
+     private static String exec(String c) {
+         StringTokenizer st = new StringTokenizer(c);
+-        Vector<String> v = new Vector<>();
++        Vector<String> v = new Vector<String>();
+         while (st.hasMoreTokens()) {
+             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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/crypto/EType.java	2012-03-22 11:28:14.087882145 +0000
+@@ -257,7 +257,7 @@
+                 + configName);
+         }
+ 
+-        List<Integer> list = new ArrayList<>(answer.length);
++        List<Integer> list = new ArrayList<Integer>(answer.length);
+         for (int i = 0; i < answer.length; i++) {
+             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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/EncAPRepPart.java	2012-03-22 11:28:14.087882145 +0000
 @@ -133,7 +133,7 @@
       * @exception IOException if an I/O error occurs while reading encoded data.
       */
@@ -4047,8 +4227,9 @@
          DerOutputStream temp = new DerOutputStream();
          v.addElement(new DerValue(DerValue.createTag(DerValue.TAG_CONTEXT,
                  true, (byte) 0x00), ctime.asn1Encode()));
---- openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/HostAddresses.java.orig
-+++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/HostAddresses.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/HostAddresses.java	2012-03-22 11:28:14.087882145 +0000
 @@ -179,7 +179,7 @@
      */
      public HostAddresses(DerValue encoding)
@@ -4067,19 +4248,9 @@
  
          for (int i = 0; i < addresses.length; i++) {
              try {
---- openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/KDCReq.java.orig
-+++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/KDCReq.java
-@@ -150,7 +150,7 @@
-             if (subsubDer.getTag() != DerValue.tag_SequenceOf) {
-                 throw new Asn1Exception(Krb5.ASN1_BAD_ID);
-             }
--            Vector<PAData> v = new Vector<>();
-+            Vector<PAData> v = new Vector<PAData>();
-             while (subsubDer.getData().available() > 0) {
-                 v.addElement(new PAData(subsubDer.getData().getDerValue()));
-             }
---- openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/KDCReqBody.java.orig
-+++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/KDCReqBody.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/KDCReqBody.java	2012-03-22 11:28:14.087882145 +0000
 @@ -158,7 +158,7 @@
              throw new Asn1Exception(Krb5.ASN1_BAD_ID);
          }
@@ -4107,30 +4278,21 @@
          v.addElement(new DerValue(DerValue.createTag(DerValue.TAG_CONTEXT, true, (byte)0x00), kdcOptions.asn1Encode()));
          if (msgType == Krb5.KRB_AS_REQ) {
              if (cname != null) {
---- openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/KRBCred.java.orig
-+++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/KRBCred.java
-@@ -134,7 +134,7 @@
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/KDCReq.java	2012-03-22 11:28:14.087882145 +0000
+@@ -150,7 +150,7 @@
              if (subsubDer.getTag() != DerValue.tag_SequenceOf) {
                  throw new Asn1Exception(Krb5.ASN1_BAD_ID);
              }
--            Vector<Ticket> v = new Vector<>();
-+            Vector<Ticket> v = new Vector<Ticket>();
+-            Vector<PAData> v = new Vector<>();
++            Vector<PAData> v = new Vector<PAData>();
              while (subsubDer.getData().available() > 0) {
-                 v.addElement(new Ticket(subsubDer.getData().getDerValue()));
+                 v.addElement(new PAData(subsubDer.getData().getDerValue()));
              }
---- openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/KRBError.java.orig
-+++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/KRBError.java
-@@ -259,7 +259,7 @@
-     private void parsePAData(byte[] data)
-             throws IOException, Asn1Exception {
-         DerValue derPA = new DerValue(data);
--        List<PAData> paList = new ArrayList<>();
-+        List<PAData> paList = new ArrayList<PAData>();
-         while (derPA.data.available() > 0) {
-             // read the PA-DATA
-             DerValue tmp = derPA.data.getDerValue();
---- openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/KrbCredInfo.java.orig
-+++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/KrbCredInfo.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/KrbCredInfo.java	2012-03-22 11:28:14.087882145 +0000
 @@ -157,7 +157,7 @@
       * @exception IOException if an I/O error occurs while reading encoded data.
       */
@@ -4140,41 +4302,33 @@
          v.addElement(new DerValue(DerValue.createTag(DerValue.TAG_CONTEXT, true, (byte)0x00), key.asn1Encode()));
          if (prealm != null)
              v.addElement(new DerValue(DerValue.createTag(DerValue.TAG_CONTEXT, true, (byte)0x01), prealm.asn1Encode()));
---- openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/LastReq.java.orig
-+++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/LastReq.java
-@@ -77,7 +77,7 @@
-      */
- 
-     public LastReq(DerValue encoding) throws Asn1Exception, IOException {
--        Vector<LastReqEntry> v= new Vector<>();
-+        Vector<LastReqEntry> v= new Vector<LastReqEntry>();
-         if (encoding.getTag() != DerValue.tag_Sequence) {
-             throw new Asn1Exception(Krb5.ASN1_BAD_ID);
-         }
---- openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/ccache/FileCredentialsCache.java.orig
-+++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/ccache/FileCredentialsCache.java
-@@ -490,7 +490,7 @@
- 
-     private static String exec(String c) {
-         StringTokenizer st = new StringTokenizer(c);
--        Vector<String> v = new Vector<>();
-+        Vector<String> v = new Vector<String>();
-         while (st.hasMoreTokens()) {
-             v.addElement(st.nextToken());
-         }
---- openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/crypto/EType.java.orig
-+++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/crypto/EType.java
-@@ -257,7 +257,7 @@
-                 + configName);
-         }
- 
--        List<Integer> list = new ArrayList<>(answer.length);
-+        List<Integer> list = new ArrayList<Integer>(answer.length);
-         for (int i = 0; i < answer.length; i++) {
-             if (EncryptionKey.findKey(answer[i], keys) != null) {
-                 list.add(answer[i]);
---- openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/ktab/KeyTab.java.orig
-+++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/ktab/KeyTab.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/KRBCred.java	2012-03-22 11:28:14.087882145 +0000
+@@ -134,7 +134,7 @@
+             if (subsubDer.getTag() != DerValue.tag_SequenceOf) {
+                 throw new Asn1Exception(Krb5.ASN1_BAD_ID);
+             }
+-            Vector<Ticket> v = new Vector<>();
++            Vector<Ticket> v = new Vector<Ticket>();
+             while (subsubDer.getData().available() > 0) {
+                 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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/KRBError.java	2012-03-22 11:28:14.087882145 +0000
+@@ -259,7 +259,7 @@
+     private void parsePAData(byte[] data)
+             throws IOException, Asn1Exception {
+         DerValue derPA = new DerValue(data);
+-        List<PAData> paList = new ArrayList<>();
++        List<PAData> paList = new ArrayList<PAData>();
+         while (derPA.data.available() > 0) {
+             // 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-03-22 11:18:05.206038048 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/ktab/KeyTab.java	2012-03-22 11:28:14.087882145 +0000
 @@ -67,7 +67,7 @@
  
      // Attention: Currently there is no way to remove a keytab from this map,
@@ -4211,8 +4365,98 @@
  
          for (int i = entries.size()-1; i >= 0; i--) {
              KeyTabEntry e = entries.get(i);
---- openjdk-boot/jdk/src/share/classes/sun/security/provider/JavaKeyStore.java.orig
-+++ openjdk-boot/jdk/src/share/classes/sun/security/provider/JavaKeyStore.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/LastReq.java	2012-03-22 11:28:14.087882145 +0000
+@@ -77,7 +77,7 @@
+      */
+ 
+     public LastReq(DerValue encoding) throws Asn1Exception, IOException {
+-        Vector<LastReqEntry> v= new Vector<>();
++        Vector<LastReqEntry> v= new Vector<LastReqEntry>();
+         if (encoding.getTag() != DerValue.tag_Sequence) {
+             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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/KdcComm.java	2012-03-22 11:28:14.087882145 +0000
+@@ -462,7 +462,7 @@
+      */
+     static class KdcAccessibility {
+         // Known bad KDCs
+-        private static Set<String> bads = new HashSet<>();
++        private static Set<String> bads = new HashSet<String>();
+ 
+         private static synchronized void addBad(String kdc) {
+             if (DEBUG) {
+@@ -492,9 +492,9 @@
+         // Returns a preferred KDC list by putting the bad ones at the end
+         private static synchronized String[] list(String kdcList) {
+             StringTokenizer st = new StringTokenizer(kdcList);
+-            List<String> list = new ArrayList<>();
++            List<String> list = new ArrayList<String>();
+             if (badPolicy == BpType.TRY_LAST) {
+-                List<String> badkdcs = new ArrayList<>();
++                List<String> badkdcs = new ArrayList<String>();
+                 while (st.hasMoreTokens()) {
+                     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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/PrincipalName.java	2012-03-22 11:28:14.091882210 +0000
+@@ -238,7 +238,7 @@
+             if (subDer.getTag() != DerValue.tag_SequenceOf) {
+                 throw new Asn1Exception(Krb5.ASN1_BAD_ID);
+             }
+-            Vector<String> v = new Vector<>();
++            Vector<String> v = new Vector<String>();
+             DerValue subSubDer;
+             while(subDer.getData().available() > 0) {
+                 subSubDer = subDer.getData().getDerValue();
+@@ -293,7 +293,7 @@
+     // Code repetition, realm parsed again by class Realm
+     protected static String[] parseName(String name) {
+ 
+-        Vector<String> tempStrings = new Vector<>();
++        Vector<String> tempStrings = new Vector<String>();
+         String temp = name;
+         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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/Realm.java	2012-03-22 11:28:14.091882210 +0000
+@@ -359,14 +359,14 @@
+         }
+ 
+         String tempTarget = null, tempRealm = null;
+-        Stack<String> iStack = new Stack<>();
++        Stack<String> iStack = new Stack<String>();
+ 
+         /*
+          * The half-established reversed-path, starting from the final target
+          * (sRealm), each item can be connected to by the next one.
+          * Might contains wrong item, if found, a bad track is performed
+          */
+-        Vector<String> tempList = new Vector<>(8, 8);
++        Vector<String> tempList = new Vector<String>(8, 8);
+         tempList.add(sRealm);
+ 
+         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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/provider/certpath/DistributionPointFetcher.java	2012-03-22 11:28:14.091882210 +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
+             // between the delegated self-issued certificate and its issuer.
+-            Set<TrustAnchor> newTrustAnchors = new HashSet<>(trustAnchors);
++            Set<TrustAnchor> newTrustAnchors = new HashSet<TrustAnchor>(trustAnchors);
+ 
+             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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/provider/JavaKeyStore.java	2012-03-22 11:28:14.091882210 +0000
 @@ -683,7 +683,7 @@
                      // Read the certificate chain
                      int numOfCerts = dis.readInt();
@@ -4222,8 +4466,9 @@
                                  numOfCerts > 10 ? 10 : numOfCerts);
                          for (int j = 0; j < numOfCerts; j++) {
                              if (xVersion == 2) {
---- openjdk-boot/jdk/src/share/classes/sun/security/provider/PolicyFile.java.orig
-+++ openjdk-boot/jdk/src/share/classes/sun/security/provider/PolicyFile.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/provider/PolicyFile.java	2012-03-22 11:28:14.091882210 +0000
 @@ -299,7 +299,7 @@
      private static final int DEFAULT_CACHE_SIZE = 1;
  
@@ -4278,8 +4523,9 @@
                          i = 0;
                          while (i < certs.length) {
                              signerCerts.add(certs[i]);
---- openjdk-boot/jdk/src/share/classes/sun/security/provider/Sun.java.orig
-+++ openjdk-boot/jdk/src/share/classes/sun/security/provider/Sun.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/provider/Sun.java	2012-03-22 11:28:14.091882210 +0000
 @@ -55,7 +55,7 @@
              SunEntries.putEntries(this);
          } else {
@@ -4289,8 +4535,9 @@
              SunEntries.putEntries(map);
              AccessController.doPrivileged(new PutAllAction(this, map));
          }
---- openjdk-boot/jdk/src/share/classes/sun/security/provider/VerificationProvider.java.orig
-+++ openjdk-boot/jdk/src/share/classes/sun/security/provider/VerificationProvider.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/provider/VerificationProvider.java	2012-03-22 11:28:14.091882210 +0000
 @@ -76,7 +76,7 @@
              SunRsaSignEntries.putEntries(this);
          } else {
@@ -4300,8 +4547,9 @@
              SunEntries.putEntries(map);
              SunRsaSignEntries.putEntries(map);
              AccessController.doPrivileged(new PutAllAction(this, map));
---- openjdk-boot/jdk/src/share/classes/sun/security/provider/X509Factory.java.orig
-+++ openjdk-boot/jdk/src/share/classes/sun/security/provider/X509Factory.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/provider/X509Factory.java	2012-03-22 11:28:14.091882210 +0000
 @@ -409,10 +409,10 @@
          parseX509orPKCS7Cert(InputStream is)
          throws CertificateException, IOException
@@ -4346,19 +4594,9 @@
              }
          } catch (ParsingException e) {
              while (data != null) {
---- openjdk-boot/jdk/src/share/classes/sun/security/provider/certpath/DistributionPointFetcher.java.orig
-+++ openjdk-boot/jdk/src/share/classes/sun/security/provider/certpath/DistributionPointFetcher.java
-@@ -590,7 +590,7 @@
-             // Except the performance improvement, another benefit is to break
-             // the dead loop while looking for the issuer back and forth
-             // between the delegated self-issued certificate and its issuer.
--            Set<TrustAnchor> newTrustAnchors = new HashSet<>(trustAnchors);
-+            Set<TrustAnchor> newTrustAnchors = new HashSet<TrustAnchor>(trustAnchors);
- 
-             if (prevKey != null) {
-                 // Add the previous certificate as a trust anchor.
---- openjdk-boot/jdk/src/share/classes/sun/security/rsa/RSACore.java.orig
-+++ openjdk-boot/jdk/src/share/classes/sun/security/rsa/RSACore.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/rsa/RSACore.java	2012-03-22 11:28:14.091882210 +0000
 @@ -219,7 +219,7 @@
      // use a weak hashmap so that cached values are automatically cleared
      // when the modulus is GC'ed
@@ -4368,8 +4606,9 @@
  
      /**
       * Set of blinding parameters for a given RSA key.
---- openjdk-boot/jdk/src/share/classes/sun/security/rsa/SunRsaSign.java.orig
-+++ openjdk-boot/jdk/src/share/classes/sun/security/rsa/SunRsaSign.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/rsa/SunRsaSign.java	2012-03-22 11:28:14.091882210 +0000
 @@ -52,7 +52,7 @@
              SunRsaSignEntries.putEntries(this);
          } else {
@@ -4379,8 +4618,9 @@
              SunRsaSignEntries.putEntries(map);
              AccessController.doPrivileged(new PutAllAction(this, map));
          }
---- openjdk-boot/jdk/src/share/classes/sun/security/ssl/CipherSuite.java.orig
-+++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/CipherSuite.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/CipherSuite.java	2012-03-22 11:28:14.091882210 +0000
 @@ -393,7 +393,7 @@
  
          // Map BulkCipher -> Boolean(available)
@@ -4390,8 +4630,9 @@
  
          // descriptive name including key size, e.g. AES/128
          final String description;
---- openjdk-boot/jdk/src/share/classes/sun/security/ssl/ClientHandshaker.java.orig
-+++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/ClientHandshaker.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/ClientHandshaker.java	2012-03-22 11:28:14.091882210 +0000
 @@ -656,7 +656,7 @@
          if (certRequest != null) {
              X509ExtendedKeyManager km = sslContext.getX509KeyManager();
@@ -4401,7 +4642,7 @@
  
              for (int i = 0; i < certRequest.types.length; i++) {
                  String typeName;
-@@ -1175,7 +1175,7 @@
+@@ -1176,7 +1176,7 @@
                          "Can't reuse existing SSL client session");
                  }
  
@@ -4410,7 +4651,7 @@
                  cipherList.add(sessionSuite);
                  if (!secureRenegotiation &&
                          cipherSuites.contains(CipherSuite.C_SCSV)) {
-@@ -1193,7 +1193,7 @@
+@@ -1194,7 +1194,7 @@
          // exclude SCSV for secure renegotiation
          if (secureRenegotiation && cipherSuites.contains(CipherSuite.C_SCSV)) {
              Collection<CipherSuite> cipherList =
@@ -4419,8 +4660,9 @@
              for (CipherSuite suite : cipherSuites.collection()) {
                  if (suite != CipherSuite.C_SCSV) {
                      cipherList.add(suite);
---- openjdk-boot/jdk/src/share/classes/sun/security/ssl/HandshakeMessage.java.orig
-+++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/HandshakeMessage.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/HandshakeMessage.java	2012-03-22 11:28:14.091882210 +0000
 @@ -258,7 +258,7 @@
      // add server_name extension
      void addServerNameIndicationExtension(String hostname) {
@@ -4457,8 +4699,9 @@
  
      private static void digestKey(MessageDigest md, SecretKey key) {
          try {
---- openjdk-boot/jdk/src/share/classes/sun/security/ssl/Handshaker.java.orig
-+++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/Handshaker.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/Handshaker.java	2012-03-22 11:28:14.091882210 +0000
 @@ -569,7 +569,7 @@
                  activeProtocols = getActiveProtocols();
              }
@@ -4477,8 +4720,9 @@
              for (ProtocolVersion protocol : enabledProtocols.collection()) {
                  boolean found = false;
                  for (CipherSuite suite : enabledCipherSuites.collection()) {
---- openjdk-boot/jdk/src/share/classes/sun/security/ssl/HelloExtensions.java.orig
-+++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/HelloExtensions.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/HelloExtensions.java	2012-03-22 11:28:14.091882210 +0000
 @@ -169,7 +169,7 @@
          return name;
      }
@@ -4497,8 +4741,9 @@
          for (byte format : formats) {
              list.add(toString(format));
          }
---- openjdk-boot/jdk/src/share/classes/sun/security/ssl/ProtocolList.java.orig
-+++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/ProtocolList.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/ProtocolList.java	2012-03-22 11:28:14.091882210 +0000
 @@ -79,7 +79,7 @@
              throw new IllegalArgumentException("Protocols may not be null");
          }
@@ -4508,8 +4753,48 @@
          for (int i = 0; i < names.length; i++ ) {
              ProtocolVersion version = ProtocolVersion.valueOf(names[i]);
              if (versions.contains(version) == false) {
---- openjdk-boot/jdk/src/share/classes/sun/security/ssl/SSLAlgorithmConstraints.java.orig
-+++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/SSLAlgorithmConstraints.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/SignatureAndHashAlgorithm.java	2012-03-22 11:28:14.091882210 +0000
+@@ -156,7 +156,7 @@
+     static Collection<SignatureAndHashAlgorithm>
+             getSupportedAlgorithms(AlgorithmConstraints constraints) {
+ 
+-        Collection<SignatureAndHashAlgorithm> supported = new ArrayList<>();
++        Collection<SignatureAndHashAlgorithm> supported = new ArrayList<SignatureAndHashAlgorithm>();
+         synchronized (priorityMap) {
+             for (SignatureAndHashAlgorithm sigAlg : priorityMap.values()) {
+                 if (sigAlg.priority <= SUPPORTED_ALG_PRIORITY_MAX_NUM &&
+@@ -173,7 +173,7 @@
+     // Get supported algorithm collection from an untrusted collection
+     static Collection<SignatureAndHashAlgorithm> getSupportedAlgorithms(
+             Collection<SignatureAndHashAlgorithm> algorithms ) {
+-        Collection<SignatureAndHashAlgorithm> supported = new ArrayList<>();
++        Collection<SignatureAndHashAlgorithm> supported = new ArrayList<SignatureAndHashAlgorithm>();
+         for (SignatureAndHashAlgorithm sigAlg : algorithms) {
+             if (sigAlg.priority <= SUPPORTED_ALG_PRIORITY_MAX_NUM) {
+                 supported.add(sigAlg);
+@@ -185,7 +185,7 @@
+ 
+     static String[] getAlgorithmNames(
+             Collection<SignatureAndHashAlgorithm> algorithms) {
+-        ArrayList<String> algorithmNames = new ArrayList<>();
++        ArrayList<String> algorithmNames = new ArrayList<String>();
+         if (algorithms != null) {
+             for (SignatureAndHashAlgorithm sigAlg : algorithms) {
+                 algorithmNames.add(sigAlg.algorithm);
+@@ -198,7 +198,7 @@
+ 
+     static Set<String> getHashAlgorithmNames(
+             Collection<SignatureAndHashAlgorithm> algorithms) {
+-        Set<String> algorithmNames = new HashSet<>();
++        Set<String> algorithmNames = new HashSet<String>();
+         if (algorithms != null) {
+             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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/SSLAlgorithmConstraints.java	2012-03-22 11:28:14.095882275 +0000
 @@ -261,7 +261,7 @@
  
          protected Set<String> decomposes(KeyExchange keyExchange,
@@ -4555,8 +4840,9 @@
  
                      if(cipherSuite.keyExchange != null) {
                          components.addAll(
---- openjdk-boot/jdk/src/share/classes/sun/security/ssl/SSLContextImpl.java.orig
-+++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/SSLContextImpl.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/SSLContextImpl.java	2012-03-22 11:28:14.095882275 +0000
 @@ -325,7 +325,7 @@
          Collection<CipherSuite> allowedCipherSuites =
                                      CipherSuite.allowedCipherSuites();
@@ -4575,8 +4861,18 @@
              AccessController.doPrivileged(
                          new PrivilegedExceptionAction<Object>() {
                  public Object run() throws Exception {
---- openjdk-boot/jdk/src/share/classes/sun/security/ssl/SSLSessionImpl.java.orig
-+++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/SSLSessionImpl.java
+@@ -771,7 +771,7 @@
+     private final X509TrustManager tm;
+ 
+     // Cache the trusted certificate to optimize the performance.
+-    private final Collection<X509Certificate> trustedCerts = new HashSet<>();
++    private final Collection<X509Certificate> trustedCerts = new HashSet<X509Certificate>();
+ 
+     AbstractTrustManagerWrapper(X509TrustManager tm) {
+         this.tm = tm;
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/SSLSessionImpl.java	2012-03-22 11:28:14.095882275 +0000
 @@ -618,7 +618,7 @@
       * key and the calling security context. This is important since
       * sessions can be shared across different protection domains.
@@ -4595,8 +4891,9 @@
          SecureKey key;
          Object securityCtx = SecureKey.getCurrentSecurityContext();
  
---- openjdk-boot/jdk/src/share/classes/sun/security/ssl/SSLSocketImpl.java.orig
-+++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/SSLSocketImpl.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/SSLSocketImpl.java	2012-03-22 11:28:14.095882275 +0000
 @@ -2478,7 +2478,7 @@
              entrySet, HandshakeCompletedEvent e) {
  
@@ -4606,46 +4903,9 @@
              event = e;
          }
  
---- openjdk-boot/jdk/src/share/classes/sun/security/ssl/SignatureAndHashAlgorithm.java.orig
-+++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/SignatureAndHashAlgorithm.java
-@@ -153,7 +153,7 @@
-     static Collection<SignatureAndHashAlgorithm>
-             getSupportedAlgorithms(AlgorithmConstraints constraints) {
- 
--        Collection<SignatureAndHashAlgorithm> supported = new ArrayList<>();
-+        Collection<SignatureAndHashAlgorithm> supported = new ArrayList<SignatureAndHashAlgorithm>();
-         synchronized (priorityMap) {
-             for (SignatureAndHashAlgorithm sigAlg : priorityMap.values()) {
-                 if (sigAlg.priority <= SUPPORTED_ALG_PRIORITY_MAX_NUM &&
-@@ -170,7 +170,7 @@
-     // Get supported algorithm collection from an untrusted collection
-     static Collection<SignatureAndHashAlgorithm> getSupportedAlgorithms(
-             Collection<SignatureAndHashAlgorithm> algorithms ) {
--        Collection<SignatureAndHashAlgorithm> supported = new ArrayList<>();
-+        Collection<SignatureAndHashAlgorithm> supported = new ArrayList<SignatureAndHashAlgorithm>();
-         for (SignatureAndHashAlgorithm sigAlg : algorithms) {
-             if (sigAlg.priority <= SUPPORTED_ALG_PRIORITY_MAX_NUM) {
-                 supported.add(sigAlg);
-@@ -182,7 +182,7 @@
- 
-     static String[] getAlgorithmNames(
-             Collection<SignatureAndHashAlgorithm> algorithms) {
--        ArrayList<String> algorithmNames = new ArrayList<>();
-+        ArrayList<String> algorithmNames = new ArrayList<String>();
-         if (algorithms != null) {
-             for (SignatureAndHashAlgorithm sigAlg : algorithms) {
-                 algorithmNames.add(sigAlg.algorithm);
-@@ -195,7 +195,7 @@
- 
-     static Set<String> getHashAlgorithmNames(
-             Collection<SignatureAndHashAlgorithm> algorithms) {
--        Set<String> algorithmNames = new HashSet<>();
-+        Set<String> algorithmNames = new HashSet<String>();
-         if (algorithms != null) {
-             for (SignatureAndHashAlgorithm sigAlg : algorithms) {
-                 if (sigAlg.hash.value > 0) {
---- openjdk-boot/jdk/src/share/classes/sun/security/ssl/SunX509KeyManagerImpl.java.orig
-+++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/SunX509KeyManagerImpl.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/SunX509KeyManagerImpl.java	2012-03-22 11:28:14.095882275 +0000
 @@ -337,7 +337,7 @@
  
          X500Principal[] x500Issuers = (X500Principal[])issuers;
@@ -4664,8 +4924,9 @@
          for (int i = 0; i < principals.length; i++) {
              Principal p = principals[i];
              if (p instanceof X500Principal) {
---- openjdk-boot/jdk/src/share/classes/sun/security/ssl/TrustManagerFactoryImpl.java.orig
-+++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/TrustManagerFactoryImpl.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/TrustManagerFactoryImpl.java	2012-03-22 11:28:14.095882275 +0000
 @@ -134,7 +134,7 @@
          FileInputStream fis = null;
          String defaultTrustStoreType;
@@ -4675,8 +4936,9 @@
          final String sep = File.separator;
          KeyStore ks = null;
  
---- openjdk-boot/jdk/src/share/classes/sun/security/ssl/X509KeyManagerImpl.java.orig
-+++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/X509KeyManagerImpl.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/X509KeyManagerImpl.java	2012-03-22 11:28:14.095882275 +0000
 @@ -307,7 +307,7 @@
                  (keyTypes.length == 0) || (keyTypes[0] == null)) {
              return null;
@@ -4695,8 +4957,9 @@
          } else {
              return null;
          }
---- openjdk-boot/jdk/src/share/classes/sun/security/tools/JarSigner.java.orig
-+++ openjdk-boot/jdk/src/share/classes/sun/security/tools/JarSigner.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/tools/JarSigner.java	2012-03-22 11:28:14.095882275 +0000
 @@ -123,14 +123,14 @@
      boolean token = false; // token-based keystore
      String jarfile;  // jar files to sign or verify
@@ -4768,18 +5031,19 @@
  
      /**
       * Returns a string of singer info, with a newline at the end
-@@ -1600,7 +1600,7 @@
-                     }
-                 }
-             }
+@@ -1567,7 +1567,7 @@
+ 
+             certificateFactory = CertificateFactory.getInstance("X.509");
+             validator = CertPathValidator.getInstance("PKIX");
 -            Set<TrustAnchor> tas = new HashSet<>();
 +            Set<TrustAnchor> tas = new HashSet<TrustAnchor>();
              try {
                  KeyStore caks = KeyTool.getCacertsKeyStore();
                  if (caks != null) {
---- openjdk-boot/jdk/src/share/classes/sun/security/tools/KeyTool.java.orig
-+++ openjdk-boot/jdk/src/share/classes/sun/security/tools/KeyTool.java
-@@ -152,11 +152,11 @@
+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-03-22 11:18:05.210038112 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/tools/KeyTool.java	2012-03-22 11:28:14.095882275 +0000
+@@ -154,11 +154,11 @@
      private KeyStore caks = null; // "cacerts" keystore
      private char[] srcstorePass = null;
      private String srcstoretype = null;
@@ -4794,7 +5058,7 @@
  
      enum Command {
          CERTREQ("Generates.a.certificate.request",
-@@ -2089,7 +2089,7 @@
+@@ -2092,7 +2092,7 @@
       */
      public static List<CRL> readCRLsFromCert(X509Certificate cert)
              throws Exception {
@@ -4803,7 +5067,7 @@
          CRLDistributionPointsExtension ext =
                  X509CertImpl.toImpl(cert).getCRLDistributionPointsExtension();
          if (ext == null) return crls;
-@@ -2256,7 +2256,7 @@
+@@ -2259,7 +2259,7 @@
          if (jarfile != null) {
              JarFile jf = new JarFile(jarfile, true);
              Enumeration<JarEntry> entries = jf.entries();
@@ -4812,7 +5076,7 @@
              byte[] buffer = new byte[8192];
              int pos = 0;
              while (entries.hasMoreElements()) {
-@@ -3331,7 +3331,7 @@
+@@ -3359,7 +3359,7 @@
          }
  
          // start building chain
@@ -4821,7 +5085,7 @@
          if (buildChain((X509Certificate)certToVerify, chain, certs)) {
              Certificate[] newChain = new Certificate[chain.size()];
              // buildChain() returns chain with self-signed root-cert first and
-@@ -3857,7 +3857,7 @@
+@@ -3885,7 +3885,7 @@
                          break;
                      case 2:     // EKU
                          if(value != null) {
@@ -4830,7 +5094,7 @@
                              for (String s: value.split(",")) {
                                  int p = oneOf(s,
                                          "anyExtendedKeyUsage",
-@@ -3927,7 +3927,7 @@
+@@ -3955,7 +3955,7 @@
                          }
                          if(value != null) {
                              List<AccessDescription> accessDescriptions =
@@ -4839,7 +5103,7 @@
                              String[] ps = value.split(",");
                              for(String item: ps) {
                                  colonpos = item.indexOf(':');
-@@ -4211,7 +4211,7 @@
+@@ -4239,7 +4239,7 @@
      }
  
      public static <A,B> Pair<A,B> of(A a, B b) {
@@ -4848,8 +5112,9 @@
      }
  }
  
---- openjdk-boot/jdk/src/share/classes/sun/security/tools/policytool/PolicyTool.java.orig
-+++ openjdk-boot/jdk/src/share/classes/sun/security/tools/policytool/PolicyTool.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/tools/policytool/PolicyTool.java	2012-03-22 11:28:14.095882275 +0000
 @@ -643,7 +643,7 @@
          Class<?> pc = Class.forName(type, true,
                  Thread.currentThread().getContextClassLoader());
@@ -4886,8 +5151,9 @@
      public TaggedList(int i, boolean b) {
          super(i, b);
      }
---- openjdk-boot/jdk/src/share/classes/sun/tools/native2ascii/Main.java.orig
-+++ openjdk-boot/jdk/src/share/classes/sun/tools/native2ascii/Main.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/tools/native2ascii/Main.java	2012-03-22 11:28:14.095882275 +0000
 @@ -94,7 +94,7 @@
       * Run the converter
       */
@@ -4897,8 +5163,9 @@
          File outputFile = null;
          boolean createOutputFile = false;
  
---- openjdk-boot/jdk/src/share/classes/sun/util/locale/InternalLocaleBuilder.java.orig
-+++ openjdk-boot/jdk/src/share/classes/sun/util/locale/InternalLocaleBuilder.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/util/locale/InternalLocaleBuilder.java	2012-03-22 11:28:14.099882340 +0000
 @@ -113,7 +113,7 @@
          }
          // Use case insensitive string to prevent duplication
@@ -5012,8 +5279,9 @@
                      }
                      ukeywords.put(key, type);
                  }
---- openjdk-boot/jdk/src/share/classes/sun/util/locale/LanguageTag.java.orig
-+++ openjdk-boot/jdk/src/share/classes/sun/util/locale/LanguageTag.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/util/locale/LanguageTag.java	2012-03-22 11:28:14.099882340 +0000
 @@ -62,7 +62,7 @@
      // Map contains grandfathered tags and its preferred mappings from
      // http://www.ietf.org/rfc/rfc5646.txt
@@ -5068,8 +5336,9 @@
                      }
                      extensions.add(locextKey.toString() + SEP + ext.getValue());
                  }
---- openjdk-boot/jdk/src/share/classes/sun/util/locale/LocaleExtensions.java.orig
-+++ openjdk-boot/jdk/src/share/classes/sun/util/locale/LocaleExtensions.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/util/locale/LocaleExtensions.java	2012-03-22 11:28:14.099882340 +0000
 @@ -81,7 +81,7 @@
          }
  
@@ -5096,8 +5365,9 @@
                  for (Entry<CaseInsensitiveString, String> kwd : ukeywords.entrySet()) {
                      String key = LocaleUtils.toLowerString(kwd.getKey().value());
                      String type = LocaleUtils.toLowerString(kwd.getValue());
---- openjdk-boot/jdk/src/share/classes/sun/util/locale/LocaleObjectCache.java.orig
-+++ openjdk-boot/jdk/src/share/classes/sun/util/locale/LocaleObjectCache.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/util/locale/LocaleObjectCache.java	2012-03-22 11:28:14.099882340 +0000
 @@ -38,14 +38,14 @@
  
  public abstract class LocaleObjectCache<K, V> {
@@ -5122,8 +5392,8 @@
 -            CacheEntry<K, V> newEntry = new CacheEntry<>(key, newVal, queue);
 +            CacheEntry<K, V> newEntry = new CacheEntry<K,V>(key, newVal, queue);
  
-             while (value == null) {
-                 cleanStaleEntries();
+             entry = map.putIfAbsent(key, newEntry);
+             if (entry == null) {
 @@ -81,7 +81,7 @@
      }
  
@@ -5133,8 +5403,30 @@
          CacheEntry<K, V> oldEntry = map.put(key, entry);
          return (oldEntry == null) ? null : oldEntry.get();
      }
---- openjdk-boot/jdk/src/share/classes/sun/util/logging/PlatformLogger.java.orig
-+++ openjdk-boot/jdk/src/share/classes/sun/util/logging/PlatformLogger.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/util/LocaleServiceProviderPool.java	2012-03-22 11:28:14.099882340 +0000
+@@ -59,7 +59,7 @@
+      * set of provider implementations of a particular locale sensitive service.
+      */
+     private static ConcurrentMap<Class<? extends LocaleServiceProvider>, LocaleServiceProviderPool> poolOfPools =
+-        new ConcurrentHashMap<>();
++        new ConcurrentHashMap<Class<? extends LocaleServiceProvider>, LocaleServiceProviderPool>();
+ 
+     /**
+      * A Set containing locale service providers that implement the
+@@ -264,7 +264,7 @@
+             synchronized (LocaleServiceProviderPool.class) {
+                 if (availableJRELocales == null) {
+                     Locale[] allLocales = LocaleData.getAvailableLocales();
+-                    List<Locale> tmpList = new ArrayList<>(allLocales.length);
++                    List<Locale> tmpList = new ArrayList<Locale>(allLocales.length);
+                     for (Locale locale : allLocales) {
+                         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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/util/logging/PlatformLogger.java	2012-03-22 11:28:14.099882340 +0000
 @@ -113,7 +113,7 @@
  
      // Table of known loggers.  Maps names to PlatformLoggers.
@@ -5162,8 +5454,9 @@
  
          static {
              if (LoggingSupport.isAvailable()) {
---- openjdk-boot/jdk/src/share/demo/nio/zipfs/Demo.java.orig
-+++ openjdk-boot/jdk/src/share/demo/nio/zipfs/Demo.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/demo/nio/zipfs/Demo.java	2012-03-22 11:28:14.099882340 +0000
 @@ -160,7 +160,7 @@
          }
  
@@ -5197,8 +5490,9 @@
          openwrite.add(CREATE_NEW);
          openwrite.add(WRITE);
  
---- openjdk-boot/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipCoder.java.orig
-+++ openjdk-boot/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipCoder.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipCoder.java	2012-03-22 11:28:14.099882340 +0000
 @@ -142,8 +142,8 @@
          return new ZipCoder(Charset.defaultCharset());
      }
@@ -5210,8 +5504,9 @@
  
      private CharsetDecoder decoder() {
          CharsetDecoder dec = decTL.get();
---- openjdk-boot/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileAttributeView.java.orig
-+++ openjdk-boot/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileAttributeView.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileAttributeView.java	2012-03-22 11:28:14.099882340 +0000
 @@ -134,7 +134,7 @@
          throws IOException
      {
@@ -5221,8 +5516,9 @@
          if ("*".equals(attributes)) {
              for (AttrID id : AttrID.values()) {
                  try {
---- openjdk-boot/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileSystem.java.orig
-+++ openjdk-boot/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileSystem.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileSystem.java	2012-03-22 11:28:14.099882340 +0000
 @@ -157,7 +157,7 @@
  
      @Override
@@ -5322,8 +5618,9 @@
              IndexNode root = new IndexNode(ROOTPATH, -1);
              inodes.put(root, root);
              dirs.add(root);
---- openjdk-boot/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileSystemProvider.java.orig
-+++ openjdk-boot/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileSystemProvider.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileSystemProvider.java	2012-03-22 11:28:14.099882340 +0000
 @@ -62,7 +62,7 @@
  public class ZipFileSystemProvider extends FileSystemProvider {
  
@@ -5333,8 +5630,9 @@
  
      public ZipFileSystemProvider() {}
  
---- openjdk-boot/jdk/src/solaris/classes/java/lang/ProcessEnvironment.java.orig
-+++ openjdk-boot/jdk/src/solaris/classes/java/lang/ProcessEnvironment.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/solaris/classes/java/lang/ProcessEnvironment.java	2012-03-22 11:28:14.099882340 +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.
@@ -5344,8 +5642,9 @@
          // Read environment variables back to front,
          // so that earlier variables override later ones.
          for (int i = environ.length-1; i > 0; i-=2)
---- openjdk-boot/jdk/src/solaris/classes/java/util/prefs/FileSystemPreferences.java.orig
-+++ openjdk-boot/jdk/src/solaris/classes/java/util/prefs/FileSystemPreferences.java
+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-03-22 11:18:05.218038239 +0000
++++ openjdk-boot/jdk/src/solaris/classes/java/util/prefs/FileSystemPreferences.java	2012-03-22 11:28:14.099882340 +0000
 @@ -354,7 +354,7 @@
       * log against that map.  The resulting map is then written back
       * to the disk.
@@ -5409,8 +5708,9 @@
              replayChanges();
          }
          if (!changeLog.isEmpty()) {
---- openjdk-boot/jdk/src/solaris/classes/sun/net/dns/ResolverConfigurationImpl.java.orig
-+++ openjdk-boot/jdk/src/solaris/classes/sun/net/dns/ResolverConfigurationImpl.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/solaris/classes/sun/net/dns/ResolverConfigurationImpl.java	2012-03-22 11:28:14.099882340 +0000
 @@ -60,7 +60,7 @@
                                            int maxperkeyword,
                                            int maxkeywords)
@@ -5429,8 +5729,9 @@
          String domain = fallbackDomain0();
          if (domain != null && domain.length() > 0) {
              sl.add(domain);
---- openjdk-boot/jdk/src/solaris/classes/sun/nio/cs/ext/CompoundTextSupport.java.orig
-+++ openjdk-boot/jdk/src/solaris/classes/sun/nio/cs/ext/CompoundTextSupport.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/solaris/classes/sun/nio/cs/ext/CompoundTextSupport.java	2012-03-22 11:28:14.099882340 +0000
 @@ -153,12 +153,12 @@
  
      static {
@@ -5448,8 +5749,9 @@
  
          if (!(isEncodingSupported("US-ASCII") &&
                isEncodingSupported("ISO-8859-1")))
---- openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/LinuxFileSystem.java.orig
-+++ openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/LinuxFileSystem.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/LinuxFileSystem.java	2012-03-22 11:28:14.099882340 +0000
 @@ -53,7 +53,7 @@
          static final Set<String> supportedFileAttributeViews =
              supportedFileAttributeViews();
@@ -5468,8 +5770,9 @@
          try {
              long fp = setmntent(fstab.getBytes(), "r".getBytes());
              try {
---- openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/LinuxUserDefinedFileAttributeView.java.orig
-+++ openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/LinuxUserDefinedFileAttributeView.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/LinuxUserDefinedFileAttributeView.java	2012-03-22 11:28:14.099882340 +0000
 @@ -63,7 +63,7 @@
  
      // Parses buffer as array of NULL-terminated C strings.
@@ -5479,8 +5782,9 @@
          int start = 0;
          int pos = 0;
          while (pos < size) {
---- openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/SolarisAclFileAttributeView.java.orig
-+++ openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/SolarisAclFileAttributeView.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/SolarisAclFileAttributeView.java	2012-03-22 11:28:14.099882340 +0000
 @@ -198,7 +198,7 @@
       * Decode the buffer, returning an ACL
       */
@@ -5490,8 +5794,9 @@
          for (int i=0; i<n; i++) {
              long offset = address + i*SIZEOF_ACE_T;
  
---- openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/SolarisFileSystem.java.orig
-+++ openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/SolarisFileSystem.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/SolarisFileSystem.java	2012-03-22 11:28:14.099882340 +0000
 @@ -76,7 +76,7 @@
          static final Set<String> supportedFileAttributeViews =
              supportedFileAttributeViews();
@@ -5510,8 +5815,9 @@
          try {
              UnixPath mnttab = new UnixPath(this, "/etc/mnttab");
              long fp = fopen(mnttab, "r");
---- openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/SolarisUserDefinedFileAttributeView.java.orig
-+++ openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/SolarisUserDefinedFileAttributeView.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/SolarisUserDefinedFileAttributeView.java	2012-03-22 11:28:14.103882406 +0000
 @@ -83,7 +83,7 @@
                  }
  
@@ -5521,8 +5827,9 @@
                  try {
                      byte[] name;
                      while ((name = readdir(dp)) != null) {
---- openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/UnixFileAttributes.java.orig
-+++ openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/UnixFileAttributes.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/UnixFileAttributes.java	2012-03-22 11:28:14.103882406 +0000
 @@ -194,7 +194,7 @@
      @Override
      public Set<PosixFilePermission> permissions() {
@@ -5532,8 +5839,9 @@
  
          if ((bits & UnixConstants.S_IRUSR) > 0)
              perms.add(PosixFilePermission.OWNER_READ);
---- openjdk-boot/jdk/src/windows/classes/java/lang/ProcessEnvironment.java.orig
-+++ openjdk-boot/jdk/src/windows/classes/java/lang/ProcessEnvironment.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/windows/classes/java/lang/ProcessEnvironment.java	2012-03-22 11:28:14.103882406 +0000
 @@ -250,7 +250,8 @@
                                     envblock.substring(eql+1,end));
          }
@@ -5554,8 +5862,9 @@
          Collections.sort(list, entryComparator);
  
          StringBuilder sb = new StringBuilder(size()*30);
---- openjdk-boot/jdk/src/windows/classes/sun/net/dns/ResolverConfigurationImpl.java.orig
-+++ openjdk-boot/jdk/src/windows/classes/sun/net/dns/ResolverConfigurationImpl.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/windows/classes/sun/net/dns/ResolverConfigurationImpl.java	2012-03-22 11:28:14.103882406 +0000
 @@ -63,7 +63,7 @@
      // Parse string that consists of token delimited by space or commas
      // and return LinkedHashMap
@@ -5565,8 +5874,9 @@
  
          // comma and space are valid delimites
          StringTokenizer st = new StringTokenizer(str, ", ");
---- openjdk-boot/jdk/src/windows/classes/sun/nio/fs/WindowsFileSystem.java.orig
-+++ openjdk-boot/jdk/src/windows/classes/sun/nio/fs/WindowsFileSystem.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/windows/classes/sun/nio/fs/WindowsFileSystem.java	2012-03-22 11:28:14.103882406 +0000
 @@ -128,7 +128,7 @@
          }
  
@@ -5576,8 +5886,9 @@
          SecurityManager sm = System.getSecurityManager();
          for (int i = 0; i <= 25; i++) {  // 0->A, 1->B, 2->C...
              if ((drives & (1 << i)) != 0) {
---- openjdk-boot/jdk/src/windows/classes/sun/nio/fs/WindowsPath.java.orig
-+++ openjdk-boot/jdk/src/windows/classes/sun/nio/fs/WindowsPath.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/windows/classes/sun/nio/fs/WindowsPath.java	2012-03-22 11:28:14.103882406 +0000
 @@ -575,7 +575,7 @@
      // generate offset array
      private void initOffsets() {
@@ -5587,8 +5898,9 @@
              if (isEmpty()) {
                  // empty path considered to have one name element
                  list.add(0);
---- openjdk-boot/jdk/src/windows/classes/sun/nio/fs/WindowsSecurityDescriptor.java.orig
-+++ openjdk-boot/jdk/src/windows/classes/sun/nio/fs/WindowsSecurityDescriptor.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/windows/classes/sun/nio/fs/WindowsSecurityDescriptor.java	2012-03-22 11:28:14.103882406 +0000
 @@ -378,7 +378,7 @@
              AclInformation aclInfo = GetAclInformation(aclAddress);
              aceCount = aclInfo.aceCount();
@@ -5598,8 +5910,9 @@
  
          // decode each of the ACEs to AclEntry objects
          for (int i=0; i<aceCount; i++) {
---- openjdk-boot/jdk/src/windows/classes/sun/nio/fs/WindowsUserDefinedFileAttributeView.java.orig
-+++ openjdk-boot/jdk/src/windows/classes/sun/nio/fs/WindowsUserDefinedFileAttributeView.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/windows/classes/sun/nio/fs/WindowsUserDefinedFileAttributeView.java	2012-03-22 11:28:14.103882406 +0000
 @@ -65,7 +65,7 @@
  
      // enumerates the file streams using FindFirstStream/FindNextStream APIs.
@@ -5645,8 +5958,9 @@
              if (!followLinks)
                  opts.add(WindowsChannelFactory.OPEN_REPARSE_POINT);
              opts.add(CREATE);
---- openjdk-boot/jdk/test/java/io/Serializable/NPEProvoker/NPEProvoker.java.orig
-+++ openjdk-boot/jdk/test/java/io/Serializable/NPEProvoker/NPEProvoker.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/test/java/io/Serializable/NPEProvoker/NPEProvoker.java	2012-03-22 11:28:14.103882406 +0000
 @@ -56,7 +56,7 @@
      public static void main(String[] args) {
          System.err.println("\n Regression test for bug 6541870\n");
@@ -5656,19 +5970,9 @@
              list.add(new NPEProvoker());
              ByteArrayOutputStream baos = new ByteArrayOutputStream();
              ObjectOutputStream oos = new ObjectOutputStream(baos);
---- openjdk-boot/jdk/test/java/lang/instrument/ilib/Inject.java.orig
-+++ openjdk-boot/jdk/test/java/lang/instrument/ilib/Inject.java
-@@ -107,7 +107,7 @@
-     class IndexedInjector implements TrackerInjector {
-         int counter = 0;
-         int tracker;
--        List<Info> infoList = new ArrayList<>();
-+        List<Info> infoList = new ArrayList<Info>();
- 
-         public int stackSize(int currentSize) {
-             return currentSize + 1;
---- openjdk-boot/jdk/test/java/lang/instrument/ilib/InjectBytecodes.java.orig
-+++ openjdk-boot/jdk/test/java/lang/instrument/ilib/InjectBytecodes.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/test/java/lang/instrument/ilib/InjectBytecodes.java	2012-03-22 11:28:14.103882406 +0000
 @@ -50,7 +50,7 @@
      private final Injector[] after  = new Injector[256];
      private final String className;
@@ -5678,8 +5982,21 @@
  
      private int pos;
      private int newPos;
---- openjdk-boot/jdk/test/java/lang/reflect/Generics/TestPlainArrayNotGeneric.java.orig
-+++ openjdk-boot/jdk/test/java/lang/reflect/Generics/TestPlainArrayNotGeneric.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/test/java/lang/instrument/ilib/Inject.java	2012-03-22 11:28:14.103882406 +0000
+@@ -107,7 +107,7 @@
+     class IndexedInjector implements TrackerInjector {
+         int counter = 0;
+         int tracker;
+-        List<Info> infoList = new ArrayList<>();
++        List<Info> infoList = new ArrayList<Info>();
+ 
+         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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/test/java/lang/reflect/Generics/TestPlainArrayNotGeneric.java	2012-03-22 11:28:14.103882406 +0000
 @@ -103,7 +103,7 @@
          }
      }
@@ -5689,8 +6006,21 @@
  
      private static void check(Type t, String what) {
          if (t == null || !checking.add(t))
---- openjdk-boot/jdk/test/java/util/Random/DistinctSeeds.java.orig
-+++ openjdk-boot/jdk/test/java/util/Random/DistinctSeeds.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/test/java/util/logging/ClassLoaderLeakTest.java	2012-03-22 11:28:14.103882406 +0000
+@@ -89,7 +89,7 @@
+ 
+          MyClassLoader appClassLoader = new MyClassLoader(urls, "test0");
+          WeakReference<MyClassLoader> ref =
+-                 new WeakReference<>(appClassLoader);
++                 new WeakReference<MyClassLoader>(appClassLoader);
+ 
+ 
+          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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/test/java/util/Random/DistinctSeeds.java	2012-03-22 11:28:14.103882406 +0000
 @@ -59,7 +59,7 @@
              }
          }
@@ -5700,14 +6030,3 @@
          List<Thread> threads = new ArrayList<Thread>();
          for (int i = 0; i < threadCount; i++) {
              RandomCollector r = new RandomCollector();
---- openjdk-boot/jdk/test/java/util/logging/ClassLoaderLeakTest.java.orig
-+++ openjdk-boot/jdk/test/java/util/logging/ClassLoaderLeakTest.java
-@@ -89,7 +89,7 @@
- 
-          MyClassLoader appClassLoader = new MyClassLoader(urls, "test0");
-          WeakReference<MyClassLoader> ref =
--                 new WeakReference<>(appClassLoader);
-+                 new WeakReference<MyClassLoader>(appClassLoader);
- 
- 
-          Thread appThread = new Thread(appsThreadGroup, launcher, "AppThread-0");
--- a/patches/boot/ecj-multicatch.patch	Fri Mar 23 22:39:35 2012 +0100
+++ b/patches/boot/ecj-multicatch.patch	Mon Mar 26 19:33:38 2012 +0200
@@ -130,3 +130,49 @@
                  throw new AssertionError(x);
              }
          }
+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
+@@ -94,7 +94,7 @@
+                         && mainClass.indexOf(arg.getProcessSubstring()) != -1) {
+                             pids.add(vmd.id());
+                     }
+-                } catch (MonitorException|URISyntaxException e) {
++                } catch (MonitorException e) {
+                     if (e.getMessage() != null) {
+                         System.err.println(e.getMessage());
+                     } else {
+@@ -105,7 +105,18 @@
+                             e.printStackTrace();
+                         }
+                     }
+-                }
++                } catch (URISyntaxException e) {
++                    if (e.getMessage() != null) {
++                        System.err.println(e.getMessage());
++                    } else {
++                        Throwable cause = e.getCause();
++                        if ((cause != null) && (cause.getMessage() != null)) {
++                            System.err.println(cause.getMessage());
++                        } else {
++                            e.printStackTrace();
++                        }
++                    }
++		}
+             }
+             if (pids.isEmpty()) {
+                 System.err.println("Could not find any processes matching : '"
+@@ -185,9 +196,11 @@
+         try {
+             String mainClass = getMainClass(vmd);
+             return mainClass != null && mainClass.equals(JCmd.class.getName());
+-        } catch (URISyntaxException|MonitorException ex) {
++        } catch (URISyntaxException ex) {
+             return false;
+-        }
++        } catch (MonitorException ex) {
++	    return false;
++	}
+     }
+ 
+     private static String getMainClass(VirtualMachineDescriptor vmd)
--- a/patches/boot/ecj-trywithresources.patch	Fri Mar 23 22:39:35 2012 +0100
+++ b/patches/boot/ecj-trywithresources.patch	Mon Mar 26 19:33:38 2012 +0200
@@ -1,5 +1,6 @@
---- openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/BandStructure.java.orig
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/BandStructure.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/BandStructure.java	2012-03-22 11:12:25.868603481 +0000
 @@ -743,7 +743,9 @@
  
          private void dumpBand() throws IOException {
@@ -52,9 +53,10 @@
          }
  
          public void readDataFrom(InputStream in) throws IOException {
---- openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java.orig
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java
-@@ -149,8 +149,13 @@
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java	2012-03-22 11:12:25.876603609 +0000
+@@ -151,8 +151,13 @@
                  if ("--config-file=".equals(state)) {
                      String propFile = av.remove(0);
                      Properties fileProps = new Properties();
@@ -69,7 +71,7 @@
                      }
                      if (engProps.get(verboseProp) != null)
                          fileProps.list(System.out);
-@@ -341,9 +346,14 @@
+@@ -348,9 +353,14 @@
                  else
                      fileOut = new FileOutputStream(outfile);
                  fileOut = new BufferedOutputStream(fileOut);
@@ -85,7 +87,7 @@
                  }
                  // At this point, we have a good jarfile (or newfile, if -r)
              }
-@@ -404,7 +414,9 @@
+@@ -411,7 +421,9 @@
          long filelen = new File(jarfile).length();
          if (filelen <= 0)  return "";
          long skiplen = Math.max(0, filelen - tail.length);
@@ -96,7 +98,7 @@
              in.skip(skiplen);
              in.read(tail);
              for (int i = tail.length-4; i >= 0; i--) {
-@@ -418,6 +430,9 @@
+@@ -425,6 +437,9 @@
                  }
              }
              return "";
@@ -106,8 +108,9 @@
          }
      }
  
---- openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/NativeUnpack.java.orig
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/NativeUnpack.java
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/NativeUnpack.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/NativeUnpack.java
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/NativeUnpack.java	2012-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/NativeUnpack.java	2012-03-22 11:12:25.876603609 +0000
 @@ -241,9 +241,15 @@
      void run(File inFile, JarOutputStream jstream) throws IOException {
          // %%% maybe memory-map the file, and pass it straight into unpacker
@@ -125,8 +128,9 @@
          // Note:  caller is responsible to finish with jstream.
      }
  
---- openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageReader.java.orig
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageReader.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageReader.java	2012-03-22 11:12:25.876603609 +0000
 @@ -540,9 +540,15 @@
              Index index = initCPIndex(tag, cpMap);
  
@@ -169,8 +173,9 @@
          attr_definition_headers.doneDisbursing();
          attr_definition_name.doneDisbursing();
          attr_definition_layout.doneDisbursing();
---- openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageWriter.java.orig
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageWriter.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageWriter.java	2012-03-22 11:12:25.876603609 +0000
 @@ -458,9 +458,15 @@
                  Utils.log.info("Writing "+cpMap.length+" "+ConstantPool.tagName(tag)+" entries...");
  
@@ -213,8 +218,9 @@
      }
  
      void writeAttrCounts() throws IOException {
---- openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PropMap.java.orig
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PropMap.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PropMap.java	2012-03-22 11:12:25.876603609 +0000
 @@ -122,8 +122,9 @@
          // Do this after the previous props are put in place,
          // to allow override if necessary.
@@ -242,8 +248,9 @@
  
          for (Map.Entry<Object, Object> e : props.entrySet()) {
              String key = (String) e.getKey();
---- openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/UnpackerImpl.java.orig
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/UnpackerImpl.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/UnpackerImpl.java	2012-03-22 11:12:25.876603609 +0000
 @@ -160,9 +160,15 @@
          }
          // Use the stream-based implementation.
@@ -261,8 +268,9 @@
          if (props.getBoolean(Utils.UNPACK_REMOVE_PACKFILE)) {
              in.delete();
          }
---- openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Utils.java.orig
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Utils.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Utils.java	2012-03-22 11:12:25.876603609 +0000
 @@ -268,18 +268,30 @@
          // 4947205 : Peformance is slow when using pack-effort=0
          out = new BufferedOutputStream(out);
@@ -296,8 +304,9 @@
      }
          // Wrapper to prevent closing of client-supplied stream.
      static private
---- openjdk-boot/jdk/src/share/classes/java/lang/Package.java.orig
-+++ openjdk-boot/jdk/src/share/classes/java/lang/Package.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/lang/Package.java	2012-03-22 11:12:25.876603609 +0000
 @@ -575,12 +575,23 @@
       * Returns the Manifest for the specified JAR file name.
       */
@@ -325,8 +334,9 @@
          }
      }
  
---- openjdk-boot/jdk/src/share/classes/java/nio/channels/SocketChannel.java.orig
-+++ openjdk-boot/jdk/src/share/classes/java/nio/channels/SocketChannel.java
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/nio/channels/SocketChannel.java openjdk-boot/jdk/src/share/classes/java/nio/channels/SocketChannel.java
+--- openjdk-boot.orig/jdk/src/share/classes/java/nio/channels/SocketChannel.java	2012-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/nio/channels/SocketChannel.java	2012-03-22 11:12:25.876603609 +0000
 @@ -188,7 +188,7 @@
              } catch (Throwable suppressed) {
                  x.addSuppressed(suppressed);
@@ -336,8 +346,9 @@
          }
          assert sc.isConnected();
          return sc;
---- openjdk-boot/jdk/src/share/classes/java/nio/file/CopyMoveHelper.java.orig
-+++ openjdk-boot/jdk/src/share/classes/java/nio/file/CopyMoveHelper.java
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/nio/file/CopyMoveHelper.java openjdk-boot/jdk/src/share/classes/java/nio/file/CopyMoveHelper.java
+--- openjdk-boot.orig/jdk/src/share/classes/java/nio/file/CopyMoveHelper.java	2012-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/nio/file/CopyMoveHelper.java	2012-03-22 11:12:25.876603609 +0000
 @@ -122,9 +122,15 @@
          if (attrs.isDirectory()) {
              Files.createDirectory(target);
@@ -364,8 +375,9 @@
              }
          }
      }
---- openjdk-boot/jdk/src/share/classes/java/nio/file/Files.java.orig
-+++ openjdk-boot/jdk/src/share/classes/java/nio/file/Files.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/nio/file/Files.java	2012-03-22 11:12:25.876603609 +0000
 @@ -2833,8 +2833,11 @@
          }
  
@@ -478,8 +490,9 @@
          return path;
      }
  }
---- openjdk-boot/jdk/src/share/classes/java/util/Currency.java.orig
-+++ openjdk-boot/jdk/src/share/classes/java/util/Currency.java
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/Currency.java openjdk-boot/jdk/src/share/classes/java/util/Currency.java
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/Currency.java	2012-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/Currency.java	2012-03-22 11:12:25.876603609 +0000
 @@ -233,9 +233,14 @@
                                               "currency.properties");
                      if (propFile.exists()) {
@@ -496,8 +509,9 @@
                          Set<String> keys = props.stringPropertyNames();
                          Pattern propertiesPattern =
                              Pattern.compile("([A-Z]{3})\\s*,\\s*(\\d{3})\\s*,\\s*([0-3])");
---- openjdk-boot/jdk/src/share/classes/java/util/jar/JarFile.java.orig
-+++ openjdk-boot/jdk/src/share/classes/java/util/jar/JarFile.java
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/jar/JarFile.java openjdk-boot/jdk/src/share/classes/java/util/jar/JarFile.java
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/jar/JarFile.java	2012-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/jar/JarFile.java	2012-03-22 11:12:25.876603609 +0000
 @@ -376,9 +376,15 @@
       */
      private byte[] getBytes(ZipEntry ze) throws IOException {
@@ -534,8 +548,9 @@
                  int last = b.length - src.length;
                  int i = 0;
                  next:
---- openjdk-boot/jdk/src/share/classes/javax/sql/rowset/serial/SerialClob.java.orig
-+++ openjdk-boot/jdk/src/share/classes/javax/sql/rowset/serial/SerialClob.java
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/javax/sql/rowset/serial/SerialClob.java openjdk-boot/jdk/src/share/classes/javax/sql/rowset/serial/SerialClob.java
+--- openjdk-boot.orig/jdk/src/share/classes/javax/sql/rowset/serial/SerialClob.java	2012-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/javax/sql/rowset/serial/SerialClob.java	2012-03-22 11:12:25.880603673 +0000
 @@ -144,8 +144,9 @@
          buf = new char[(int)len];
          int read = 0;
@@ -594,8 +609,9 @@
          origLen = len;
      }
  
---- openjdk-boot/jdk/src/share/classes/javax/sql/rowset/spi/SyncFactory.java.orig
-+++ openjdk-boot/jdk/src/share/classes/javax/sql/rowset/spi/SyncFactory.java
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/javax/sql/rowset/spi/SyncFactory.java openjdk-boot/jdk/src/share/classes/javax/sql/rowset/spi/SyncFactory.java
+--- openjdk-boot.orig/jdk/src/share/classes/javax/sql/rowset/spi/SyncFactory.java	2012-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/javax/sql/rowset/spi/SyncFactory.java	2012-03-22 11:12:25.880603673 +0000
 @@ -367,9 +367,15 @@
                      // Load user's implementation of SyncProvider
                      // here. -Drowset.properties=/abc/def/pqr.txt
@@ -637,8 +653,9 @@
                  }
  
                  parseProperties(properties);
---- openjdk-boot/jdk/src/share/classes/sun/net/www/protocol/jar/URLJarFile.java.orig
-+++ openjdk-boot/jdk/src/share/classes/sun/net/www/protocol/jar/URLJarFile.java
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/net/www/protocol/jar/URLJarFile.java openjdk-boot/jdk/src/share/classes/sun/net/www/protocol/jar/URLJarFile.java
+--- openjdk-boot.orig/jdk/src/share/classes/sun/net/www/protocol/jar/URLJarFile.java	2012-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/net/www/protocol/jar/URLJarFile.java	2012-03-22 11:12:25.880603673 +0000
 @@ -194,7 +194,8 @@
       * Given a URL, retrieves a JAR file, caches it to disk, and creates a
       * cached JAR file object.
@@ -671,8 +688,9 @@
                              }
                          }
                      });
---- openjdk-boot/jdk/src/share/classes/sun/nio/fs/PollingWatchService.java.orig
-+++ openjdk-boot/jdk/src/share/classes/sun/nio/fs/PollingWatchService.java
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/nio/fs/PollingWatchService.java openjdk-boot/jdk/src/share/classes/sun/nio/fs/PollingWatchService.java
+--- openjdk-boot.orig/jdk/src/share/classes/sun/nio/fs/PollingWatchService.java	2012-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/nio/fs/PollingWatchService.java	2012-03-22 11:12:25.880603673 +0000
 @@ -255,7 +255,9 @@
              this.entries = new HashMap<Path,CacheEntry>();
  
@@ -695,8 +713,9 @@
              }
          }
  
---- openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/ktab/KeyTab.java.orig
-+++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/ktab/KeyTab.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/ktab/KeyTab.java	2012-03-22 11:12:25.880603673 +0000
 @@ -92,9 +92,13 @@
          tabName = filename;
          try {
@@ -764,8 +783,9 @@
          }
      }
  }
---- openjdk-boot/jdk/src/share/classes/sun/security/provider/SeedGenerator.java.orig
-+++ openjdk-boot/jdk/src/share/classes/sun/security/provider/SeedGenerator.java
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/provider/SeedGenerator.java openjdk-boot/jdk/src/share/classes/sun/security/provider/SeedGenerator.java
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/provider/SeedGenerator.java	2012-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/provider/SeedGenerator.java	2012-03-22 11:12:25.880603673 +0000
 @@ -179,7 +179,9 @@
                          // The temporary dir
                          File f = new File(p.getProperty("java.io.tmpdir"));
@@ -788,8 +808,86 @@
                          }
                      } catch (Exception ex) {
                          md.update((byte)ex.hashCode());
---- openjdk-boot/jdk/src/share/classes/sun/util/calendar/LocalGregorianCalendar.java.orig
-+++ openjdk-boot/jdk/src/share/classes/sun/util/calendar/LocalGregorianCalendar.java
+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-03-21 23:42:03.534014791 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/tools/KeyTool.java	2012-03-22 12:45:19.286744673 +0000
+@@ -1149,9 +1149,14 @@
+                 } else {
+                     ByteArrayOutputStream bout = new ByteArrayOutputStream();
+                     keyStore.store(bout, pass);
+-                    try (FileOutputStream fout = new FileOutputStream(ksfname)) {
++		    FileOutputStream fout = null;
++                    try {
++			fout = new FileOutputStream(ksfname);
+                         fout.write(bout.toByteArray());
+-                    }
++		    } finally {
++			if (fout != null)
++			    fout.close();
++		    }
+                 }
+             }
+         }
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/tools/jcmd/Arguments.java openjdk-boot/jdk/src/share/classes/sun/tools/jcmd/Arguments.java
+--- openjdk-boot.orig/jdk/src/share/classes/sun/tools/jcmd/Arguments.java	2012-03-22 06:00:16.274401878 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/tools/jcmd/Arguments.java	2012-03-22 09:57:58.951418314 +0000
+@@ -99,14 +99,19 @@
+     }
+ 
+     private void readCommandFile(String path) throws IOException {
+-        try (BufferedReader bf = new BufferedReader(new FileReader(path));) {
+-                StringBuilder sb = new StringBuilder();
+-                String s;
+-                while ((s = bf.readLine()) != null) {
+-                    sb.append(s).append("\n");
+-                }
+-                command = sb.toString();
+-            }
++	BufferedReader bf = null;
++        try {
++	    bf = new BufferedReader(new FileReader(path));
++	    StringBuilder sb = new StringBuilder();
++	    String s;
++	    while ((s = bf.readLine()) != null) {
++		sb.append(s).append("\n");
++	    }
++	    command = sb.toString();
++	} finally {
++	    if (bf != null)
++		bf.close();
++	}
+     }
+ 
+     public static void usage() {
+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 06:00:16.249674555 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/tools/jcmd/JCmd.java	2012-03-22 09:59:25.594209042 +0000
+@@ -142,7 +142,9 @@
+         // Cast to HotSpotVirtualMachine as this is an
+         // implementation specific method.
+         HotSpotVirtualMachine hvm = (HotSpotVirtualMachine) vm;
+-        try (InputStream in = hvm.executeJCmd(command);) {
++	InputStream in = null;
++        try {
++	    in = hvm.executeJCmd(command);
+             // read to EOF and just print output
+             byte b[] = new byte[256];
+             int n;
+@@ -153,7 +155,10 @@
+                     System.out.print(s);
+                 }
+             } while (n > 0);
+-        }
++        } finally {
++	    if (in != null)
++		in.close();
++	}
+         vm.detach();
+     }
+ 
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/util/calendar/LocalGregorianCalendar.java openjdk-boot/jdk/src/share/classes/sun/util/calendar/LocalGregorianCalendar.java
+--- openjdk-boot.orig/jdk/src/share/classes/sun/util/calendar/LocalGregorianCalendar.java	2012-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/util/calendar/LocalGregorianCalendar.java	2012-03-22 11:12:25.880603673 +0000
 @@ -127,9 +127,15 @@
              calendarProps = (Properties) AccessController.doPrivileged(new PrivilegedExceptionAction() {
                  public Object run() throws IOException {
@@ -807,8 +905,9 @@
                      return props;
                  }
              });
---- openjdk-boot/jdk/src/share/demo/jfc/Font2DTest/RangeMenu.java.orig
-+++ openjdk-boot/jdk/src/share/demo/jfc/Font2DTest/RangeMenu.java
+diff -Nru openjdk-boot.orig/jdk/src/share/demo/jfc/Font2DTest/RangeMenu.java openjdk-boot/jdk/src/share/demo/jfc/Font2DTest/RangeMenu.java
+--- openjdk-boot.orig/jdk/src/share/demo/jfc/Font2DTest/RangeMenu.java	2012-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/share/demo/jfc/Font2DTest/RangeMenu.java	2012-03-22 11:12:25.880603673 +0000
 @@ -200,7 +200,7 @@
      }
  
@@ -818,8 +917,9 @@
          ranges.add(0);
          Character.UnicodeBlock currentBlock = Character.UnicodeBlock.of(0);
          for (int cp = 0x000001; cp < 0x110000; cp++ ) {
---- openjdk-boot/jdk/src/solaris/classes/java/util/prefs/FileSystemPreferences.java.orig
-+++ openjdk-boot/jdk/src/solaris/classes/java/util/prefs/FileSystemPreferences.java
+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-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/solaris/classes/java/util/prefs/FileSystemPreferences.java	2012-03-22 11:12:25.880603673 +0000
 @@ -569,11 +569,11 @@
                  public Void run() throws BackingStoreException {
                      Map<String, String> m = new TreeMap<>();
@@ -882,8 +982,9 @@
                      return null;
                  }
              });
---- openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/UnixFileStore.java.orig
-+++ openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/UnixFileStore.java
+diff -Nru openjdk-boot.orig/jdk/src/solaris/classes/sun/nio/fs/UnixFileStore.java openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/UnixFileStore.java
+--- openjdk-boot.orig/jdk/src/solaris/classes/sun/nio/fs/UnixFileStore.java	2012-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/UnixFileStore.java	2012-03-22 11:12:25.880603673 +0000
 @@ -255,9 +255,16 @@
          String fstypes = System.getProperty("java.home") + "/lib/fstypes.properties";
          Path file = Paths.get(fstypes);
--- a/patches/boot/hotspot-jdk-dependency.patch	Fri Mar 23 22:39:35 2012 +0100
+++ b/patches/boot/hotspot-jdk-dependency.patch	Mon Mar 26 19:33:38 2012 +0200
@@ -1,20 +1,18 @@
 diff -Nru openjdk-boot.orig/hotspot/make/linux/makefiles/sa.make openjdk-boot/hotspot/make/linux/makefiles/sa.make
---- openjdk-boot.orig/hotspot/make/linux/makefiles/sa.make	2011-03-14 17:45:38.000000000 +0000
-+++ openjdk-boot/hotspot/make/linux/makefiles/sa.make	2011-03-14 19:28:26.633153480 +0000
-@@ -97,8 +97,8 @@
- 	$(foreach file,$(AGENT_FILES1),$(shell echo $(file) >> $(AGENT_FILES1_LIST)))
- 	$(foreach file,$(AGENT_FILES2),$(shell echo $(file) >> $(AGENT_FILES2_LIST)))
- 	
--	$(QUIETLY) $(REMOTE) $(COMPILE.JAVAC) -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -d $(SA_CLASSDIR) @$(AGENT_FILES1_LIST)
--	$(QUIETLY) $(REMOTE) $(COMPILE.JAVAC) -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -d $(SA_CLASSDIR) @$(AGENT_FILES2_LIST)
-+	$(QUIETLY) $(REMOTE) $(COMPILE.JAVAC) -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR):$(JDK_TOPDIR)/src/share/classes:$(JDK_TOPDIR)/src/solaris/classes:$(GENSRCDIR) -d $(SA_CLASSDIR) @$(AGENT_FILES1_LIST)
-+	$(QUIETLY) $(REMOTE) $(COMPILE.JAVAC) -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR):$(JDK_TOPDIR)/src/share/classes:$(JDK_TOPDIR)/src/solaris/classes:$(GENSRCDIR) -d $(SA_CLASSDIR) @$(AGENT_FILES2_LIST)
- 	
+--- openjdk-boot.orig/hotspot/make/linux/makefiles/sa.make	2012-03-19 00:51:21.849858323 +0000
++++ openjdk-boot/hotspot/make/linux/makefiles/sa.make	2012-03-19 12:29:05.891038498 +0000
+@@ -91,7 +91,7 @@
+ # are in AGENT_FILES, so use the shell to expand them.
+ # Be extra carefull to not produce too long command lines in the shell!
+ 	$(foreach file,$(AGENT_FILES),$(shell ls -1 $(file) >> $(AGENT_FILES_LIST)))
+-	$(QUIETLY) $(REMOTE) $(COMPILE.JAVAC) -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -d $(SA_CLASSDIR) @$(AGENT_FILES_LIST)
++	$(QUIETLY) $(REMOTE) $(COMPILE.JAVAC) -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR):$(JDK_TOPDIR)/src/share/classes:$(JDK_TOPDIR)/src/solaris/classes:$(GENSRCDIR) -d $(SA_CLASSDIR) @$(AGENT_FILES_LIST)
  	$(QUIETLY) $(REMOTE) $(COMPILE.RMIC)  -classpath $(SA_CLASSDIR) -d $(SA_CLASSDIR) sun.jvm.hotspot.debugger.remote.RemoteDebuggerServer
  	$(QUIETLY) echo "$(SA_BUILD_VERSION_PROP)" > $(SA_PROPERTIES)
+ 	$(QUIETLY) rm -f $(SA_CLASSDIR)/sun/jvm/hotspot/utilities/soql/sa.js
 diff -Nru openjdk-boot.orig/make/hotspot-rules.gmk openjdk-boot/make/hotspot-rules.gmk
---- openjdk-boot.orig/make/hotspot-rules.gmk	2011-03-14 19:26:01.289492705 +0000
-+++ openjdk-boot/make/hotspot-rules.gmk	2011-03-14 19:26:34.640496978 +0000
+--- openjdk-boot.orig/make/hotspot-rules.gmk	2012-02-15 17:07:58.000000000 +0000
++++ openjdk-boot/make/hotspot-rules.gmk	2012-03-19 12:28:07.850089852 +0000
 @@ -83,6 +83,7 @@
  HOTSPOT_BUILD_ARGUMENTS += $(COMMON_BUILD_ARGUMENTS)
  HOTSPOT_BUILD_ARGUMENTS += ALT_OUTPUTDIR=$(HOTSPOT_OUTPUTDIR)
--- a/patches/boot/pr39408.patch	Fri Mar 23 22:39:35 2012 +0100
+++ b/patches/boot/pr39408.patch	Mon Mar 26 19:33:38 2012 +0200
@@ -1,9 +1,9 @@
 diff -Nru openjdk.orig/jdk/src/solaris/native/sun/nio/ch/FileDispatcherImpl.c openjdk/jdk/src/solaris/native/sun/nio/ch/FileDispatcherImpl.c
---- openjdk-boot.orig/jdk/src/solaris/native/sun/nio/ch/FileDispatcherImpl.c	2009-03-18 16:25:52.000000000 +0000
-+++ openjdk-boot/jdk/src/solaris/native/sun/nio/ch/FileDispatcherImpl.c	2009-03-18 16:27:03.000000000 +0000
-@@ -36,6 +36,14 @@
- #include "nio.h"
- #include "nio_util.h"
+--- openjdk-boot.orig/jdk/src/solaris/native/sun/nio/ch/FileDispatcherImpl.c	2012-03-21 17:09:55.000000000 +0000
++++ openjdk-boot/jdk/src/solaris/native/sun/nio/ch/FileDispatcherImpl.c	2012-03-23 10:31:52.798787906 +0000
+@@ -55,6 +55,14 @@
+ static int preCloseFD = -1;     /* File descriptor to which we dup other fd's
+                                    before closing them for real */
  
 +#undef sun_nio_ch_FileDispatcher_NO_LOCK
 +#define sun_nio_ch_FileDispatcher_NO_LOCK -1L
@@ -14,5 +14,5 @@
 +#undef sun_nio_ch_FileDispatcher_INTERRUPTED
 +#define sun_nio_ch_FileDispatcher_INTERRUPTED 2L
  
- static int preCloseFD = -1;     /* File descriptor to which we dup other fd's
-                                    before closing them for real */
+ JNIEXPORT void JNICALL
+ Java_sun_nio_ch_FileDispatcherImpl_init(JNIEnv *env, jclass cl)
--- a/patches/cacao/launcher.patch	Fri Mar 23 22:39:35 2012 +0100
+++ b/patches/cacao/launcher.patch	Mon Mar 26 19:33:38 2012 +0200
@@ -1,7 +1,8 @@
---- openjdk/jdk/make/docs/Makefile.orig	2010-08-27 20:01:53.000000000 +0200
-+++ openjdk/jdk/make/docs/Makefile	2010-09-07 12:56:00.309691118 +0200
-@@ -70,7 +70,7 @@
- ifeq ($(ARCH_DATA_MODEL),64)
+diff -Nru openjdk.orig/jdk/make/docs/Makefile openjdk/jdk/make/docs/Makefile
+--- openjdk.orig/jdk/make/docs/Makefile	2012-03-21 17:09:55.000000000 +0000
++++ openjdk/jdk/make/docs/Makefile	2012-03-23 00:46:49.461847958 +0000
+@@ -73,7 +73,7 @@
+ else ifeq ($(ARCH),universal)
    MAX_VM_MEMORY = 1024
  else
 -  MAX_VM_MEMORY = 512
@@ -9,18 +10,19 @@
  endif
  
  # List of all possible directories for javadoc to look for sources
---- openjdk/jdk/src/share/bin/java.c.orig	2010-09-07 05:24:49.307192201 +0200
-+++ openjdk/jdk/src/share/bin/java.c	2010-09-07 12:56:00.309691118 +0200
-@@ -174,6 +174,8 @@
-   InvocationFunctions ifn;
- } JavaMainArgs;
+diff -Nru openjdk.orig/jdk/src/share/bin/java.c openjdk/jdk/src/share/bin/java.c
+--- openjdk.orig/jdk/src/share/bin/java.c	2012-03-21 17:09:55.000000000 +0000
++++ openjdk/jdk/src/share/bin/java.c	2012-03-23 00:46:49.461847958 +0000
+@@ -164,6 +164,8 @@
+ static jlong maxHeapSize        = 0;  /* max heap size */
+ static jlong initialHeapSize    = 0;  /* inital heap size */
  
 +#define JNI_VERSION_CACAO 0xcaca0000
 +
  /*
   * Entry point.
   */
-@@ -1923,6 +1925,8 @@
+@@ -1848,6 +1850,8 @@
  
      { /* Create a new thread to create JVM and invoke main method */
        JavaMainArgs args;
@@ -29,7 +31,7 @@
        int rslt;
  
        args.argc = argc;
-@@ -1931,7 +1935,17 @@
+@@ -1856,7 +1860,17 @@
        args.what = what;
        args.ifn = *ifn;
  
--- a/patches/rhino.patch	Fri Mar 23 22:39:35 2012 +0100
+++ b/patches/rhino.patch	Mon Mar 26 19:33:38 2012 +0200
@@ -1,18 +1,7 @@
-diff -up openjdk/jdk/make/common/Release.gmk.orig openjdk/jdk/make/common/Release.gmk
---- openjdk/jdk/make/common/Release.gmk.orig	2011-11-11 07:17:51.000000000 -0500
-+++ openjdk/jdk/make/common/Release.gmk	2012-02-24 19:34:56.303117368 -0500
-@@ -766,6 +766,7 @@ initial-image-jre:: initial-image-jre-se
- 	$(CP) $(RT_JAR) $(JRE_IMAGE_DIR)/lib/rt.jar
- 	$(CP) $(RESOURCES_JAR) $(JRE_IMAGE_DIR)/lib/resources.jar
- 	$(CP) $(JSSE_JAR) $(JRE_IMAGE_DIR)/lib/jsse.jar
-+	$(CP) $(RHINO_JAR) $(JRE_IMAGE_DIR)/lib/rhino.jar
- 	@# Generate meta-index to make boot and extension class loaders lazier
- 	$(CD) $(JRE_IMAGE_DIR)/lib && \
- 	    $(BOOT_JAVA_CMD) -jar $(BUILDMETAINDEX_JARFILE) \
-diff -up openjdk/jdk/make/com/sun/Makefile.orig openjdk/jdk/make/com/sun/Makefile
---- openjdk/jdk/make/com/sun/Makefile.orig	2011-11-11 07:17:51.000000000 -0500
-+++ openjdk/jdk/make/com/sun/Makefile	2012-02-24 19:34:56.303117368 -0500
-@@ -31,13 +31,6 @@ BUILDDIR = ../..
+diff -Nru openjdk.orig/jdk/make/com/sun/Makefile openjdk/jdk/make/com/sun/Makefile
+--- openjdk.orig/jdk/make/com/sun/Makefile	2012-03-12 17:25:51.000000000 +0000
++++ openjdk/jdk/make/com/sun/Makefile	2012-03-18 18:29:38.835009659 +0000
+@@ -31,13 +31,6 @@
  PRODUCT = sun
  include $(BUILDDIR)/common/Defs.gmk
  
@@ -26,7 +15,7 @@
  # jarsigner is part of JRE
  SUBDIRS = java security net/ssl jarsigner
  
-@@ -45,7 +38,7 @@ SUBDIRS_management = jmx
+@@ -45,7 +38,7 @@
  SUBDIRS_desktop    = image
  SUBDIRS_enterprise = crypto/provider jndi \
                       org rowset net/httpserver
@@ -35,10 +24,10 @@
  
  # Omit mirror since it's built with the apt tool.
  SUBDIRS_tools      = tools
-diff -up openjdk/jdk/make/com/sun/script/Makefile.orig openjdk/jdk/make/com/sun/script/Makefile
---- openjdk/jdk/make/com/sun/script/Makefile.orig	2011-11-11 07:17:51.000000000 -0500
-+++ openjdk/jdk/make/com/sun/script/Makefile	2012-02-24 19:34:56.303117368 -0500
-@@ -31,6 +31,8 @@ include $(BUILDDIR)/common/Defs.gmk
+diff -Nru openjdk.orig/jdk/make/com/sun/script/Makefile openjdk/jdk/make/com/sun/script/Makefile
+--- openjdk.orig/jdk/make/com/sun/script/Makefile	2012-03-12 17:25:51.000000000 +0000
++++ openjdk/jdk/make/com/sun/script/Makefile	2012-03-18 18:29:38.843009789 +0000
+@@ -31,6 +31,8 @@
  
  AUTO_FILES_JAVA_DIRS = com/sun/script
  
@@ -47,9 +36,20 @@
  #
  # Files that need to be copied
  #
-diff -up openjdk/jdk/src/share/classes/com/sun/script/javascript/ExternalScriptable.java.orig openjdk/jdk/src/share/classes/com/sun/script/javascript/ExternalScriptable.java
---- openjdk/jdk/src/share/classes/com/sun/script/javascript/ExternalScriptable.java.orig	2011-11-11 07:17:51.000000000 -0500
-+++ openjdk/jdk/src/share/classes/com/sun/script/javascript/ExternalScriptable.java	2012-02-24 19:34:56.304117351 -0500
+diff -Nru openjdk.orig/jdk/make/common/Release.gmk openjdk/jdk/make/common/Release.gmk
+--- openjdk.orig/jdk/make/common/Release.gmk	2012-03-12 17:25:51.000000000 +0000
++++ openjdk/jdk/make/common/Release.gmk	2012-03-18 18:30:00.367359553 +0000
+@@ -821,6 +821,7 @@
+ 	$(CP) $(RT_JAR) $(JRE_IMAGE_DIR)/lib/rt.jar
+ 	$(CP) $(RESOURCES_JAR) $(JRE_IMAGE_DIR)/lib/resources.jar
+ 	$(CP) $(JSSE_JAR) $(JRE_IMAGE_DIR)/lib/jsse.jar
++	$(CP) $(RHINO_JAR) $(JRE_IMAGE_DIR)/lib/rhino.jar
+ ifneq ($(JFR_JAR),)
+ 	$(CP) $(JFR_JAR) $(JRE_IMAGE_DIR)/lib/jfr.jar
+ endif
+diff -Nru openjdk.orig/jdk/src/share/classes/com/sun/script/javascript/ExternalScriptable.java openjdk/jdk/src/share/classes/com/sun/script/javascript/ExternalScriptable.java
+--- openjdk.orig/jdk/src/share/classes/com/sun/script/javascript/ExternalScriptable.java	2012-03-12 17:25:51.000000000 +0000
++++ openjdk/jdk/src/share/classes/com/sun/script/javascript/ExternalScriptable.java	2012-03-18 18:29:38.843009789 +0000
 @@ -24,7 +24,7 @@
   */
  
@@ -59,9 +59,9 @@
  import javax.script.*;
  import java.util.*;
  
-diff -up openjdk/jdk/src/share/classes/com/sun/script/javascript/JavaAdapter.java.orig openjdk/jdk/src/share/classes/com/sun/script/javascript/JavaAdapter.java
---- openjdk/jdk/src/share/classes/com/sun/script/javascript/JavaAdapter.java.orig	2011-11-11 07:17:51.000000000 -0500
-+++ openjdk/jdk/src/share/classes/com/sun/script/javascript/JavaAdapter.java	2012-02-24 19:34:56.304117351 -0500
+diff -Nru openjdk.orig/jdk/src/share/classes/com/sun/script/javascript/JavaAdapter.java openjdk/jdk/src/share/classes/com/sun/script/javascript/JavaAdapter.java
+--- openjdk.orig/jdk/src/share/classes/com/sun/script/javascript/JavaAdapter.java	2012-03-12 17:25:51.000000000 +0000
++++ openjdk/jdk/src/share/classes/com/sun/script/javascript/JavaAdapter.java	2012-03-18 18:29:38.843009789 +0000
 @@ -26,7 +26,7 @@
  package com.sun.script.javascript;
  
@@ -71,9 +71,9 @@
  
  /**
   * This class implements Rhino-like JavaAdapter to help implement a Java
-diff -up openjdk/jdk/src/share/classes/com/sun/script/javascript/JSAdapter.java.orig openjdk/jdk/src/share/classes/com/sun/script/javascript/JSAdapter.java
---- openjdk/jdk/src/share/classes/com/sun/script/javascript/JSAdapter.java.orig	2011-11-11 07:17:51.000000000 -0500
-+++ openjdk/jdk/src/share/classes/com/sun/script/javascript/JSAdapter.java	2012-02-24 19:34:56.304117351 -0500
+diff -Nru openjdk.orig/jdk/src/share/classes/com/sun/script/javascript/JSAdapter.java openjdk/jdk/src/share/classes/com/sun/script/javascript/JSAdapter.java
+--- openjdk.orig/jdk/src/share/classes/com/sun/script/javascript/JSAdapter.java	2012-03-12 17:25:51.000000000 +0000
++++ openjdk/jdk/src/share/classes/com/sun/script/javascript/JSAdapter.java	2012-03-18 18:29:38.843009789 +0000
 @@ -25,7 +25,7 @@
  
  package com.sun.script.javascript;
@@ -83,9 +83,9 @@
  import java.util.*;
  
  /**
-diff -up openjdk/jdk/src/share/classes/com/sun/script/javascript/RhinoClassShutter.java.orig openjdk/jdk/src/share/classes/com/sun/script/javascript/RhinoClassShutter.java
---- openjdk/jdk/src/share/classes/com/sun/script/javascript/RhinoClassShutter.java.orig	2011-11-11 07:17:51.000000000 -0500
-+++ openjdk/jdk/src/share/classes/com/sun/script/javascript/RhinoClassShutter.java	2012-02-24 19:34:56.305117334 -0500
+diff -Nru openjdk.orig/jdk/src/share/classes/com/sun/script/javascript/RhinoClassShutter.java openjdk/jdk/src/share/classes/com/sun/script/javascript/RhinoClassShutter.java
+--- openjdk.orig/jdk/src/share/classes/com/sun/script/javascript/RhinoClassShutter.java	2012-03-12 17:25:51.000000000 +0000
++++ openjdk/jdk/src/share/classes/com/sun/script/javascript/RhinoClassShutter.java	2012-03-18 18:29:38.843009789 +0000
 @@ -26,7 +26,7 @@
  package com.sun.script.javascript;
  
@@ -95,9 +95,9 @@
  
  /**
   * This class prevents script access to certain sensitive classes.
-diff -up openjdk/jdk/src/share/classes/com/sun/script/javascript/RhinoCompiledScript.java.orig openjdk/jdk/src/share/classes/com/sun/script/javascript/RhinoCompiledScript.java
---- openjdk/jdk/src/share/classes/com/sun/script/javascript/RhinoCompiledScript.java.orig	2011-11-11 07:17:51.000000000 -0500
-+++ openjdk/jdk/src/share/classes/com/sun/script/javascript/RhinoCompiledScript.java	2012-02-24 19:34:56.305117334 -0500
+diff -Nru openjdk.orig/jdk/src/share/classes/com/sun/script/javascript/RhinoCompiledScript.java openjdk/jdk/src/share/classes/com/sun/script/javascript/RhinoCompiledScript.java
+--- openjdk.orig/jdk/src/share/classes/com/sun/script/javascript/RhinoCompiledScript.java	2012-03-12 17:25:51.000000000 +0000
++++ openjdk/jdk/src/share/classes/com/sun/script/javascript/RhinoCompiledScript.java	2012-03-18 18:29:38.843009789 +0000
 @@ -25,7 +25,7 @@
  
  package com.sun.script.javascript;
@@ -107,9 +107,9 @@
  
  /**
   * Represents compiled JavaScript code.
-diff -up openjdk/jdk/src/share/classes/com/sun/script/javascript/RhinoScriptEngineFactory.java.orig openjdk/jdk/src/share/classes/com/sun/script/javascript/RhinoScriptEngineFactory.java
---- openjdk/jdk/src/share/classes/com/sun/script/javascript/RhinoScriptEngineFactory.java.orig	2011-11-11 07:17:51.000000000 -0500
-+++ openjdk/jdk/src/share/classes/com/sun/script/javascript/RhinoScriptEngineFactory.java	2012-02-24 19:34:56.305117334 -0500
+diff -Nru openjdk.orig/jdk/src/share/classes/com/sun/script/javascript/RhinoScriptEngineFactory.java openjdk/jdk/src/share/classes/com/sun/script/javascript/RhinoScriptEngineFactory.java
+--- openjdk.orig/jdk/src/share/classes/com/sun/script/javascript/RhinoScriptEngineFactory.java	2012-03-12 17:25:51.000000000 +0000
++++ openjdk/jdk/src/share/classes/com/sun/script/javascript/RhinoScriptEngineFactory.java	2012-03-18 18:29:38.843009789 +0000
 @@ -26,7 +26,7 @@
  package com.sun.script.javascript;
  import javax.script.*;
@@ -119,9 +119,9 @@
  import com.sun.script.util.*;
  
  /**
-diff -up openjdk/jdk/src/share/classes/com/sun/script/javascript/RhinoScriptEngine.java.orig openjdk/jdk/src/share/classes/com/sun/script/javascript/RhinoScriptEngine.java
---- openjdk/jdk/src/share/classes/com/sun/script/javascript/RhinoScriptEngine.java.orig	2011-11-11 07:17:51.000000000 -0500
-+++ openjdk/jdk/src/share/classes/com/sun/script/javascript/RhinoScriptEngine.java	2012-02-24 19:34:56.305117334 -0500
+diff -Nru openjdk.orig/jdk/src/share/classes/com/sun/script/javascript/RhinoScriptEngine.java openjdk/jdk/src/share/classes/com/sun/script/javascript/RhinoScriptEngine.java
+--- openjdk.orig/jdk/src/share/classes/com/sun/script/javascript/RhinoScriptEngine.java	2012-03-12 17:25:51.000000000 +0000
++++ openjdk/jdk/src/share/classes/com/sun/script/javascript/RhinoScriptEngine.java	2012-03-18 18:29:38.843009789 +0000
 @@ -26,7 +26,7 @@
  package com.sun.script.javascript;
  import com.sun.script.util.*;
@@ -131,9 +131,9 @@
  import java.lang.reflect.Method;
  import java.io.*;
  import java.security.*;
-diff -up openjdk/jdk/src/share/classes/com/sun/script/javascript/RhinoTopLevel.java.orig openjdk/jdk/src/share/classes/com/sun/script/javascript/RhinoTopLevel.java
---- openjdk/jdk/src/share/classes/com/sun/script/javascript/RhinoTopLevel.java.orig	2011-11-11 07:17:51.000000000 -0500
-+++ openjdk/jdk/src/share/classes/com/sun/script/javascript/RhinoTopLevel.java	2012-02-24 19:34:56.306117317 -0500
+diff -Nru openjdk.orig/jdk/src/share/classes/com/sun/script/javascript/RhinoTopLevel.java openjdk/jdk/src/share/classes/com/sun/script/javascript/RhinoTopLevel.java
+--- openjdk.orig/jdk/src/share/classes/com/sun/script/javascript/RhinoTopLevel.java	2012-03-12 17:25:51.000000000 +0000
++++ openjdk/jdk/src/share/classes/com/sun/script/javascript/RhinoTopLevel.java	2012-03-18 18:29:38.843009789 +0000
 @@ -25,7 +25,7 @@
  
  package com.sun.script.javascript;
@@ -143,10 +143,10 @@
  import java.security.AccessControlContext;
  import javax.script.*;
  import java.security.AccessControlContext;
-diff -up openjdk/jdk/src/share/classes/com/sun/script/javascript/RhinoWrapFactory.java.orig openjdk/jdk/src/share/classes/com/sun/script/javascript/RhinoWrapFactory.java
---- openjdk/jdk/src/share/classes/com/sun/script/javascript/RhinoWrapFactory.java.orig	2011-11-11 07:17:51.000000000 -0500
-+++ openjdk/jdk/src/share/classes/com/sun/script/javascript/RhinoWrapFactory.java	2012-02-24 19:34:56.306117317 -0500
-@@ -27,7 +27,7 @@ package com.sun.script.javascript;
+diff -Nru openjdk.orig/jdk/src/share/classes/com/sun/script/javascript/RhinoWrapFactory.java openjdk/jdk/src/share/classes/com/sun/script/javascript/RhinoWrapFactory.java
+--- openjdk.orig/jdk/src/share/classes/com/sun/script/javascript/RhinoWrapFactory.java	2012-03-12 17:25:51.000000000 +0000
++++ openjdk/jdk/src/share/classes/com/sun/script/javascript/RhinoWrapFactory.java	2012-03-18 18:29:38.843009789 +0000
+@@ -27,7 +27,7 @@
  
  import java.lang.reflect.*;
  import static sun.security.util.SecurityConstants.*;
--- a/patches/systemtap-alloc-size-workaround.patch	Fri Mar 23 22:39:35 2012 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-diff -Nru openjdk.orig/hotspot/src/share/vm/runtime/sharedRuntime.cpp openjdk/hotspot/src/share/vm/runtime/sharedRuntime.cpp
---- openjdk.orig/hotspot/src/share/vm/runtime/sharedRuntime.cpp	2011-04-11 12:33:06.000000000 +0100
-+++ openjdk/hotspot/src/share/vm/runtime/sharedRuntime.cpp	2011-04-11 16:40:57.825703429 +0100
-@@ -890,7 +890,7 @@
-   int size = o->size();
-   Symbol* name = klass->name();
-   HS_DTRACE_PROBE4(hotspot, object__alloc, get_java_tid(thread),
--                   name->bytes(), name->utf8_length(), size * HeapWordSize);
-+                   name->bytes(), name->utf8_length(), size);
-   return 0;
- }
- 
--- a/patches/systemtap.patch	Fri Mar 23 22:39:35 2012 +0100
+++ b/patches/systemtap.patch	Mon Mar 26 19:33:38 2012 +0200
@@ -1,6 +1,6 @@
 diff -Nru openjdk.orig/hotspot/make/linux/makefiles/dtrace.make openjdk/hotspot/make/linux/makefiles/dtrace.make
---- openjdk.orig/hotspot/make/linux/makefiles/dtrace.make	2010-07-29 21:54:46.000000000 +0100
-+++ openjdk/hotspot/make/linux/makefiles/dtrace.make	2011-03-16 20:52:47.269527251 +0000
+--- openjdk.orig/hotspot/make/linux/makefiles/dtrace.make	2012-02-22 14:54:31.000000000 +0000
++++ openjdk/hotspot/make/linux/makefiles/dtrace.make	2012-03-18 18:54:13.482968139 +0000
 @@ -25,3 +25,7 @@
  # Linux does not build jvm_db
  LIBJVM_DB =
@@ -10,9 +10,9 @@
 +
 +# It doesn't support HAVE_DTRACE_H though.
 diff -Nru openjdk.orig/hotspot/src/share/vm/prims/jni.cpp openjdk/hotspot/src/share/vm/prims/jni.cpp
---- openjdk.orig/hotspot/src/share/vm/prims/jni.cpp	2011-03-14 22:09:03.000000000 +0000
-+++ openjdk/hotspot/src/share/vm/prims/jni.cpp	2011-03-16 20:52:47.277527381 +0000
-@@ -1817,10 +1817,7 @@
+--- openjdk.orig/hotspot/src/share/vm/prims/jni.cpp	2012-02-22 14:54:31.000000000 +0000
++++ openjdk/hotspot/src/share/vm/prims/jni.cpp	2012-03-18 18:54:13.502968466 +0000
+@@ -2818,10 +2818,7 @@
  JNI_QUICK_ENTRY(void, jni_Set##Result##Field(JNIEnv *env, jobject obj, jfieldID fieldID, Argument value)) \
    JNIWrapper("Set" XSTR(Result) "Field"); \
  \
@@ -24,7 +24,7 @@
  \
    oop o = JNIHandles::resolve_non_null(obj); \
    klassOop k = o->klass(); \
-@@ -1994,10 +1991,7 @@
+@@ -3128,10 +3125,7 @@
  \
  JNI_ENTRY(void, jni_SetStatic##Result##Field(JNIEnv *env, jclass clazz, jfieldID fieldID, Argument value)) \
    JNIWrapper("SetStatic" XSTR(Result) "Field"); \
@@ -36,33 +36,9 @@
  \
    JNIid* id = jfieldIDWorkaround::from_static_jfieldID(fieldID); \
    assert(id->is_static_field_id(), "invalid static field id"); \
-diff -Nru openjdk.orig/hotspot/src/share/vm/runtime/arguments.cpp openjdk/hotspot/src/share/vm/runtime/arguments.cpp
---- openjdk.orig/hotspot/src/share/vm/runtime/arguments.cpp	2011-03-16 20:51:33.000000000 +0000
-+++ openjdk/hotspot/src/share/vm/runtime/arguments.cpp	2011-03-16 20:52:47.277527381 +0000
-@@ -2634,16 +2634,16 @@
-       FLAG_SET_CMDLINE(bool, DisplayVMOutputToStderr, false);
-       FLAG_SET_CMDLINE(bool, DisplayVMOutputToStdout, true);
-     } else if (match_option(option, "-XX:+ExtendedDTraceProbes", &tail)) {
--#ifdef SOLARIS
-+#ifdef DTRACE_ENABLED
-       FLAG_SET_CMDLINE(bool, ExtendedDTraceProbes, true);
-       FLAG_SET_CMDLINE(bool, DTraceMethodProbes, true);
-       FLAG_SET_CMDLINE(bool, DTraceAllocProbes, true);
-       FLAG_SET_CMDLINE(bool, DTraceMonitorProbes, true);
--#else // ndef SOLARIS
-+#else // ndef DTRACE_ENABLED
-       jio_fprintf(defaultStream::error_stream(),
--                  "ExtendedDTraceProbes flag is only applicable on Solaris\n");
-+                  "ExtendedDTraceProbes flag is only applicable on dtrace enabled builds\n");
-       return JNI_EINVAL;
--#endif // ndef SOLARIS
-+#endif // ndef DTRACE_ENABLED
- #ifdef ASSERT
-     } else if (match_option(option, "-XX:+FullGCALot", &tail)) {
-       FLAG_SET_CMDLINE(bool, FullGCALot, true);
 diff -Nru openjdk.orig/hotspot/src/share/vm/utilities/dtrace.hpp openjdk/hotspot/src/share/vm/utilities/dtrace.hpp
---- openjdk.orig/hotspot/src/share/vm/utilities/dtrace.hpp	2011-03-14 22:09:03.000000000 +0000
-+++ openjdk/hotspot/src/share/vm/utilities/dtrace.hpp	2011-03-16 20:53:58.314683506 +0000
+--- openjdk.orig/hotspot/src/share/vm/utilities/dtrace.hpp	2012-02-22 14:54:31.000000000 +0000
++++ openjdk/hotspot/src/share/vm/utilities/dtrace.hpp	2012-03-18 19:05:33.266067964 +0000
 @@ -1,5 +1,6 @@
  /*
   * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
@@ -70,48 +46,44 @@
   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   *
   * This code is free software; you can redistribute it and/or modify it
-@@ -25,7 +26,7 @@
- #ifndef SHARE_VM_UTILITIES_DTRACE_HPP
- #define SHARE_VM_UTILITIES_DTRACE_HPP
- 
--#if defined(SOLARIS) && defined(DTRACE_ENABLED)
-+#if defined(DTRACE_ENABLED)
- 
- #include <sys/sdt.h>
- 
-@@ -36,7 +37,7 @@
- #define HS_DTRACE_WORKAROUND_TAIL_CALL_BUG() \
-   do { volatile size_t dtrace_workaround_tail_call_bug = 1; } while (0)
- 
--#else // ndef SOLARIS || ndef DTRACE_ENABLED
-+#else // ndef DTRACE_ENABLED
- 
- #define DTRACE_ONLY(x)
- #define NOT_DTRACE(x) x
-@@ -47,11 +48,18 @@
- #define DTRACE_PROBE3(a,b,c,d,e) {;}
+@@ -44,6 +45,8 @@
+ #include "dtracefiles/hotspot.h"
+ #include "dtracefiles/hotspot_jni.h"
+ #include "dtracefiles/hs_private.h"
++#elif defined(LINUX)
++#define USDT3 1
+ #else
+ #error "dtrace enabled for unknown os"
+ #endif /* defined(SOLARIS) */
+@@ -64,6 +67,14 @@
  #define DTRACE_PROBE4(a,b,c,d,e,f) {;}
  #define DTRACE_PROBE5(a,b,c,d,e,f,g) {;}
+ 
++#ifdef USDT3
 +#define DTRACE_PROBE6(a,b,c,d,e,f,g,h) {;}
 +#define DTRACE_PROBE7(a,b,c,d,e,f,g,h,i) {;}
 +#define DTRACE_PROBE8(a,b,c,d,e,f,g,h,i,j) {;}
 +#define DTRACE_PROBE9(a,b,c,d,e,f,g,h,i,j,k) {;}
 +#define DTRACE_PROBE10(a,b,c,d,e,f,g,h,i,j,k,l) {;}
- 
- #define HS_DTRACE_WORKAROUND_TAIL_CALL_BUG()
++#endif
++
+ #else /* USDT2 */
  
- #endif
+ #include "dtrace_usdt2_disabled.hpp"
+@@ -71,7 +82,7 @@
  
-+#if defined(SOLARIS)
-+// Solaris dtrace needs actual extern function decls.
+ #endif /* defined(DTRACE_ENABLED) */
+ 
+-#ifndef USDT2
++#ifdef USDT1
+ 
  #define HS_DTRACE_PROBE_FN(provider,name)\
    __dtrace_##provider##___##name
- 
-@@ -59,6 +67,11 @@
+@@ -80,6 +91,11 @@
    DTRACE_ONLY(extern "C" void HS_DTRACE_PROBE_FN(provider,name) args)
  #define HS_DTRACE_PROBE_CDECL_N(provider,name,args) \
    DTRACE_ONLY(extern void HS_DTRACE_PROBE_FN(provider,name) args)
-+#else
++#elif defined(USDT3)
 +// Systemtap dtrace compatible probes on GNU/Linux don't.
 +#define HS_DTRACE_PROBE_DECL_N(provider,name,args)
 +#define HS_DTRACE_PROBE_CDECL_N(provider,name,args)
@@ -119,16 +91,16 @@
  
  /* Dtrace probe declarations */
  #define HS_DTRACE_PROBE_DECL(provider,name) \
-@@ -97,6 +110,8 @@
+@@ -118,6 +134,8 @@
      uintptr_t,uintptr_t,uintptr_t))
  
  /* Dtrace probe definitions */
-+#if defined(SOLARIS)
++#ifndef USDT3
 +// Solaris dtrace uses actual function calls.
  #define HS_DTRACE_PROBE_N(provider,name, args) \
    DTRACE_ONLY(HS_DTRACE_PROBE_FN(provider,name) args)
  
-@@ -132,5 +147,31 @@
+@@ -153,7 +171,32 @@
    HS_DTRACE_PROBE_N(provider,name,((uintptr_t)a0,(uintptr_t)a1,(uintptr_t)a2,\
      (uintptr_t)a3,(uintptr_t)a4,(uintptr_t)a5,(uintptr_t)a6,(uintptr_t)a7,\
      (uintptr_t)a8,(uintptr_t)a9))
@@ -157,6 +129,8 @@
 +  DTRACE_PROBE9(provider,name,a0,a1,a2,a3,a4,a5,a6,a7,a8)
 +#define HS_DTRACE_PROBE10(provider,name,a0,a1,a2,a3,a4,a5,a6,a7,a8)\
 +  DTRACE_PROBE10(provider,name,a0,a1,a2,a3,a4,a5,a6,a7,a8)
-+#endif
+ 
+-#endif /* !USDT2 */
++#endif /* !USDT3 */
  
  #endif // SHARE_VM_UTILITIES_DTRACE_HPP