changeset 2542:b3de1ec419d4

Include recent security fixes and associated backports. 2013-02-13 Andrew John Hughes <gnu.andrew@member.fsf.org> * Makefile.am, (HOTSPOT_CHANGESET): Update to IcedTea7 2.1 forest head; the tag icedtea-2.1.5. (CORBA_CHANGESET): Likewise. (JAXP_CHANGESET): Likewise. (JAXWS_CHANGESET): Likewise. (JDK_CHANGESET): Likewise. (LANGTOOLS_CHANGESET): Likewise. (OPENJDK_CHANGESET): Likewise. (HOTSPOT_SHA256SUM): Likewise. (CORBA_SHA256SUM): Likewise. (JAXP_SHA256SUM): Likewise. (JAXWS_SHA256SUM): Likewise. (JDK_SHA256SUM): Likewise. (LANGTOOLS_SHA256SUM): Likewise. (OPENJDK_SHA256SUM): Likewise. * patches/boot/ecj-diamond.patch, * patches/boot/ecj-trywithresources.patch: Regenerated and extended to cover new cases. * NEWS: Updated.
author Andrew John Hughes <gnu_andrew@member.fsf.org>
date Wed, 13 Feb 2013 12:45:56 +0000
parents bb542cc4ab30
children 763c13001988
files ChangeLog Makefile.am NEWS patches/boot/ecj-diamond.patch patches/boot/ecj-trywithresources.patch
diffstat 5 files changed, 1506 insertions(+), 1190 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Wed Jan 16 01:32:13 2013 +0000
+++ b/ChangeLog	Wed Feb 13 12:45:56 2013 +0000
@@ -1,3 +1,26 @@
+2013-02-13  Andrew John Hughes  <gnu.andrew@member.fsf.org>
+
+	* Makefile.am,
+	(HOTSPOT_CHANGESET): Update to IcedTea7 2.1 forest head;
+	the tag icedtea-2.1.5.
+	(CORBA_CHANGESET): Likewise.
+	(JAXP_CHANGESET): Likewise.
+	(JAXWS_CHANGESET): Likewise.
+	(JDK_CHANGESET): Likewise.
+	(LANGTOOLS_CHANGESET): Likewise.
+	(OPENJDK_CHANGESET): Likewise.
+	(HOTSPOT_SHA256SUM): Likewise.
+	(CORBA_SHA256SUM): Likewise.
+	(JAXP_SHA256SUM): Likewise.
+	(JAXWS_SHA256SUM): Likewise.
+	(JDK_SHA256SUM): Likewise.
+	(LANGTOOLS_SHA256SUM): Likewise.
+	(OPENJDK_SHA256SUM): Likewise.
+	* patches/boot/ecj-diamond.patch,
+	* patches/boot/ecj-trywithresources.patch:
+	Regenerated and extended to cover new cases.
+	* NEWS: Updated.
+
 2013-01-16  Andrew John Hughes  <gnu.andrew@member.fsf.org>
 
 	* NEWS: Add 2.1.5 section.
--- a/Makefile.am	Wed Jan 16 01:32:13 2013 +0000
+++ b/Makefile.am	Wed Feb 13 12:45:56 2013 +0000
@@ -4,21 +4,21 @@
 JDK_UPDATE_VERSION = 03
 COMBINED_VERSION = $(JDK_UPDATE_VERSION)-$(OPENJDK_VERSION)
 
-CORBA_CHANGESET = fccd14ecf86c
-HOTSPOT_CHANGESET = 3f345e5f65eb
-JAXP_CHANGESET = fb08c190f504
-JAXWS_CHANGESET = 77e7849c5e50
-JDK_CHANGESET = e7d1cb36e005
-LANGTOOLS_CHANGESET = de674a569978
-OPENJDK_CHANGESET = bc612c7c99ec
+HOTSPOT_CHANGESET = 32569b4d36f4
+CORBA_CHANGESET = fb02b0451c09
+JAXP_CHANGESET = c4bf68441a8d
+JAXWS_CHANGESET = 5c2f1241ceac
+JDK_CHANGESET = 833c87b29994
+LANGTOOLS_CHANGESET = e351b6e580c2
+OPENJDK_CHANGESET = 9806157f99d2
 
-CORBA_SHA256SUM = bc761a960972906ec67b208e94f557bd9d1ceb07ae9020776a4774674d57ff44
-HOTSPOT_SHA256SUM = fa482a6ace16f95dd53cb99c842da401e634a4536ef1a18280e5d3b7843954b0
-JAXP_SHA256SUM = 619254245e5876614689c95cff44124462252bc0c074c85c657a1bac76e04043
-JAXWS_SHA256SUM = 4a60a1af32b4a274579e9932b22d552df6aae00640a3caf6a27109bdc2fe5d5a
-JDK_SHA256SUM = 1397d8e1f15fb6cb28a8c37fe15c93f8b95d36d5a4c6753cf621d28af620d6bf
-LANGTOOLS_SHA256SUM = b8c28b2de175694d1b8d6ff94c5ba616250aa3f39f41123e188cfec0b0a14da8
-OPENJDK_SHA256SUM = 4ee8fda9898f0b90fa05ea31907c20cd28d65bef550a332d35e3bd2f412cd399
+HOTSPOT_SHA256SUM = 455be170dcea6edbc9c74f9d67308bb6a1f39dadda0267e7d73ea6af3043f60c
+CORBA_SHA256SUM = 84c753fda3ad9d22c5e83d090a9aeaf86a81df240abb634d364cd2cf4a221ef4
+JAXP_SHA256SUM = dac77699dd7cd2efd7b0db620dddbff5e2a74e0ea6164a04fc0345fd13f9bdcc
+JAXWS_SHA256SUM = 11f7f159d5afae960223c4aea12c73021365699ae37c16286617700a7fdc2eb4
+JDK_SHA256SUM = 3084038ef84baa3bc42853894a4310da6a413e5221c2a97563f451b440926910
+LANGTOOLS_SHA256SUM = df8eb56f125d568ec11218fa372bed8d7bdcc608803d3568f398ef4231d5204d
+OPENJDK_SHA256SUM = 3f48f1e79dcb50fe80707a14c0559b2d91fcaa9305182151d11b7452292e618c
 
 CACAO_VERSION = a567bcb7f589
 CACAO_SHA256SUM = d49f79debc131a5694cae6ab3ba2864e7f3249ee8d9dc09aae8afdd4dc6b09f9
--- a/NEWS	Wed Jan 16 01:32:13 2013 +0000
+++ b/NEWS	Wed Feb 13 12:45:56 2013 +0000
@@ -12,6 +12,49 @@
 
 New in release 2.1.5 (2013-XX-XX):
 
+* Security fixes
+  - S6563318, CVE-2013-0424: RMI data sanitization
+  - S6664509, CVE-2013-0425: Add logging context
+  - S6664528, CVE-2013-0426: Find log level matching its name or value given at construction time
+  - S6776941: CVE-2013-0427: Improve thread pool shutdown
+  - S7141694, CVE-2013-0429: Improving CORBA internals
+  - S7173145: Improve in-memory representation of splashscreens
+  - S7186945: Unpack200 improvement
+  - S7186946: Refine unpacker resource usage
+  - S7186948: Improve Swing data validation
+  - S7186952, CVE-2013-0432: Improve clipboard access
+  - S7186954: Improve connection performance
+  - S7186957: Improve Pack200 data validation
+  - S7192392, CVE-2013-0443: Better validation of client keys
+  - S7192393, CVE-2013-0440: Better Checking of order of TLS Messages
+  - S7192977, CVE-2013-0442: Issue in toolkit thread
+  - S7197546, CVE-2013-0428: (proxy) Reflect about creating reflective proxies
+  - S7200491: Tighten up JTable layout code
+  - S7200493, CVE-2013-0444: Improve cache handling
+  - S7200499: Better data validation for options
+  - S7200500: Launcher better input validation
+  - S7201064: Better dialogue checking
+  - S7201066, CVE-2013-0441: Change modifiers on unused fields
+  - S7201068, CVE-2013-0435: Better handling of UI elements
+  - S7201070: Serialization to conform to protocol
+  - S7201071, CVE-2013-0433: InetSocketAddress serialization issue
+  - S8000210: Improve JarFile code quality
+  - S8000537, CVE-2013-0450: Contextualize RequiredModelMBean class
+  - S8000539, CVE-2013-0431: Introspect JMX data handling
+  - S8000540, CVE-2013-1475: Improve IIOP type reuse management
+  - S8000631, CVE-2013-1476: Restrict access to class constructor
+  - S8001235, CVE-2013-0434: Improve JAXP HTTP handling
+  - S8001242: Improve RMI HTTP conformance
+  - S8001307: Modify ACC_SUPER behavior
+  - S8001972, CVE-2013-1478: Improve image processing
+  - S8002325, CVE-2013-1480: Improve management of images
+* Backports
+  - S7054590: (JSR-292) MethodHandleProxies.asInterfaceInstance() accepts private/protected nested interfaces
+  - S7175616: Port fix for TimeZone from JDK 8 to JDK 7
+  - S8002068: Build broken: corba code changes unable to use new JDK 7 classes
+  - S8004341: Two JCK tests fails with 7u11 b06
+  - S8005615: Java Logger fails to load tomcat logger implementation (JULI)
+
 New in release 2.1.4 (2013-01-15):
 
 * Security fixes
--- a/patches/boot/ecj-diamond.patch	Wed Jan 16 01:32:13 2013 +0000
+++ b/patches/boot/ecj-diamond.patch	Wed Feb 13 12:45:56 2013 +0000
@@ -1,5 +1,23 @@
---- 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/beans/decoder/DocumentHandler.java openjdk-boot/jdk/src/share/classes/com/sun/beans/decoder/DocumentHandler.java
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/beans/decoder/DocumentHandler.java	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/beans/decoder/DocumentHandler.java	2013-02-12 18:41:16.208638526 +0000
+@@ -62,9 +62,10 @@
+  */
+ public final class DocumentHandler extends DefaultHandler {
+     private final AccessControlContext acc = AccessController.getContext();
+-    private final Map<String, Class<? extends ElementHandler>> handlers = new HashMap<>();
+-    private final Map<String, Object> environment = new HashMap<>();
+-    private final List<Object> objects = new ArrayList<>();
++    private final Map<String, Class<? extends ElementHandler>> handlers =
++					      new HashMap<String, Class<? extends ElementHandler>>();
++    private final Map<String, Object> environment = new HashMap<String, Object>();
++    private final List<Object> objects = new ArrayList<Object>();
+ 
+     private Reference<ClassLoader> loader;
+     private ExceptionListener listener;
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Attribute.java	2013-02-12 18:41:16.088636570 +0000
 @@ -103,9 +103,9 @@
          return this.def.compareTo(that.def);
      }
@@ -70,8 +88,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	2013-02-12 18:38:27.613754117 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/BandStructure.java	2013-02-12 18:41:16.096636701 +0000
 @@ -257,7 +257,7 @@
          assert(basicCodings[_meta_default] == null);
          assert(basicCodings[_meta_canon_min] != null);
@@ -81,7 +100,7 @@
          for (int i = 0; i < basicCodings.length; i++) {
              Coding c = basicCodings[i];
              if (c == null)  continue;
-@@ -1068,8 +1068,8 @@
+@@ -1067,8 +1067,8 @@
  
      // Bootstrap support for CPRefBands.  These are needed to record
      // intended CP indexes, before the CP has been created.
@@ -92,7 +111,7 @@
  
  
      int encodeRef(Entry e, Index ix) {
-@@ -1704,7 +1704,7 @@
+@@ -1705,7 +1705,7 @@
      protected int attrClassFileVersionMask;
  
      // Mapping from Attribute.Layout to Band[] (layout element bands).
@@ -101,7 +120,7 @@
  
      // Well-known attributes:
      protected final Attribute.Layout attrCodeEmpty;
-@@ -1713,16 +1713,16 @@
+@@ -1714,16 +1714,16 @@
      protected final Attribute.Layout attrConstantValue;
  
      // Mapping from Attribute.Layout to Integer (inverse of attrDefs)
@@ -121,7 +140,7 @@
                      attrIndexLimit[i], (Attribute.Layout)null)));
  
          }
-@@ -1912,7 +1912,7 @@
+@@ -1913,7 +1913,7 @@
  
      protected List<Attribute.Layout> getPredefinedAttrs(int ctype) {
          assert(attrIndexLimit[ctype] != 0);
@@ -130,7 +149,7 @@
          // Remove nulls and non-predefs.
          for (int ai = 0; ai < attrIndexLimit[ctype]; ai++) {
              if (testBit(attrDefSeen[ctype], 1L<<ai))  continue;
-@@ -2536,7 +2536,7 @@
+@@ -2537,7 +2537,7 @@
      // DEBUG ONLY:  Record something about the band order.
      boolean notePrevForAssert(Band b, Band p) {
          if (prevForAssertMap == null)
@@ -139,8 +158,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	2013-02-12 18:38:27.529752523 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/ClassReader.java	2013-02-12 18:41:16.096636701 +0000
 @@ -466,7 +466,7 @@
  
      void readInnerClasses(Class cls) throws IOException {
@@ -150,19 +170,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/CodingChooser.java	2013-02-12 18:41:16.096636701 +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 +208,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Coding.java	2013-02-12 18:41:16.096636701 +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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/ConstantPool.java	2013-02-12 18:41:16.096636701 +0000
 @@ -915,7 +915,7 @@
      public static
      Index[] partition(Index ix, int[] keys) {
@@ -218,7 +241,7 @@
              }
              part.add(cpMap[i]);
          }
-@@ -1133,7 +1133,7 @@
+@@ -1135,7 +1135,7 @@
      void completeReferencesIn(Set<Entry> cpRefs, boolean flattenSigs) {
          cpRefs.remove(null);
          for (ListIterator<Entry> work =
@@ -227,9 +250,10 @@
               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
-@@ -59,7 +59,7 @@
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java	2013-02-12 18:38:27.617754193 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java	2013-02-12 18:41:16.096636701 +0000
+@@ -60,7 +60,7 @@
                  ResourceBundle.getBundle("com.sun.java.util.jar.pack.DriverResource");
  
      public static void main(String[] ava) throws IOException {
@@ -238,7 +262,7 @@
  
          boolean doPack   = true;
          boolean doUnpack = false;
-@@ -82,7 +82,7 @@
+@@ -83,7 +83,7 @@
          }
  
          // Collect engine properties here:
@@ -247,7 +271,7 @@
          engProps.put(verboseProp, System.getProperty(verboseProp));
  
          String optionMap;
-@@ -96,7 +96,7 @@
+@@ -97,7 +97,7 @@
          }
  
          // Collect argument properties here:
@@ -256,7 +280,7 @@
          try {
              for (;;) {
                  String state = parseCommandOptions(av, optionMap, avProps);
-@@ -530,7 +530,7 @@
+@@ -529,7 +529,7 @@
          String resultString = null;
  
          // Convert options string into optLines dictionary.
@@ -265,8 +289,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/FixedList.java	2013-02-12 18:41:16.096636701 +0000
 @@ -45,7 +45,7 @@
      private final ArrayList<E> flist;
  
@@ -276,8 +301,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Fixups.java	2013-02-12 18:41:16.100636767 +0000
 @@ -126,11 +126,11 @@
      public void setBytes(byte[] newBytes) {
          if (bytes == newBytes)  return;
@@ -301,8 +327,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	2013-02-12 18:38:27.533752598 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Package.java	2013-02-12 18:41:16.100636767 +0000
 @@ -112,7 +112,7 @@
      public static final Attribute.Layout attrSourceFileSpecial;
      public static final Map<Attribute.Layout, Attribute> attrDefs;
@@ -466,8 +493,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	2013-02-12 18:38:27.617754193 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageReader.java	2013-02-12 18:41:16.100636767 +0000
 @@ -686,7 +686,7 @@
          cp_Signature_classes.expectLength(getIntTotal(numSigClasses));
          cp_Signature_classes.readFrom(in);
@@ -580,8 +608,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	2013-02-12 18:38:27.617754193 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageWriter.java	2013-02-12 18:41:16.100636767 +0000
 @@ -116,7 +116,7 @@
      int[][]     attrCounts;       // count attr. occurences
  
@@ -636,8 +665,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackerImpl.java	2013-02-12 18:41:16.100636767 +0000
 @@ -181,8 +181,8 @@
          final Map<Attribute.Layout, Attribute> attrDefs;
          final Map<Attribute.Layout, String> attrCommands;
@@ -667,8 +697,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PopulationCoding.java	2013-02-12 18:41:16.100636767 +0000
 @@ -309,7 +309,7 @@
          // As each new value is added, we assert that the value
          // was not already in the set.
@@ -678,8 +709,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	2013-02-12 18:38:27.617754193 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PropMap.java	2013-02-12 18:41:16.100636767 +0000
 @@ -47,8 +47,8 @@
   */
  
@@ -700,8 +732,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/TLGlobals.java	2013-02-12 18:41:16.100636767 +0000
 @@ -58,12 +58,12 @@
      private final Map<String, MemberEntry> memberEntries;
  
@@ -721,8 +754,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	2013-02-12 18:38:27.617754193 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/UnpackerImpl.java	2013-02-12 18:41:16.100636767 +0000
 @@ -232,7 +232,7 @@
              props.setProperty(java.util.jar.Pack200.Unpacker.PROGRESS,"50");
              pkg.ensureAllClassFiles();
@@ -732,8 +766,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	2013-02-12 18:38:27.617754193 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Utils.java	2013-02-12 18:41:16.100636767 +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 +778,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/rowset/CachedRowSetImpl.java	2013-02-12 18:41:16.108636896 +0000
 @@ -1284,7 +1284,7 @@
       */
      public Collection<?> toCollection() throws SQLException {
@@ -763,8 +799,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/rowset/JoinRowSetImpl.java	2013-02-12 18:41:16.132637288 +0000
 @@ -222,7 +222,7 @@
             // either of the setter methods have been set.
             if(boolColId){
@@ -774,19 +811,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/callback/DialogCallbackHandler.java	2013-02-12 18:41:16.132637288 +0000
 @@ -99,10 +99,10 @@
          throws UnsupportedCallbackException
      {
@@ -800,8 +827,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/login/ConfigFile.java	2013-02-12 18:41:16.132637288 +0000
 @@ -152,7 +152,7 @@
  
          // new configuration
@@ -829,8 +857,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/module/JndiLoginModule.java	2013-02-12 18:41:16.132637288 +0000
 @@ -184,7 +184,7 @@
      private UnixNumericUserPrincipal UIDPrincipal;
      private UnixNumericGroupPrincipal GIDPrincipal;
@@ -840,8 +869,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/module/KeyStoreLoginModule.java	2013-02-12 18:41:16.136637353 +0000
 @@ -658,7 +658,7 @@
                  throw new FailedLoginException(
                      "Unable to find X.509 certificate chain in keystore");
@@ -851,8 +881,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/module/SolarisLoginModule.java	2013-02-12 18:41:16.136637353 +0000
 @@ -76,7 +76,7 @@
      private SolarisNumericUserPrincipal UIDPrincipal;
      private SolarisNumericGroupPrincipal GIDPrincipal;
@@ -862,8 +893,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/module/UnixLoginModule.java	2013-02-12 18:41:16.136637353 +0000
 @@ -70,7 +70,7 @@
      private UnixNumericUserPrincipal UIDPrincipal;
      private UnixNumericGroupPrincipal GIDPrincipal;
@@ -873,8 +905,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/PolicyFile.java	2013-02-12 18:41:16.132637288 +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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/tools/example/trace/EventThread.java	2013-02-12 18:41:16.136637353 +0000
 @@ -59,7 +59,7 @@
  
      // Maps ThreadReference to ThreadTrace instances
@@ -884,8 +929,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/beans/Introspector.java	2013-02-12 18:41:16.136637353 +0000
 @@ -95,7 +95,7 @@
      public final static int IGNORE_ALL_BEANINFO        = 3;
  
@@ -895,8 +941,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/beans/ThreadGroupContext.java	2013-02-12 18:41:16.136637353 +0000
 @@ -42,7 +42,7 @@
   */
  final class ThreadGroupContext {
@@ -915,8 +962,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/io/DeleteOnExitHook.java	2013-02-12 18:41:16.136637353 +0000
 @@ -34,7 +34,7 @@
   */
  
@@ -935,8 +983,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/io/FileInputStream.java	2013-02-12 18:41:16.136637353 +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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/io/File.java	2013-02-12 18:41:16.136637353 +0000
 @@ -1082,7 +1082,7 @@
          if ((names == null) || (filter == null)) {
              return names;
@@ -964,19 +1025,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/io/FileOutputStream.java	2013-02-12 18:41:16.136637353 +0000
 @@ -70,7 +70,7 @@
      private final Object closeLock = new Object();
      private volatile boolean closed = false;
@@ -986,8 +1037,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/io/FilePermission.java	2013-02-12 18:41:16.136637353 +0000
 @@ -725,7 +725,7 @@
       */
  
@@ -1015,8 +1067,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/io/ObjectInputStream.java	2013-02-12 18:41:16.140637418 +0000
 @@ -213,7 +213,7 @@
  
      /** table mapping primitive type names to corresponding class objects */
@@ -1040,8 +1093,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/io/ObjectOutputStream.java	2013-02-12 18:41:16.140637418 +0000
 @@ -165,11 +165,11 @@
      private static class Caches {
          /** cache of subclass security audit results */
@@ -1065,8 +1119,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/io/ObjectStreamClass.java	2013-02-12 18:41:16.144637483 +0000
 @@ -84,18 +84,18 @@
      private static class Caches {
          /** cache mapping local classes -> descriptors */
@@ -1090,7 +1145,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 +1154,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 +1163,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 +1172,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 +1181,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 +1192,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 +1201,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/lang/ApplicationShutdownHooks.java	2013-02-12 18:41:16.144637483 +0000
 @@ -47,7 +47,7 @@
                      }
                  }
@@ -1157,8 +1213,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/lang/Character.java	2013-02-12 18:41:16.148637548 +0000
 @@ -646,7 +646,8 @@
       */
      public static final class UnicodeBlock extends Subset {
@@ -1178,8 +1235,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/lang/CharacterName.java	2013-02-12 18:41:16.148637548 +0000
 @@ -81,7 +81,7 @@
              } while (cpOff < cpEnd);
              strPool = new byte[total - cpEnd];
@@ -1189,9 +1247,10 @@
          } 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
-@@ -1308,7 +1308,7 @@
+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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/lang/Class.java	2013-02-12 18:41:16.148637548 +0000
+@@ -1310,7 +1310,7 @@
          return java.security.AccessController.doPrivileged(
              new java.security.PrivilegedAction<Class<?>[]>() {
                  public Class[] run() {
@@ -1200,7 +1259,7 @@
                      Class<?> currentClass = Class.this;
                      while (currentClass != null) {
                          Class<?>[] members = currentClass.getDeclaredClasses();
-@@ -2308,9 +2308,9 @@
+@@ -2317,9 +2317,9 @@
          res = Reflection.filterFields(this, getDeclaredFields0(publicOnly));
          if (useCaches) {
              if (publicOnly) {
@@ -1212,7 +1271,7 @@
              }
          }
          return res;
-@@ -2332,9 +2332,9 @@
+@@ -2341,9 +2341,9 @@
  
          // No cached value available; compute value recursively.
          // Traverse in correct order for getField().
@@ -1224,7 +1283,7 @@
          }
  
          // Local fields
-@@ -2360,7 +2360,7 @@
+@@ -2369,7 +2369,7 @@
          res = new Field[fields.size()];
          fields.toArray(res);
          if (useCaches) {
@@ -1233,7 +1292,7 @@
          }
          return res;
      }
-@@ -2405,9 +2405,9 @@
+@@ -2414,9 +2414,9 @@
          }
          if (useCaches) {
              if (publicOnly) {
@@ -1245,7 +1304,7 @@
              }
          }
          return res;
-@@ -2442,9 +2442,9 @@
+@@ -2451,9 +2451,9 @@
          res = Reflection.filterMethods(this, getDeclaredMethods0(publicOnly));
          if (useCaches) {
              if (publicOnly) {
@@ -1257,7 +1316,7 @@
              }
          }
          return res;
-@@ -2600,7 +2600,7 @@
+@@ -2609,7 +2609,7 @@
          methods.compactAndTrim();
          res = methods.getArray();
          if (useCaches) {
@@ -1266,7 +1325,7 @@
          }
          return res;
      }
-@@ -2979,7 +2979,7 @@
+@@ -2988,7 +2988,7 @@
              if (universe == null)
                  throw new IllegalArgumentException(
                      getName() + " is not an enum type");
@@ -1275,7 +1334,7 @@
              for (T constant : universe)
                  m.put(((Enum<?>)constant).name(), constant);
              enumConstantDirectory = m;
-@@ -3092,7 +3092,7 @@
+@@ -3101,7 +3101,7 @@
          if (superClass == null) {
              annotations = declaredAnnotations;
          } else {
@@ -1284,8 +1343,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/lang/ClassLoader.java	2013-02-12 18:41:16.148637548 +0000
 @@ -246,7 +246,7 @@
  
      // The classes loaded by this class loader. The only purpose of this table
@@ -1391,121 +1451,9 @@
          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
-      */
-     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<?>>();
-     }
- 
-     /**
---- 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
+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	2013-02-12 18:38:27.597753814 +0000
++++ openjdk-boot/jdk/src/share/classes/java/lang/management/ManagementFactory.java	2013-02-12 18:41:16.152637614 +0000
 @@ -789,7 +789,7 @@
             getPlatformManagementInterfaces()
      {
@@ -1515,8 +1463,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/lang/management/PlatformComponent.java	2013-02-12 18:41:16.152637614 +0000
 @@ -287,7 +287,7 @@
              List<T> getGcMXBeanList(Class<T> gcMXBeanIntf) {
          List<GarbageCollectorMXBean> list =
@@ -1553,8 +1502,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	2013-02-12 18:38:27.617754193 +0000
++++ openjdk-boot/jdk/src/share/classes/java/lang/Package.java	2013-02-12 18:41:16.148637548 +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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/lang/ProcessBuilder.java	2013-02-12 18:41:16.148637548 +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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/lang/reflect/Constructor.java	2013-02-12 18:41:16.152637614 +0000
 @@ -136,7 +136,7 @@
          // which implicitly requires that new java.lang.reflect
          // objects be fabricated for each reflective call on Class
@@ -1564,9 +1558,10 @@
                                                  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
-@@ -232,7 +232,7 @@
+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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/lang/reflect/Proxy.java	2013-02-12 18:41:16.152637614 +0000
+@@ -238,7 +238,7 @@
  
      /** maps a class loader to the proxy class cache for that loader */
      private static Map<ClassLoader, Map<List<String>, Object>> loaderToCache
@@ -1575,7 +1570,7 @@
  
      /** marks that a particular proxy class is currently being generated */
      private static Object pendingGenerationMarker = new Object();
-@@ -356,7 +356,7 @@
+@@ -467,7 +467,7 @@
          String[] interfaceNames = new String[interfaces.length];
  
          // for detecting duplicates
@@ -1584,7 +1579,7 @@
  
          for (int i = 0; i < interfaces.length; i++) {
              /*
-@@ -413,7 +413,7 @@
+@@ -524,7 +524,7 @@
          synchronized (loaderToCache) {
              cache = loaderToCache.get(loader);
              if (cache == null) {
@@ -1593,8 +1588,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/lang/reflect/ReflectAccess.java	2013-02-12 18:41:16.152637614 +0000
 @@ -84,7 +84,7 @@
                                               byte[] annotations,
                                               byte[] parameterAnnotations)
@@ -1604,8 +1600,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/lang/StringCoding.java	2013-02-12 18:41:16.148637548 +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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/lang/String.java	2013-02-12 18:41:16.148637548 +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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/lang/Thread.java	2013-02-12 18:41:16.152637614 +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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/lang/Throwable.java	2013-02-12 18:41:16.152637614 +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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/net/InetAddress.java	2013-02-12 18:41:16.152637614 +0000
 @@ -677,7 +677,7 @@
  
      static InetAddressImpl  impl;
@@ -1624,8 +1696,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/net/URLClassLoader.java	2013-02-12 18:41:16.152637614 +0000
 @@ -205,7 +205,7 @@
       */
  
@@ -1635,8 +1708,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	2013-02-12 18:38:27.621754269 +0000
++++ openjdk-boot/jdk/src/share/classes/java/nio/file/Files.java	2013-02-12 18:41:16.152637614 +0000
 @@ -1487,7 +1487,7 @@
              return AccessController
                  .doPrivileged(new PrivilegedAction<List<FileTypeDetector>>() {
@@ -1655,8 +1729,9 @@
              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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/security/AccessControlContext.java	2013-02-12 18:41:16.156637678 +0000
 @@ -124,7 +124,7 @@
                  this.context = null;
              }
@@ -1666,8 +1741,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/security/BasicPermission.java	2013-02-12 18:41:16.156637678 +0000
 @@ -515,7 +515,7 @@
  
          // Copy perms into a Hashtable
@@ -1677,8 +1753,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/security/CodeSource.java	2013-02-12 18:41:16.156637678 +0000
 @@ -188,7 +188,7 @@
          } else if (signers != null) {
              // Convert the code signers to certs
@@ -1701,8 +1778,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/security/Permissions.java	2013-02-12 18:41:16.156637678 +0000
 @@ -362,7 +362,7 @@
  
          // Copy perms into a Hashtable
@@ -1721,8 +1799,9 @@
          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/ProtectionDomain.java openjdk-boot/jdk/src/share/classes/java/security/ProtectionDomain.java
+--- openjdk-boot.orig/jdk/src/share/classes/java/security/ProtectionDomain.java	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/security/ProtectionDomain.java	2013-02-12 18:41:16.156637678 +0000
 @@ -368,8 +368,8 @@
          int swag = 32;
          int vcap = 8;
@@ -1734,8 +1813,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/security/Provider.java	2013-02-12 18:41:16.156637678 +0000
 @@ -437,7 +437,7 @@
  
      private void readObject(ObjectInputStream in)
@@ -1763,8 +1843,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/security/SecureClassLoader.java	2013-02-12 18:41:16.156637678 +0000
 @@ -50,7 +50,7 @@
      // HashMap that maps CodeSource to ProtectionDomain
      // @GuardedBy("pdcache")
@@ -1774,8 +1855,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/security/Security.java	2013-02-12 18:41:16.156637678 +0000
 @@ -546,7 +546,7 @@
              value = filter.substring(index + 1);
          }
@@ -1821,19 +1903,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/security/UnresolvedPermissionCollection.java	2013-02-12 18:41:16.156637678 +0000
 @@ -119,7 +119,7 @@
  
      public Enumeration<Permission> elements() {
@@ -1870,8 +1942,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/security/UnresolvedPermission.java	2013-02-12 18:41:16.156637678 +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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/AbstractList.java	2013-02-12 18:41:16.156637678 +0000
 @@ -482,8 +482,8 @@
       */
      public List<E> subList(int fromIndex, int toIndex) {
@@ -1900,8 +1985,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/Arrays.java	2013-02-12 18:41:16.160637744 +0000
 @@ -2825,7 +2825,7 @@
       */
      @SafeVarargs
@@ -1911,8 +1997,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/Collections.java	2013-02-12 18:41:16.160637744 +0000
 @@ -1035,7 +1035,7 @@
       * @return an unmodifiable view of the specified collection.
       */
@@ -2537,8 +2624,9 @@
      }
  
      /**
---- openjdk-boot/jdk/src/share/classes/java/util/EnumMap.java.orig
-+++ openjdk-boot/jdk/src/share/classes/java/util/EnumMap.java
+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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/EnumMap.java	2013-02-12 18:41:16.160637744 +0000
 @@ -500,7 +500,7 @@
              int j = 0;
              for (int i = 0; i < vals.length; i++)
@@ -2548,8 +2636,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/EnumSet.java	2013-02-12 18:41:16.160637744 +0000
 @@ -110,9 +110,9 @@
              throw new ClassCastException(elementType + " not an enum");
  
@@ -2571,8 +2660,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	2013-02-12 18:38:27.597753814 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/Formatter.java	2013-02-12 18:41:16.160637744 +0000
 @@ -2514,7 +2514,7 @@
       * Finds format specifiers in the format string.
       */
@@ -2582,8 +2672,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/HashMap.java	2013-02-12 18:41:16.160637744 +0000
 @@ -763,7 +763,7 @@
       */
      void addEntry(int hash, K key, V value, int bucketIndex) {
@@ -2602,8 +2693,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/HashSet.java	2013-02-12 18:41:16.160637744 +0000
 @@ -100,7 +100,7 @@
       * default initial capacity (16) and load factor (0.75).
       */
@@ -2649,8 +2741,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/Hashtable.java	2013-02-12 18:41:16.160637744 +0000
 @@ -455,7 +455,7 @@
  
          // Creates the new entry.
@@ -2705,8 +2798,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/IdentityHashMap.java	2013-02-12 18:41:16.164637809 +0000
 @@ -1145,7 +1145,7 @@
              Object[] result = new Object[size];
              Iterator<Map.Entry<K,V>> it = iterator();
@@ -2725,8 +2819,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/JumboEnumSet.java	2013-02-12 18:41:16.164637809 +0000
 @@ -91,7 +91,7 @@
       * @return an iterator over the elements contained in this set
       */
@@ -2736,8 +2831,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/LinkedHashMap.java	2013-02-12 18:41:16.164637809 +0000
 @@ -237,7 +237,7 @@
       * the chain.
       */
@@ -2756,8 +2852,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/LinkedList.java	2013-02-12 18:41:16.164637809 +0000
 @@ -122,7 +122,7 @@
       */
      private void linkFirst(E e) {
@@ -2794,8 +2891,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/ListResourceBundle.java	2013-02-12 18:41:16.164637809 +0000
 @@ -187,7 +187,7 @@
              return;
  
@@ -2805,8 +2903,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/Locale.java	2013-02-12 18:41:16.164637809 +0000
 @@ -1793,7 +1793,7 @@
                  return formatList(variantNames, listPattern, listCompositionPattern);
              }
@@ -2816,8 +2915,178 @@
          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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/logging/FileHandler.java	2013-02-12 18:41:16.168637875 +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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/logging/Level.java	2013-02-12 18:42:35.769928320 +0000
+@@ -458,8 +458,8 @@
+     // were final, the following KnownLevel implementation can be removed.
+     // Future API change should take this into consideration.
+     static final class KnownLevel {
+-        private static Map<String, List<KnownLevel>> nameToLevels = new HashMap<>();
+-        private static Map<Integer, List<KnownLevel>> intToLevels = new HashMap<>();
++        private static Map<String, List<KnownLevel>> nameToLevels = new HashMap<String,List<KnownLevel>>();
++        private static Map<Integer, List<KnownLevel>> intToLevels = new HashMap<Integer,List<KnownLevel>>();
+         final Level levelObject;     // instance of Level class or Level subclass
+         final Level mirroredLevel;   // instance of Level class
+         KnownLevel(Level l) {
+@@ -477,14 +477,14 @@
+             KnownLevel o = new KnownLevel(l);
+             List<KnownLevel> list = nameToLevels.get(l.name);
+             if (list == null) {
+-                list = new ArrayList<>();
++                list = new ArrayList<KnownLevel>();
+                 nameToLevels.put(l.name, list);
+             }
+             list.add(o);
+ 
+             list = intToLevels.get(l.value);
+             if (list == null) {
+-                list = new ArrayList<>();
++                list = new ArrayList<KnownLevel>();
+                 intToLevels.put(l.value, list);
+             }
+             list.add(o);
+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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/logging/Logger.java	2013-02-12 18:41:16.172637939 +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;
+@@ -1505,7 +1505,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/logging/Logging.java	2013-02-12 18:41:16.172637939 +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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/logging/LogManager.java	2013-02-12 18:42:05.741442770 +0000
+@@ -375,7 +375,7 @@
+     }
+ 
+     private List<LoggerContext> contexts() {
+-        List<LoggerContext> cxs = new ArrayList<>();
++        List<LoggerContext> cxs = new ArrayList<LoggerContext>();
+         cxs.add(systemContext);
+         cxs.add(getUserContext());
+         return cxs;
+@@ -435,7 +435,7 @@
+     // added in the user context.
+     static class LoggerContext {
+         // Table of named Loggers that maps names to Loggers.
+-        private final Hashtable<String,LoggerWeakRef> namedLoggers = new Hashtable<>();
++        private final Hashtable<String,LoggerWeakRef> namedLoggers = new Hashtable<String,LoggerWeakRef>();
+         // Tree of named Loggers
+         private final LogNode root;
+ 
+@@ -584,7 +584,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) {
+@@ -691,7 +691,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.
+@@ -1033,7 +1033,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/logging/LogRecord.java	2013-02-12 18:41:16.168637875 +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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/prefs/AbstractPreferences.java	2013-02-12 18:41:16.172637939 +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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/PriorityQueue.java	2013-02-12 18:41:16.164637809 +0000
 @@ -538,7 +538,7 @@
                      cursor--;
                  else {
@@ -2827,8 +3096,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/Properties.java	2013-02-12 18:41:16.164637809 +0000
 @@ -1010,7 +1010,7 @@
       * @since   1.6
       */
@@ -2838,8 +3108,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/regex/Pattern.java	2013-02-12 18:41:16.172637939 +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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/regex/UnicodeProp.java	2013-02-12 18:41:16.172637939 +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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/RegularEnumSet.java	2013-02-12 18:41:16.164637809 +0000
 @@ -72,7 +72,7 @@
       * @return an iterator over the elements contained in this set
       */
@@ -2849,8 +3173,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/ResourceBundle.java	2013-02-12 18:41:16.168637875 +0000
 @@ -289,7 +289,7 @@
       * name for compatibility with some workarounds for bug 4212439.
       */
@@ -2914,8 +3239,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/ServiceLoader.java	2013-02-12 18:41:16.168637875 +0000
 @@ -191,7 +191,7 @@
      private ClassLoader loader;
  
@@ -2934,7 +3260,7 @@
          try {
              in = u.openStream();
              r = new BufferedReader(new InputStreamReader(in, "utf-8"));
-@@ -463,7 +463,7 @@
+@@ -470,7 +470,7 @@
      public static <S> ServiceLoader<S> load(Class<S> service,
                                              ClassLoader loader)
      {
@@ -2943,8 +3269,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/TimSort.java	2013-02-12 18:41:16.168637875 +0000
 @@ -196,7 +196,7 @@
           * extending short natural runs to minRun elements, and merging runs
           * to maintain stack invariant.
@@ -2954,8 +3281,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/TreeMap.java	2013-02-12 18:41:16.168637875 +0000
 @@ -530,7 +530,7 @@
          if (t == null) {
              compare(key, key); // type (and possibly null) check
@@ -3010,8 +3338,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/TreeSet.java	2013-02-12 18:41:16.168637875 +0000
 @@ -138,7 +138,7 @@
       *        ordering} of the elements will be used.
       */
@@ -3078,8 +3407,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/WeakHashMap.java	2013-02-12 18:41:16.168637875 +0000
 @@ -171,7 +171,7 @@
      /**
       * Reference queue for cleared WeakEntries
@@ -3111,194 +3441,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/zip/ZipFile.java	2013-02-12 18:41:16.172637939 +0000
 @@ -319,7 +319,7 @@
  
      // the outstanding inputstreams that need to be closed,
@@ -3326,8 +3471,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/zip/ZipOutputStream.java	2013-02-12 18:41:16.172637939 +0000
 @@ -53,8 +53,8 @@
      }
  
@@ -3339,8 +3485,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/javax/security/auth/kerberos/DelegationPermission.java	2013-02-12 18:41:16.172637939 +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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/javax/security/auth/kerberos/ServicePermission.java	2013-02-12 18:41:16.172637939 +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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/javax/security/auth/PrivateCredentialPermission.java	2013-02-12 18:41:16.172637939 +0000
 @@ -329,7 +329,7 @@
              throw new IllegalArgumentException("invalid empty name");
          }
@@ -3350,8 +3521,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/javax/security/auth/SubjectDomainCombiner.java	2013-02-12 18:41:16.172637939 +0000
 @@ -48,7 +48,7 @@
  
      private Subject subject;
@@ -3361,30 +3533,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	2013-02-12 18:38:27.641754649 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/invoke/util/ValueConversions.java	2013-02-12 18:41:16.176638004 +0000
 @@ -59,7 +59,7 @@
          EnumMap<Wrapper, MethodHandle>[] caches
                  = (EnumMap<Wrapper, MethodHandle>[]) new EnumMap[n];  // unchecked warning expected here
@@ -3421,8 +3572,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/io/CharacterEncoding.java	2013-02-12 18:41:16.176638004 +0000
 @@ -54,7 +54,7 @@
      private static volatile boolean installedAll;
  
@@ -3432,8 +3584,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/io/Converters.java	2013-02-12 18:41:16.176638004 +0000
 @@ -120,7 +120,7 @@
  
      private static Class<?> cache(int type, Object encoding, Class<?> c) {
@@ -3443,8 +3596,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	2013-02-12 18:38:27.533752598 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/launcher/LauncherHelper.java	2013-02-12 18:41:16.176638004 +0000
 @@ -169,7 +169,7 @@
      private static void printProperties(PrintStream ostream) {
          Properties p = System.getProperties();
@@ -3463,8 +3617,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/management/ManagementFactoryHelper.java	2013-02-12 18:41:16.176638004 +0000
 @@ -205,7 +205,7 @@
      private static List<BufferPoolMXBean> bufferPools = null;
      public static synchronized List<BufferPoolMXBean> getBufferPoolMXBeans() {
@@ -3474,8 +3629,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/net/spi/nameservice/dns/DNSNameService.java	2013-02-12 18:41:16.176638004 +0000
 @@ -52,7 +52,7 @@
  
      // Per-thread soft cache of the last temporary context
@@ -3503,8 +3659,21 @@
          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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/net/www/protocol/http/AuthenticationInfo.java	2013-02-12 18:41:16.176638004 +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/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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/net/www/URLConnection.java	2013-02-12 18:41:16.176638004 +0000
 @@ -239,7 +239,7 @@
          url = null;
      }
@@ -3514,19 +3683,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/nio/cs/AbstractCharsetProvider.java	2013-02-12 18:41:16.176638004 +0000
 @@ -49,22 +49,22 @@
      /* Maps canonical names to class names
       */
@@ -3563,8 +3722,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/nio/fs/AbstractAclFileAttributeView.java	2013-02-12 18:41:16.176638004 +0000
 @@ -84,7 +84,7 @@
              throw new IllegalArgumentException("'" + name() + ":" +
                  attribute + "' not recognized");
@@ -3574,8 +3734,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/nio/fs/AbstractBasicFileAttributeView.java	2013-02-12 18:41:16.176638004 +0000
 @@ -89,8 +89,8 @@
       * Used to build a map of attribute name/values.
       */
@@ -3587,8 +3748,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/nio/fs/AbstractPoller.java	2013-02-12 18:41:16.176638004 +0000
 @@ -102,7 +102,7 @@
              throw new NullPointerException();
          if (events.length == 0)
@@ -3598,8 +3760,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/nio/fs/AbstractUserDefinedFileAttributeView.java	2013-02-12 18:41:16.176638004 +0000
 @@ -77,7 +77,7 @@
          throws IOException
      {
@@ -3618,8 +3781,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/nio/fs/FileOwnerAttributeViewImpl.java	2013-02-12 18:41:16.176638004 +0000
 @@ -71,7 +71,7 @@
  
      @Override
@@ -3629,8 +3793,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/nio/fs/Util.java	2013-02-12 18:41:16.176638004 +0000
 @@ -63,7 +63,7 @@
       * Returns a Set containing the given elements.
       */
@@ -3649,8 +3814,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/reflect/generics/parser/SignatureParser.java	2013-02-12 18:41:16.180638070 +0000
 @@ -229,7 +229,7 @@
       *     "<" FormalTypeParameter+ ">"
       */
@@ -3714,9 +3880,10 @@
          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
-@@ -149,10 +149,10 @@
+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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/rmi/server/Activation.java	2013-02-12 18:41:16.180638070 +0000
+@@ -150,10 +150,10 @@
  
      /** maps activation id to its respective group id */
      private Map<ActivationID,ActivationGroupID> idTable =
@@ -3729,7 +3896,7 @@
  
      private byte majorVersion = MAJOR_VERSION;
      private byte minorVersion = MINOR_VERSION;
-@@ -288,10 +288,10 @@
+@@ -289,10 +289,10 @@
      {
          ois.defaultReadObject();
          if (! (groupTable instanceof ConcurrentHashMap)) {
@@ -3742,8 +3909,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/acl/AclEntryImpl.java	2013-02-12 18:41:16.180638070 +0000
 @@ -37,7 +37,7 @@
   */
  public class AclEntryImpl implements AclEntry {
@@ -3753,8 +3921,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/acl/AclImpl.java	2013-02-12 18:41:16.180638070 +0000
 @@ -41,15 +41,15 @@
      // or principal.
      //
@@ -3794,8 +3963,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/acl/GroupImpl.java	2013-02-12 18:41:16.180638070 +0000
 @@ -34,7 +34,7 @@
   * @author      Satish Dharmaraj
   */
@@ -3814,8 +3984,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/jca/ProviderList.java	2013-02-12 18:41:16.180638070 +0000
 @@ -96,7 +96,7 @@
          if (providerList.getProvider(p.getName()) != null) {
              return providerList;
@@ -3852,8 +4023,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/jca/Providers.java	2013-02-12 18:41:16.180638070 +0000
 @@ -40,7 +40,7 @@
  public class Providers {
  
@@ -3863,8 +4035,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/jgss/krb5/Krb5Util.java	2013-02-12 18:41:16.180638070 +0000
 @@ -267,7 +267,7 @@
              if (ktabs.isEmpty()) {
                  return kk.toArray(new KerberosKey[kk.size()]);
@@ -3874,8 +4047,9 @@
                  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
+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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/Config.java	2013-02-12 18:41:16.180638070 +0000
 @@ -527,7 +527,7 @@
                  }
                  })));
@@ -3952,70 +4126,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/Authenticator.java	2013-02-12 18:41:16.180638070 +0000
 @@ -176,7 +176,7 @@
       * @exception IOException if an I/O error occurs while reading encoded data.
       */
@@ -4025,8 +4138,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/AuthorizationData.java	2013-02-12 18:41:16.184638135 +0000
 @@ -99,7 +99,7 @@
       * @exception IOException if an I/O error occurs while reading encoded data.
       */
@@ -4036,8 +4150,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/ccache/FileCredentialsCache.java	2013-02-12 18:41:16.184638135 +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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/crypto/EType.java	2013-02-12 18:41:16.184638135 +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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/EncAPRepPart.java	2013-02-12 18:41:16.184638135 +0000
 @@ -133,7 +133,7 @@
       * @exception IOException if an I/O error occurs while reading encoded data.
       */
@@ -4047,8 +4186,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/HostAddresses.java	2013-02-12 18:41:16.184638135 +0000
 @@ -179,7 +179,7 @@
      */
      public HostAddresses(DerValue encoding)
@@ -4067,19 +4207,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/KDCReqBody.java	2013-02-12 18:41:16.184638135 +0000
 @@ -158,7 +158,7 @@
              throw new Asn1Exception(Krb5.ASN1_BAD_ID);
          }
@@ -4107,30 +4237,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/KDCReq.java	2013-02-12 18:41:16.184638135 +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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/KrbCredInfo.java	2013-02-12 18:41:16.184638135 +0000
 @@ -157,7 +157,7 @@
       * @exception IOException if an I/O error occurs while reading encoded data.
       */
@@ -4140,41 +4261,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/KRBCred.java	2013-02-12 18:41:16.184638135 +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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/KRBError.java	2013-02-12 18:41:16.184638135 +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	2013-02-12 18:38:27.621754269 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/ktab/KeyTab.java	2013-02-12 18:41:16.184638135 +0000
 @@ -67,7 +67,7 @@
  
      // Attention: Currently there is no way to remove a keytab from this map,
@@ -4211,8 +4324,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/LastReq.java	2013-02-12 18:41:16.184638135 +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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/KdcComm.java	2013-02-12 18:41:16.180638070 +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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/PrincipalName.java	2013-02-12 18:41:16.180638070 +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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/Realm.java	2013-02-12 18:41:16.180638070 +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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/provider/certpath/DistributionPointFetcher.java	2013-02-12 18:41:16.188638201 +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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/provider/JavaKeyStore.java	2013-02-12 18:41:16.184638135 +0000
 @@ -683,7 +683,7 @@
                      // Read the certificate chain
                      int numOfCerts = dis.readInt();
@@ -4222,8 +4425,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/provider/PolicyFile.java	2013-02-12 18:41:16.188638201 +0000
 @@ -299,7 +299,7 @@
      private static final int DEFAULT_CACHE_SIZE = 1;
  
@@ -4278,8 +4482,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/provider/Sun.java	2013-02-12 18:41:16.188638201 +0000
 @@ -55,7 +55,7 @@
              SunEntries.putEntries(this);
          } else {
@@ -4289,8 +4494,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/provider/VerificationProvider.java	2013-02-12 18:41:16.188638201 +0000
 @@ -76,7 +76,7 @@
              SunRsaSignEntries.putEntries(this);
          } else {
@@ -4300,8 +4506,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/provider/X509Factory.java	2013-02-12 18:41:16.188638201 +0000
 @@ -409,10 +409,10 @@
          parseX509orPKCS7Cert(InputStream is)
          throws CertificateException, IOException
@@ -4346,19 +4553,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/rsa/RSACore.java	2013-02-12 18:41:16.188638201 +0000
 @@ -219,7 +219,7 @@
      // use a weak hashmap so that cached values are automatically cleared
      // when the modulus is GC'ed
@@ -4368,8 +4565,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/rsa/SunRsaSign.java	2013-02-12 18:41:16.188638201 +0000
 @@ -52,7 +52,7 @@
              SunRsaSignEntries.putEntries(this);
          } else {
@@ -4379,8 +4577,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/CipherSuite.java	2013-02-12 18:41:16.188638201 +0000
 @@ -393,7 +393,7 @@
  
          // Map BulkCipher -> Boolean(available)
@@ -4390,9 +4589,10 @@
  
          // 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
-@@ -656,7 +656,7 @@
+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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/ClientHandshaker.java	2013-02-12 18:41:16.188638201 +0000
+@@ -659,7 +659,7 @@
          if (certRequest != null) {
              X509ExtendedKeyManager km = sslContext.getX509KeyManager();
  
@@ -4401,7 +4601,7 @@
  
              for (int i = 0; i < certRequest.types.length; i++) {
                  String typeName;
-@@ -1175,7 +1175,7 @@
+@@ -1179,7 +1179,7 @@
                          "Can't reuse existing SSL client session");
                  }
  
@@ -4410,7 +4610,7 @@
                  cipherList.add(sessionSuite);
                  if (!secureRenegotiation &&
                          cipherSuites.contains(CipherSuite.C_SCSV)) {
-@@ -1193,7 +1193,7 @@
+@@ -1197,7 +1197,7 @@
          // exclude SCSV for secure renegotiation
          if (secureRenegotiation && cipherSuites.contains(CipherSuite.C_SCSV)) {
              Collection<CipherSuite> cipherList =
@@ -4419,9 +4619,10 @@
              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
-@@ -258,7 +258,7 @@
+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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/HandshakeMessage.java	2013-02-12 18:41:16.188638201 +0000
+@@ -260,7 +260,7 @@
      // add server_name extension
      void addServerNameIndicationExtension(String hostname) {
          // We would have checked that the hostname ia a FQDN.
@@ -4430,7 +4631,7 @@
          hostnames.add(hostname);
  
          try {
-@@ -434,7 +434,7 @@
+@@ -436,7 +436,7 @@
  
      CertificateMsg(HandshakeInStream input) throws IOException {
          int chainLen = input.getInt24();
@@ -4439,7 +4640,7 @@
  
          CertificateFactory cf = null;
          while (chainLen > 0) {
-@@ -1334,7 +1334,7 @@
+@@ -1346,7 +1346,7 @@
  
          // read the certificate_authorities
          int len = input.getInt16();
@@ -4448,7 +4649,7 @@
          while (len >= 3) {
              DistinguishedName dn = new DistinguishedName(input);
              v.add(dn);
-@@ -1725,7 +1725,7 @@
+@@ -1737,7 +1737,7 @@
      // Note that this will prevent the Spi classes from being GC'd. We assume
      // that is not a problem.
      private final static Map<Class,Object> methodCache =
@@ -4457,8 +4658,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/Handshaker.java	2013-02-12 18:41:16.188638201 +0000
 @@ -569,7 +569,7 @@
                  activeProtocols = getActiveProtocols();
              }
@@ -4477,8 +4679,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/HelloExtensions.java	2013-02-12 18:41:16.192638265 +0000
 @@ -169,7 +169,7 @@
          return name;
      }
@@ -4497,8 +4700,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/ProtocolList.java	2013-02-12 18:41:16.192638265 +0000
 @@ -79,7 +79,7 @@
              throw new IllegalArgumentException("Protocols may not be null");
          }
@@ -4508,8 +4712,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/SignatureAndHashAlgorithm.java	2013-02-12 18:41:16.192638265 +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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/SSLAlgorithmConstraints.java	2013-02-12 18:41:16.192638265 +0000
 @@ -261,7 +261,7 @@
  
          protected Set<String> decomposes(KeyExchange keyExchange,
@@ -4555,8 +4799,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/SSLContextImpl.java	2013-02-12 18:41:16.192638265 +0000
 @@ -325,7 +325,7 @@
          Collection<CipherSuite> allowedCipherSuites =
                                      CipherSuite.allowedCipherSuites();
@@ -4575,8 +4820,9 @@
              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
+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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/SSLSessionImpl.java	2013-02-12 18:41:16.192638265 +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 +4841,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/SSLSocketImpl.java	2013-02-12 18:41:16.192638265 +0000
 @@ -2478,7 +2478,7 @@
              entrySet, HandshakeCompletedEvent e) {
  
@@ -4606,46 +4853,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/SunX509KeyManagerImpl.java	2013-02-12 18:41:16.192638265 +0000
 @@ -337,7 +337,7 @@
  
          X500Principal[] x500Issuers = (X500Principal[])issuers;
@@ -4664,8 +4874,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/TrustManagerFactoryImpl.java	2013-02-12 18:41:16.192638265 +0000
 @@ -134,7 +134,7 @@
          FileInputStream fis = null;
          String defaultTrustStoreType;
@@ -4675,8 +4886,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/X509KeyManagerImpl.java	2013-02-12 18:41:16.192638265 +0000
 @@ -307,7 +307,7 @@
                  (keyTypes.length == 0) || (keyTypes[0] == null)) {
              return null;
@@ -4695,8 +4907,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/tools/JarSigner.java	2013-02-12 18:41:16.192638265 +0000
 @@ -123,14 +123,14 @@
      boolean token = false; // token-based keystore
      String jarfile;  // jar files to sign or verify
@@ -4777,8 +4990,9 @@
              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
+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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/tools/KeyTool.java	2013-02-12 18:41:16.196638330 +0000
 @@ -152,11 +152,11 @@
      private KeyStore caks = null; // "cacerts" keystore
      private char[] srcstorePass = null;
@@ -4848,8 +5062,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/tools/policytool/PolicyTool.java	2013-02-12 18:41:16.196638330 +0000
 @@ -643,7 +643,7 @@
          Class<?> pc = Class.forName(type, true,
                  Thread.currentThread().getContextClassLoader());
@@ -4886,8 +5101,120 @@
      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/security/x509/X509CertImpl.java openjdk-boot/jdk/src/share/classes/sun/security/x509/X509CertImpl.java
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/x509/X509CertImpl.java	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/x509/X509CertImpl.java	2013-02-12 18:41:16.204638462 +0000
+@@ -1214,7 +1214,7 @@
+             if (exts == null) {
+                 return null;
+             }
+-            Set<String> extSet = new TreeSet<>();
++            Set<String> extSet = new TreeSet<String>();
+             for (Extension ex : exts.getAllExtensions()) {
+                 if (ex.isCritical()) {
+                     extSet.add(ex.getExtensionId().toString());
+@@ -1244,7 +1244,7 @@
+             if (exts == null) {
+                 return null;
+             }
+-            Set<String> extSet = new TreeSet<>();
++            Set<String> extSet = new TreeSet<String>();
+             for (Extension ex : exts.getAllExtensions()) {
+                 if (!ex.isCritical()) {
+                     extSet.add(ex.getExtensionId().toString());
+@@ -1484,10 +1484,10 @@
+         if (names.isEmpty()) {
+             return Collections.<List<?>>emptySet();
+         }
+-        List<List<?>> newNames = new ArrayList<>();
++        List<List<?>> newNames = new ArrayList<List<?>>();
+         for (GeneralName gname : names.names()) {
+             GeneralNameInterface name = gname.getName();
+-            List<Object> nameEntry = new ArrayList<>(2);
++            List<Object> nameEntry = new ArrayList<Object>(2);
+             nameEntry.add(Integer.valueOf(name.getType()));
+             switch (name.getType()) {
+             case GeneralNameInterface.NAME_RFC822:
+@@ -1545,12 +1545,12 @@
+             }
+         }
+         if (mustClone) {
+-            List<List<?>> namesCopy = new ArrayList<>();
++            List<List<?>> namesCopy = new ArrayList<List<?>>();
+             for (List<?> nameEntry : altNames) {
+                 Object nameObject = nameEntry.get(1);
+                 if (nameObject instanceof byte[]) {
+                     List<Object> nameEntryCopy =
+-                                        new ArrayList<>(nameEntry);
++                                        new ArrayList<Object>(nameEntry);
+                     nameEntryCopy.set(1, ((byte[])nameObject).clone());
+                     namesCopy.add(Collections.unmodifiableList(nameEntryCopy));
+                 } else {
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/x509/X509CRLEntryImpl.java openjdk-boot/jdk/src/share/classes/sun/security/x509/X509CRLEntryImpl.java
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/x509/X509CRLEntryImpl.java	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/x509/X509CRLEntryImpl.java	2013-02-12 18:41:16.204638462 +0000
+@@ -352,7 +352,7 @@
+         if (extensions == null) {
+             return null;
+         }
+-        Set<String> extSet = new TreeSet<>();
++        Set<String> extSet = new TreeSet<String>();
+         for (Extension ex : extensions.getAllExtensions()) {
+             if (ex.isCritical()) {
+                 extSet.add(ex.getExtensionId().toString());
+@@ -373,7 +373,7 @@
+         if (extensions == null) {
+             return null;
+         }
+-        Set<String> extSet = new TreeSet<>();
++        Set<String> extSet = new TreeSet<String>();
+         for (Extension ex : extensions.getAllExtensions()) {
+             if (!ex.isCritical()) {
+                 extSet.add(ex.getExtensionId().toString());
+@@ -510,7 +510,7 @@
+             return Collections.emptyMap();
+         }
+         Collection<Extension> exts = extensions.getAllExtensions();
+-        Map<String, java.security.cert.Extension> map = new TreeMap<>();
++        Map<String, java.security.cert.Extension> map = new TreeMap<String, java.security.cert.Extension>();
+         for (Extension ext : exts) {
+             map.put(ext.getId(), ext);
+         }
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/x509/X509CRLImpl.java openjdk-boot/jdk/src/share/classes/sun/security/x509/X509CRLImpl.java
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/x509/X509CRLImpl.java	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/x509/X509CRLImpl.java	2013-02-12 18:41:16.208638526 +0000
+@@ -104,8 +104,8 @@
+     private X500Principal    issuerPrincipal = null;
+     private Date             thisUpdate = null;
+     private Date             nextUpdate = null;
+-    private Map<X509IssuerSerial,X509CRLEntry> revokedMap = new TreeMap<>();
+-    private List<X509CRLEntry> revokedList = new LinkedList<>();
++    private Map<X509IssuerSerial,X509CRLEntry> revokedMap = new TreeMap<X509IssuerSerial,X509CRLEntry>();
++    private List<X509CRLEntry> revokedList = new LinkedList<X509CRLEntry>();
+     private CRLExtensions    extensions = null;
+     private final static boolean isExplicit = true;
+     private static final long YR_2050 = 2524636800000L;
+@@ -907,7 +907,7 @@
+         if (extensions == null) {
+             return null;
+         }
+-        Set<String> extSet = new TreeSet<>();
++        Set<String> extSet = new TreeSet<String>();
+         for (Extension ex : extensions.getAllExtensions()) {
+             if (ex.isCritical()) {
+                 extSet.add(ex.getExtensionId().toString());
+@@ -928,7 +928,7 @@
+         if (extensions == null) {
+             return null;
+         }
+-        Set<String> extSet = new TreeSet<>();
++        Set<String> extSet = new TreeSet<String>();
+         for (Extension ex : extensions.getAllExtensions()) {
+             if (!ex.isCritical()) {
+                 extSet.add(ex.getExtensionId().toString());
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/tools/native2ascii/Main.java openjdk-boot/jdk/src/share/classes/sun/tools/native2ascii/Main.java
+--- openjdk-boot.orig/jdk/src/share/classes/sun/tools/native2ascii/Main.java	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/tools/native2ascii/Main.java	2013-02-12 18:41:16.196638330 +0000
 @@ -94,7 +94,7 @@
       * Run the converter
       */
@@ -4897,8 +5224,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/util/locale/InternalLocaleBuilder.java	2013-02-12 18:41:16.196638330 +0000
 @@ -113,7 +113,7 @@
          }
          // Use case insensitive string to prevent duplication
@@ -5012,8 +5340,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/util/locale/LanguageTag.java	2013-02-12 18:41:16.196638330 +0000
 @@ -62,7 +62,7 @@
      // Map contains grandfathered tags and its preferred mappings from
      // http://www.ietf.org/rfc/rfc5646.txt
@@ -5068,8 +5397,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/util/locale/LocaleExtensions.java	2013-02-12 18:41:16.196638330 +0000
 @@ -81,7 +81,7 @@
          }
  
@@ -5096,8 +5426,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/util/locale/LocaleObjectCache.java	2013-02-12 18:41:16.196638330 +0000
 @@ -38,14 +38,14 @@
  
  public abstract class LocaleObjectCache<K, V> {
@@ -5133,8 +5464,9 @@
          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/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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/util/logging/PlatformLogger.java	2013-02-12 18:41:16.196638330 +0000
 @@ -113,7 +113,7 @@
  
      // Table of known loggers.  Maps names to PlatformLoggers.
@@ -5162,8 +5494,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/demo/nio/zipfs/Demo.java	2013-02-12 18:41:16.196638330 +0000
 @@ -160,7 +160,7 @@
          }
  
@@ -5197,8 +5530,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipCoder.java	2013-02-12 18:41:16.196638330 +0000
 @@ -142,8 +142,8 @@
          return new ZipCoder(Charset.defaultCharset());
      }
@@ -5210,8 +5544,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileAttributeView.java	2013-02-12 18:41:16.200638396 +0000
 @@ -134,7 +134,7 @@
          throws IOException
      {
@@ -5221,8 +5556,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileSystem.java	2013-02-12 18:41:16.200638396 +0000
 @@ -157,7 +157,7 @@
  
      @Override
@@ -5322,8 +5658,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileSystemProvider.java	2013-02-12 18:41:16.200638396 +0000
 @@ -62,7 +62,7 @@
  public class ZipFileSystemProvider extends FileSystemProvider {
  
@@ -5333,8 +5670,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/solaris/classes/java/lang/ProcessEnvironment.java	2013-02-12 18:41:16.200638396 +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 +5682,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	2013-02-12 18:38:27.621754269 +0000
++++ openjdk-boot/jdk/src/solaris/classes/java/util/prefs/FileSystemPreferences.java	2013-02-12 18:41:16.200638396 +0000
 @@ -354,7 +354,7 @@
       * log against that map.  The resulting map is then written back
       * to the disk.
@@ -5409,8 +5748,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/solaris/classes/sun/net/dns/ResolverConfigurationImpl.java	2013-02-12 18:41:16.200638396 +0000
 @@ -60,7 +60,7 @@
                                            int maxperkeyword,
                                            int maxkeywords)
@@ -5429,8 +5769,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/solaris/classes/sun/nio/cs/ext/CompoundTextSupport.java	2013-02-12 18:41:16.200638396 +0000
 @@ -153,12 +153,12 @@
  
      static {
@@ -5448,8 +5789,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/LinuxFileSystem.java	2013-02-12 18:41:16.200638396 +0000
 @@ -53,7 +53,7 @@
          static final Set<String> supportedFileAttributeViews =
              supportedFileAttributeViews();
@@ -5468,8 +5810,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/LinuxUserDefinedFileAttributeView.java	2013-02-12 18:41:16.200638396 +0000
 @@ -63,7 +63,7 @@
  
      // Parses buffer as array of NULL-terminated C strings.
@@ -5479,8 +5822,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/SolarisAclFileAttributeView.java	2013-02-12 18:41:16.200638396 +0000
 @@ -198,7 +198,7 @@
       * Decode the buffer, returning an ACL
       */
@@ -5490,8 +5834,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/SolarisFileSystem.java	2013-02-12 18:41:16.200638396 +0000
 @@ -76,7 +76,7 @@
          static final Set<String> supportedFileAttributeViews =
              supportedFileAttributeViews();
@@ -5510,8 +5855,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/SolarisUserDefinedFileAttributeView.java	2013-02-12 18:41:16.200638396 +0000
 @@ -83,7 +83,7 @@
                  }
  
@@ -5521,8 +5867,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/UnixFileAttributes.java	2013-02-12 18:41:16.200638396 +0000
 @@ -194,7 +194,7 @@
      @Override
      public Set<PosixFilePermission> permissions() {
@@ -5532,8 +5879,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/windows/classes/java/lang/ProcessEnvironment.java	2013-02-12 18:41:16.200638396 +0000
 @@ -250,7 +250,8 @@
                                     envblock.substring(eql+1,end));
          }
@@ -5554,8 +5902,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/windows/classes/sun/net/dns/ResolverConfigurationImpl.java	2013-02-12 18:41:16.204638462 +0000
 @@ -63,7 +63,7 @@
      // Parse string that consists of token delimited by space or commas
      // and return LinkedHashMap
@@ -5565,8 +5914,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/windows/classes/sun/nio/fs/WindowsFileSystem.java	2013-02-12 18:41:16.204638462 +0000
 @@ -128,7 +128,7 @@
          }
  
@@ -5576,8 +5926,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/windows/classes/sun/nio/fs/WindowsPath.java	2013-02-12 18:41:16.204638462 +0000
 @@ -575,7 +575,7 @@
      // generate offset array
      private void initOffsets() {
@@ -5587,8 +5938,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/windows/classes/sun/nio/fs/WindowsSecurityDescriptor.java	2013-02-12 18:41:16.204638462 +0000
 @@ -378,7 +378,7 @@
              AclInformation aclInfo = GetAclInformation(aclAddress);
              aceCount = aclInfo.aceCount();
@@ -5598,8 +5950,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/windows/classes/sun/nio/fs/WindowsUserDefinedFileAttributeView.java	2013-02-12 18:41:16.204638462 +0000
 @@ -65,7 +65,7 @@
  
      // enumerates the file streams using FindFirstStream/FindNextStream APIs.
@@ -5645,8 +5998,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/test/java/io/Serializable/NPEProvoker/NPEProvoker.java	2013-02-12 18:41:16.204638462 +0000
 @@ -56,7 +56,7 @@
      public static void main(String[] args) {
          System.err.println("\n Regression test for bug 6541870\n");
@@ -5656,8 +6010,21 @@
              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
+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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/test/java/lang/instrument/ilib/InjectBytecodes.java	2013-02-12 18:41:16.204638462 +0000
+@@ -50,7 +50,7 @@
+     private final Injector[] after  = new Injector[256];
+     private final String className;
+     private final String methodName;
+-    private final Map<Integer,byte[]> snippets = new HashMap<>();
++    private final Map<Integer,byte[]> snippets = new HashMap<Integer,byte[]>();
+ 
+     private int pos;
+     private int newPos;
+diff -Nru openjdk-boot.orig/jdk/test/java/lang/instrument/ilib/Inject.java openjdk-boot/jdk/test/java/lang/instrument/ilib/Inject.java
+--- openjdk-boot.orig/jdk/test/java/lang/instrument/ilib/Inject.java	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/test/java/lang/instrument/ilib/Inject.java	2013-02-12 18:41:16.204638462 +0000
 @@ -107,7 +107,7 @@
      class IndexedInjector implements TrackerInjector {
          int counter = 0;
@@ -5667,19 +6034,9 @@
  
          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
-@@ -50,7 +50,7 @@
-     private final Injector[] after  = new Injector[256];
-     private final String className;
-     private final String methodName;
--    private final Map<Integer,byte[]> snippets = new HashMap<>();
-+    private final Map<Integer,byte[]> snippets = new HashMap<Integer,byte[]>();
- 
-     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/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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/test/java/lang/reflect/Generics/TestPlainArrayNotGeneric.java	2013-02-12 18:41:16.204638462 +0000
 @@ -103,7 +103,7 @@
          }
      }
@@ -5689,19 +6046,9 @@
  
      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
-@@ -59,7 +59,7 @@
-             }
-         }
-         final int threadCount = 2;
--        List<RandomCollector> collectors = new ArrayList<>();
-+        List<RandomCollector> collectors = new ArrayList<RandomCollector>();
-         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
+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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/test/java/util/logging/ClassLoaderLeakTest.java	2013-02-12 18:41:16.204638462 +0000
 @@ -89,7 +89,7 @@
  
           MyClassLoader appClassLoader = new MyClassLoader(urls, "test0");
@@ -5711,131 +6058,15 @@
  
  
           Thread appThread = new Thread(appsThreadGroup, launcher, "AppThread-0");
-diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/x509/X509CertImpl.java openjdk-boot/jdk/src/share/classes/sun/security/x509/X509CertImpl.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/x509/X509CertImpl.java	2012-06-13 00:23:50.888084888 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/x509/X509CertImpl.java	2012-06-13 00:24:25.328561965 +0100
-@@ -1214,7 +1214,7 @@
-             if (exts == null) {
-                 return null;
-             }
--            Set<String> extSet = new TreeSet<>();
-+            Set<String> extSet = new TreeSet<String>();
-             for (Extension ex : exts.getAllExtensions()) {
-                 if (ex.isCritical()) {
-                     extSet.add(ex.getExtensionId().toString());
-@@ -1244,7 +1244,7 @@
-             if (exts == null) {
-                 return null;
-             }
--            Set<String> extSet = new TreeSet<>();
-+            Set<String> extSet = new TreeSet<String>();
-             for (Extension ex : exts.getAllExtensions()) {
-                 if (!ex.isCritical()) {
-                     extSet.add(ex.getExtensionId().toString());
-@@ -1484,10 +1484,10 @@
-         if (names.isEmpty()) {
-             return Collections.<List<?>>emptySet();
-         }
--        List<List<?>> newNames = new ArrayList<>();
-+        List<List<?>> newNames = new ArrayList<List<?>>();
-         for (GeneralName gname : names.names()) {
-             GeneralNameInterface name = gname.getName();
--            List<Object> nameEntry = new ArrayList<>(2);
-+            List<Object> nameEntry = new ArrayList<Object>(2);
-             nameEntry.add(Integer.valueOf(name.getType()));
-             switch (name.getType()) {
-             case GeneralNameInterface.NAME_RFC822:
-@@ -1545,12 +1545,12 @@
+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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/test/java/util/Random/DistinctSeeds.java	2013-02-12 18:41:16.204638462 +0000
+@@ -59,7 +59,7 @@
              }
          }
-         if (mustClone) {
--            List<List<?>> namesCopy = new ArrayList<>();
-+            List<List<?>> namesCopy = new ArrayList<List<?>>();
-             for (List<?> nameEntry : altNames) {
-                 Object nameObject = nameEntry.get(1);
-                 if (nameObject instanceof byte[]) {
-                     List<Object> nameEntryCopy =
--                                        new ArrayList<>(nameEntry);
-+                                        new ArrayList<Object>(nameEntry);
-                     nameEntryCopy.set(1, ((byte[])nameObject).clone());
-                     namesCopy.add(Collections.unmodifiableList(nameEntryCopy));
-                 } else {
-diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/x509/X509CRLEntryImpl.java openjdk-boot/jdk/src/share/classes/sun/security/x509/X509CRLEntryImpl.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/x509/X509CRLEntryImpl.java	2012-06-13 00:23:34.591859370 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/x509/X509CRLEntryImpl.java	2012-06-13 00:25:17.953292153 +0100
-@@ -352,7 +352,7 @@
-         if (extensions == null) {
-             return null;
-         }
--        Set<String> extSet = new TreeSet<>();
-+        Set<String> extSet = new TreeSet<String>();
-         for (Extension ex : extensions.getAllExtensions()) {
-             if (ex.isCritical()) {
-                 extSet.add(ex.getExtensionId().toString());
-@@ -373,7 +373,7 @@
-         if (extensions == null) {
-             return null;
-         }
--        Set<String> extSet = new TreeSet<>();
-+        Set<String> extSet = new TreeSet<String>();
-         for (Extension ex : extensions.getAllExtensions()) {
-             if (!ex.isCritical()) {
-                 extSet.add(ex.getExtensionId().toString());
-@@ -510,7 +510,7 @@
-             return Collections.emptyMap();
-         }
-         Collection<Extension> exts = extensions.getAllExtensions();
--        Map<String, java.security.cert.Extension> map = new TreeMap<>();
-+        Map<String, java.security.cert.Extension> map = new TreeMap<String, java.security.cert.Extension>();
-         for (Extension ext : exts) {
-             map.put(ext.getId(), ext);
-         }
-diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/x509/X509CRLImpl.java openjdk-boot/jdk/src/share/classes/sun/secrity/x509/X509CRLImpl.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/x509/X509CRLImpl.java	2012-06-13 00:23:41.063948918 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/x509/X509CRLImpl.java	2012-06-13 00:24:53.264949412 +0100
-@@ -104,8 +104,8 @@
-     private X500Principal    issuerPrincipal = null;
-     private Date             thisUpdate = null;
-     private Date             nextUpdate = null;
--    private Map<X509IssuerSerial,X509CRLEntry> revokedMap = new TreeMap<>();
--    private List<X509CRLEntry> revokedList = new LinkedList<>();
-+    private Map<X509IssuerSerial,X509CRLEntry> revokedMap = new TreeMap<X509IssuerSerial,X509CRLEntry>();
-+    private List<X509CRLEntry> revokedList = new LinkedList<X509CRLEntry>();
-     private CRLExtensions    extensions = null;
-     private final static boolean isExplicit = true;
-     private static final long YR_2050 = 2524636800000L;
-@@ -907,7 +907,7 @@
-         if (extensions == null) {
-             return null;
-         }
--        Set<String> extSet = new TreeSet<>();
-+        Set<String> extSet = new TreeSet<String>();
-         for (Extension ex : extensions.getAllExtensions()) {
-             if (ex.isCritical()) {
-                 extSet.add(ex.getExtensionId().toString());
-@@ -928,7 +928,7 @@
-         if (extensions == null) {
-             return null;
-         }
--        Set<String> extSet = new TreeSet<>();
-+        Set<String> extSet = new TreeSet<String>();
-         for (Extension ex : extensions.getAllExtensions()) {
-             if (!ex.isCritical()) {
-                 extSet.add(ex.getExtensionId().toString());
-diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/beans/decoder/DocumentHandler.java openjdk-boot/jdk/src/share/classes/com/sun/beans/decoder/DocumentHandler.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/beans/decoder/DocumentHandler.java	2012-10-17 02:42:13.610815469 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/beans/decoder/DocumentHandler.java	2012-10-17 02:43:02.995461481 +0100
-@@ -62,9 +62,10 @@
-  */
- public final class DocumentHandler extends DefaultHandler {
-     private final AccessControlContext acc = AccessController.getContext();
--    private final Map<String, Class<? extends ElementHandler>> handlers = new HashMap<>();
--    private final Map<String, Object> environment = new HashMap<>();
--    private final List<Object> objects = new ArrayList<>();
-+    private final Map<String, Class<? extends ElementHandler>> handlers =
-+					      new HashMap<String, Class<? extends ElementHandler>>();
-+    private final Map<String, Object> environment = new HashMap<String, Object>();
-+    private final List<Object> objects = new ArrayList<Object>();
- 
-     private Reference<ClassLoader> loader;
-     private ExceptionListener listener;
+         final int threadCount = 2;
+-        List<RandomCollector> collectors = new ArrayList<>();
++        List<RandomCollector> collectors = new ArrayList<RandomCollector>();
+         List<Thread> threads = new ArrayList<Thread>();
+         for (int i = 0; i < threadCount; i++) {
+             RandomCollector r = new RandomCollector();
--- a/patches/boot/ecj-trywithresources.patch	Wed Jan 16 01:32:13 2013 +0000
+++ b/patches/boot/ecj-trywithresources.patch	Wed Feb 13 12:45:56 2013 +0000
@@ -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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/BandStructure.java	2013-02-12 18:29:46.585120841 +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	2013-02-12 17:28:35.853324186 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java	2013-02-12 18:29:46.585120841 +0000
+@@ -150,8 +150,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 @@
+@@ -342,9 +347,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 @@
+@@ -403,7 +413,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 @@
+@@ -417,6 +429,9 @@
                  }
              }
              return "";
@@ -106,9 +108,10 @@
          }
      }
  
---- 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
-@@ -241,9 +241,15 @@
+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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/NativeUnpack.java	2013-02-12 18:29:46.589120905 +0000
+@@ -245,9 +245,15 @@
      void run(File inFile, JarOutputStream jstream) throws IOException {
          // %%% maybe memory-map the file, and pass it straight into unpacker
          ByteBuffer mappedFile = null;
@@ -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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageReader.java	2013-02-12 18:29:46.589120905 +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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageWriter.java	2013-02-12 18:29:46.589120905 +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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PropMap.java	2013-02-12 18:29:46.589120905 +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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/UnpackerImpl.java	2013-02-12 18:29:46.589120905 +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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Utils.java	2013-02-12 18:29:46.589120905 +0000
 @@ -268,18 +268,30 @@
          // 4947205 : Peformance is slow when using pack-effort=0
          out = new BufferedOutputStream(out);
@@ -296,8 +304,29 @@
      }
          // 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/invoke/MethodHandleImpl.java openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandleImpl.java
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/MethodHandleImpl.java	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandleImpl.java	2013-02-12 18:29:46.593120970 +0000
+@@ -1401,10 +1401,14 @@
+                             java.net.URLConnection uconn = tClass.getResource(tResource).openConnection();
+                             int len = uconn.getContentLength();
+                             byte[] bytes = new byte[len];
+-                            try (java.io.InputStream str = uconn.getInputStream()) {
++			    java.io.InputStream str = null;
++                            try {
++				str = uconn.getInputStream(); 
+                                 int nr = str.read(bytes);
+                                 if (nr != len)  throw new java.io.IOException(tResource);
+-                            }
++                            } finally {
++				str.close();
++			    }
+                             values[0] = bytes;
+                         } catch (java.io.IOException ex) {
+                             throw new InternalError(ex.toString());
+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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/lang/Package.java	2013-02-12 18:29:46.589120905 +0000
 @@ -575,12 +575,23 @@
       * Returns the Manifest for the specified JAR file name.
       */
@@ -325,8 +354,23 @@
          }
      }
  
---- 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/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	2013-02-12 18:50:43.281778692 +0000
++++ openjdk-boot/jdk/src/share/classes/java/lang/reflect/Proxy.java	2013-02-12 18:51:43.618749839 +0000
+@@ -738,7 +738,9 @@
+     private static Object newInstance(Constructor<?> cons, InvocationHandler h) {
+         try {
+             return cons.newInstance(new Object[] {h} );
+-        } catch (IllegalAccessException | InstantiationException e) {
++        } catch (IllegalAccessException e) {
++            throw new InternalError(e.toString());
++        } catch (InstantiationException e) {
+             throw new InternalError(e.toString());
+         } catch (InvocationTargetException e) {
+             Throwable t = e.getCause();
+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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/nio/channels/SocketChannel.java	2013-02-12 18:29:46.589120905 +0000
 @@ -188,7 +188,7 @@
              } catch (Throwable suppressed) {
                  x.addSuppressed(suppressed);
@@ -336,8 +380,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/nio/file/CopyMoveHelper.java	2013-02-12 18:29:46.589120905 +0000
 @@ -122,9 +122,15 @@
          if (attrs.isDirectory()) {
              Files.createDirectory(target);
@@ -364,8 +409,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/nio/file/Files.java	2013-02-12 18:29:46.589120905 +0000
 @@ -2833,8 +2833,11 @@
          }
  
@@ -478,8 +524,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/Currency.java	2013-02-12 18:29:46.589120905 +0000
 @@ -233,9 +233,14 @@
                                               "currency.properties");
                      if (propFile.exists()) {
@@ -496,46 +543,29 @@
                          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
-@@ -376,9 +376,15 @@
+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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/java/util/jar/JarFile.java	2013-02-12 18:36:42.639288556 +0000
+@@ -383,9 +383,14 @@
+      * META-INF files.
       */
      private byte[] getBytes(ZipEntry ze) throws IOException {
-         byte[] b = new byte[(int)ze.getSize()];
--        try (DataInputStream is = new DataInputStream(super.getInputStream(ze))) {
-+        DataInputStream is = null;
+-        try (InputStream is = super.getInputStream(ze)) {
++	InputStream is = null;
 +        try {
-+            is = new DataInputStream(super.getInputStream(ze));
-             is.readFully(b, 0, b.length);
-         }
-+        finally {
-+            if (is != null)
-+                is.close();
-+        }
-         return b;
++	    is = super.getInputStream(ze);
+             return IOUtils.readFully(is, (int)ze.getSize(), true);
+-        }
++        } finally {
++	    if (is != null)
++		is.close();
++	}
      }
  
-@@ -480,11 +486,15 @@
-             JarEntry manEntry = getManEntry();
-             if (manEntry != null) {
-                 byte[] b = new byte[(int)manEntry.getSize()];
--                try (DataInputStream dis = new DataInputStream(
--                         super.getInputStream(manEntry))) {
-+                DataInputStream dis = null;
-+                try {
-+                    dis = new DataInputStream(super.getInputStream(manEntry));
-                     dis.readFully(b, 0, b.length);
-                 }
--
-+                finally {
-+                    if (dis != null)
-+                        dis.close();
-+                }
-                 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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/javax/sql/rowset/serial/SerialClob.java	2013-02-12 18:29:46.593120970 +0000
 @@ -144,8 +144,9 @@
          buf = new char[(int)len];
          int read = 0;
@@ -594,8 +624,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/javax/sql/rowset/spi/SyncFactory.java	2013-02-12 18:29:46.593120970 +0000
 @@ -367,9 +367,15 @@
                      // Load user's implementation of SyncProvider
                      // here. -Drowset.properties=/abc/def/pqr.txt
@@ -637,8 +668,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/net/www/protocol/jar/URLJarFile.java	2013-02-12 18:29:46.593120970 +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 +703,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/nio/fs/PollingWatchService.java	2013-02-12 18:29:46.593120970 +0000
 @@ -255,7 +255,9 @@
              this.entries = new HashMap<Path,CacheEntry>();
  
@@ -695,8 +728,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/ktab/KeyTab.java	2013-02-12 18:29:46.593120970 +0000
 @@ -92,9 +92,13 @@
          tabName = filename;
          try {
@@ -764,8 +798,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/security/provider/SeedGenerator.java	2013-02-12 18:29:46.593120970 +0000
 @@ -179,7 +179,9 @@
                          // The temporary dir
                          File f = new File(p.getProperty("java.io.tmpdir"));
@@ -788,8 +823,9 @@
                          }
                      } 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/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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/classes/sun/util/calendar/LocalGregorianCalendar.java	2013-02-12 18:29:46.593120970 +0000
 @@ -127,9 +127,15 @@
              calendarProps = (Properties) AccessController.doPrivileged(new PrivilegedExceptionAction() {
                  public Object run() throws IOException {
@@ -807,8 +843,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/share/demo/jfc/Font2DTest/RangeMenu.java	2013-02-12 18:29:46.593120970 +0000
 @@ -200,7 +200,7 @@
      }
  
@@ -818,8 +855,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/solaris/classes/java/util/prefs/FileSystemPreferences.java	2013-02-12 18:29:46.593120970 +0000
 @@ -569,11 +569,11 @@
                  public Void run() throws BackingStoreException {
                      Map<String, String> m = new TreeMap<>();
@@ -882,8 +920,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	2013-02-11 23:04:45.000000000 +0000
++++ openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/UnixFileStore.java	2013-02-12 18:29:46.593120970 +0000
 @@ -255,9 +255,16 @@
          String fstypes = System.getProperty("java.home") + "/lib/fstypes.properties";
          Path file = Paths.get(fstypes);
@@ -902,23 +941,3 @@
          } catch (IOException x) {
          }
          return result;
-diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/MethodHandleImpl.java openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandleImpl.java
---- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/MethodHandleImpl.java	2012-10-17 03:17:03.331299684 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandleImpl.java	2012-10-17 03:18:04.192329905 +0100
-@@ -1401,10 +1401,14 @@
-                             java.net.URLConnection uconn = tClass.getResource(tResource).openConnection();
-                             int len = uconn.getContentLength();
-                             byte[] bytes = new byte[len];
--                            try (java.io.InputStream str = uconn.getInputStream()) {
-+			    java.io.InputStream str = null;
-+                            try {
-+				str = uconn.getInputStream(); 
-                                 int nr = str.read(bytes);
-                                 if (nr != len)  throw new java.io.IOException(tResource);
--                            }
-+                            } finally {
-+				str.close();
-+			    }
-                             values[0] = bytes;
-                         } catch (java.io.IOException ex) {
-                             throw new InternalError(ex.toString());