changeset 2626:397dd0f8e62a

Update to u20 b17. 2013-04-04 Andrew John Hughes <gnu_andrew@member.fsf.org> * patches/zero_libffi.patch: Removed; upstreamed to IcedTea. * Makefile.am: (OPENJDK_VERSION): Bump to b17. (JDK_UPDATE_VERSION): Bump to 20. (CORBA_CHANGESET): Update to IcedTea7 forest head. (JAXP_CHANGESET): Likewise. (JAXWS_CHANGESET): Likewise. (JDK_CHANGESET): Likewise. (LANGTOOLS_CHANGESET): Likewise. (OPENJDK_CHANGESET): Likewise. (CORBA_SHA256SUM): Likewise. (JAXP_SHA256SUM): Likewise. (JAXWS_SHA256SUM): Likewise. (JDK_SHA256SUM): Likewise. (LANGTOOLS_SHA256SUM): Likewise. (OPENJDK_SHA256SUM): Likewise. (ICEDTEA_PATCHES): Set empty again. * hotspot.map: Update to IcedTea7 forest head. * patches/boot/ecj-diamond.patch: Regenerate, add new cases in JarFileFactory.java, java.util.logging.Level, java.util.logging.LogManager and JdpPacketReader. * patches/boot/ecj-multicatch.patch: Regenerate, add new case in java.lang.reflect.Proxy. * patches/boot/ecj-stringswitch.patch, * patches/boot/ecj-trywithresources.patch: Regenerated. * patches/boot/xsltproc.patch: Undo removal of XSLT setting as not needed (command line overrides anyway). Patch new trace.make as well. * patches/systemtap_gc.patch: Regenerated.
author Andrew John Hughes <gnu_andrew@member.fsf.org>
date Thu, 04 Apr 2013 22:52:56 +0100
parents 9b9b5df83038
children 3757116b4861
files ChangeLog Makefile.am hotspot.map patches/boot/ecj-diamond.patch patches/boot/ecj-multicatch.patch patches/boot/ecj-stringswitch.patch patches/boot/ecj-trywithresources.patch patches/boot/xsltproc.patch patches/systemtap_gc.patch patches/zero_libffi.patch
diffstat 10 files changed, 1719 insertions(+), 1686 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Thu Mar 28 00:18:00 2013 +0000
+++ b/ChangeLog	Thu Apr 04 22:52:56 2013 +0100
@@ -1,3 +1,39 @@
+2013-04-04  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+	* patches/zero_libffi.patch:
+	Removed; upstreamed to IcedTea.
+	* Makefile.am:
+	(OPENJDK_VERSION): Bump to b17.
+	(JDK_UPDATE_VERSION): Bump to 20.
+	(CORBA_CHANGESET): Update to IcedTea7 forest head.
+	(JAXP_CHANGESET): Likewise.
+	(JAXWS_CHANGESET): Likewise.
+	(JDK_CHANGESET): Likewise.
+	(LANGTOOLS_CHANGESET): Likewise.
+	(OPENJDK_CHANGESET): Likewise.
+	(CORBA_SHA256SUM): Likewise.
+	(JAXP_SHA256SUM): Likewise.
+	(JAXWS_SHA256SUM): Likewise.
+	(JDK_SHA256SUM): Likewise.
+	(LANGTOOLS_SHA256SUM): Likewise.
+	(OPENJDK_SHA256SUM): Likewise.
+	(ICEDTEA_PATCHES): Set empty again.
+	* hotspot.map: Update to IcedTea7 forest head.
+	* patches/boot/ecj-diamond.patch:
+	Regenerate, add new cases in JarFileFactory.java,
+	java.util.logging.Level, java.util.logging.LogManager
+	and JdpPacketReader.
+	* patches/boot/ecj-multicatch.patch:
+	Regenerate, add new case in java.lang.reflect.Proxy.
+	* patches/boot/ecj-stringswitch.patch,
+	* patches/boot/ecj-trywithresources.patch:
+	Regenerated.
+	* patches/boot/xsltproc.patch:
+	Undo removal of XSLT setting as not needed (command
+	line overrides anyway).  Patch new trace.make as
+	well.
+	* patches/systemtap_gc.patch: Regenerated.
+
 2013-03-27  Andrew John Hughes  <gnu_andrew@member.fsf.org>
 
 	* Makefile.am:
--- a/Makefile.am	Thu Mar 28 00:18:00 2013 +0000
+++ b/Makefile.am	Thu Apr 04 22:52:56 2013 +0100
@@ -1,22 +1,22 @@
 # Dependencies
 
-OPENJDK_VERSION = b09
-JDK_UPDATE_VERSION = 12
+OPENJDK_VERSION = b17
+JDK_UPDATE_VERSION = 20
 COMBINED_VERSION = $(JDK_UPDATE_VERSION)-$(OPENJDK_VERSION)
 
-CORBA_CHANGESET = 679412ed11d5
-JAXP_CHANGESET = cba4d3377850
-JAXWS_CHANGESET = a7541d353428
-JDK_CHANGESET = 67b0266bbd5d
-LANGTOOLS_CHANGESET = 31539542e9e5
-OPENJDK_CHANGESET = 2d1ddf672d61
+CORBA_CHANGESET = 04ad0a30f564
+JAXP_CHANGESET = e17ab897041e
+JAXWS_CHANGESET = 7169780eff51
+JDK_CHANGESET = bc455fc9948f
+LANGTOOLS_CHANGESET = 5f4ad2269018
+OPENJDK_CHANGESET = 8714dddd443a
 
-CORBA_SHA256SUM = 20b9840fa09f8e89a141cbe0b08794588f8534ba760cf08cee34feaea3018bc4
-JAXP_SHA256SUM = d04ae1702118dd42e5f7c3796dab0214a44f27b8381464536877cded732f6b77
-JAXWS_SHA256SUM = ada222989022c456d6ebd417891fb4b575d47da1134bd0ca631fb5deea7cbed8
-JDK_SHA256SUM = 8f7b1ce3fea28901366530e152c479117cbb3c37a5a7f069a52531f7b7d01c4f
-LANGTOOLS_SHA256SUM = 7cc3816acebfeac0211161cc39472b38f87587f4d41fa3e153109e27df4c02c8
-OPENJDK_SHA256SUM = 43aef86d067f66f2cd3b6895cc166e056b05603ee585ba50b5a82d41e7924a16
+CORBA_SHA256SUM = 625fd145c5e7bbd92f28321d2584d116279cb0bf07f417d0f463f57c78b90526
+JAXP_SHA256SUM = 698244f0a12cc7fa6c2994db7b0771ff7c4e00d6457aabb9c326778d0a078650
+JAXWS_SHA256SUM = cff9fb3f14aad77b6415418556805cbb23779d2b5fc6b7ebfd7bea5100b139fe
+JDK_SHA256SUM = 54c3fff10484ce96b23599228ca99be89f4c433441da7489648c42fd8f03c0c8
+LANGTOOLS_SHA256SUM = 925f8166907dda64491dcaff51460ee83090d060f76abb4ff0efa7b9e1612a17
+OPENJDK_SHA256SUM = 7b500b6306981d0182a12e90b37182741df9931b34107a13686a77951ff7b0b3
 
 CACAO_VERSION = a567bcb7f589
 CACAO_SHA256SUM = d49f79debc131a5694cae6ab3ba2864e7f3249ee8d9dc09aae8afdd4dc6b09f9
@@ -232,7 +232,7 @@
 
 # Patch list
 
-ICEDTEA_PATCHES = patches/zero_libffi.patch
+ICEDTEA_PATCHES = 
 
 # Conditional patches
 
--- a/hotspot.map	Thu Mar 28 00:18:00 2013 +0000
+++ b/hotspot.map	Thu Apr 04 22:52:56 2013 +0100
@@ -1,1 +1,2 @@
-default http://icedtea.classpath.org/hg/icedtea7-forest/hotspot 7e12b7098f20 dc85dde54f736507e83f718a587020b89d5e6c532a33a18cabd17dedef5db80b
+# version url changeset sha256sum
+default http://icedtea.classpath.org/hg/icedtea7-forest/hotspot b9bbe418db87 af823ea6283514495a42c291ed1d7d79c2ee86f8917e5f6f2782218a193546d9
--- a/patches/boot/ecj-diamond.patch	Thu Mar 28 00:18:00 2013 +0000
+++ b/patches/boot/ecj-diamond.patch	Thu Apr 04 22:52:56 2013 +0100
@@ -1,6 +1,6 @@
 diff -Nru openjdk-boot.orig/corba/src/share/classes/com/sun/corba/se/impl/encoding/CachedCodeBase.java openjdk-boot/corba/src/share/classes/com/sun/corba/se/impl/encoding/CachedCodeBase.java
---- openjdk-boot.orig/corba/src/share/classes/com/sun/corba/se/impl/encoding/CachedCodeBase.java	2012-11-30 12:17:00.000000000 +0000
-+++ openjdk-boot/corba/src/share/classes/com/sun/corba/se/impl/encoding/CachedCodeBase.java	2012-11-30 15:09:47.167537938 +0000
+--- openjdk-boot.orig/corba/src/share/classes/com/sun/corba/se/impl/encoding/CachedCodeBase.java	2013-04-03 14:17:36.000000000 +0100
++++ openjdk-boot/corba/src/share/classes/com/sun/corba/se/impl/encoding/CachedCodeBase.java	2013-04-04 18:13:31.220314739 +0100
 @@ -58,7 +58,7 @@
      private CorbaConnection conn;
  
@@ -11,8 +11,8 @@
      public static synchronized void cleanCache( ORB orb ) {
          synchronized (iorMapLock) {
 diff -Nru openjdk-boot.orig/corba/src/share/classes/com/sun/corba/se/impl/orb/ORBImpl.java openjdk-boot/corba/src/share/classes/com/sun/corba/se/impl/orb/ORBImpl.java
---- openjdk-boot.orig/corba/src/share/classes/com/sun/corba/se/impl/orb/ORBImpl.java	2012-11-30 12:17:00.000000000 +0000
-+++ openjdk-boot/corba/src/share/classes/com/sun/corba/se/impl/orb/ORBImpl.java	2012-11-30 15:09:47.183538189 +0000
+--- openjdk-boot.orig/corba/src/share/classes/com/sun/corba/se/impl/orb/ORBImpl.java	2013-04-03 14:17:36.000000000 +0100
++++ openjdk-boot/corba/src/share/classes/com/sun/corba/se/impl/orb/ORBImpl.java	2013-04-04 18:13:31.232314934 +0100
 @@ -1316,7 +1316,7 @@
      protected void shutdownServants(boolean wait_for_completion) {
          Set<ObjectAdapterFactory> oaset;
@@ -23,8 +23,8 @@
  
          for (ObjectAdapterFactory oaf : oaset)
 diff -Nru openjdk-boot.orig/corba/src/share/classes/com/sun/corba/se/impl/orbutil/threadpool/ThreadPoolImpl.java openjdk-boot/corba/src/share/classes/com/sun/corba/se/impl/orbutil/threadpool/ThreadPoolImpl.java
---- openjdk-boot.orig/corba/src/share/classes/com/sun/corba/se/impl/orbutil/threadpool/ThreadPoolImpl.java	2012-11-30 12:17:00.000000000 +0000
-+++ openjdk-boot/corba/src/share/classes/com/sun/corba/se/impl/orbutil/threadpool/ThreadPoolImpl.java	2012-11-30 15:09:47.183538189 +0000
+--- openjdk-boot.orig/corba/src/share/classes/com/sun/corba/se/impl/orbutil/threadpool/ThreadPoolImpl.java	2013-04-03 14:17:36.000000000 +0100
++++ openjdk-boot/corba/src/share/classes/com/sun/corba/se/impl/orbutil/threadpool/ThreadPoolImpl.java	2013-04-04 18:13:31.236314998 +0100
 @@ -108,7 +108,7 @@
      private ThreadGroup threadGroup;
  
@@ -44,8 +44,8 @@
  
          for (WorkerThread wt : copy) {
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/beans/decoder/DocumentHandler.java openjdk-boot/jdk/src/share/classes/com/sun/beans/decoder/DocumentHandler.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/beans/decoder/DocumentHandler.java	2012-11-30 15:19:29.516788251 +0000
-+++ openjdk-boot/jdk/src/share/classes/com/sun/beans/decoder/DocumentHandler.java	2012-11-30 15:20:13.301492126 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/beans/decoder/DocumentHandler.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/beans/decoder/DocumentHandler.java	2013-04-04 18:13:31.240315064 +0100
 @@ -62,9 +62,10 @@
   */
  public final class DocumentHandler extends DefaultHandler {
@@ -61,8 +61,8 @@
      private Reference<ClassLoader> loader;
      private ExceptionListener listener;
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/beans/TypeResolver.java openjdk-boot/jdk/src/share/classes/com/sun/beans/TypeResolver.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/beans/TypeResolver.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/com/sun/beans/TypeResolver.java	2012-11-30 15:09:47.183538189 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/beans/TypeResolver.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/beans/TypeResolver.java	2013-04-04 18:13:31.244315128 +0100
 @@ -46,7 +46,7 @@
   */
  public final class TypeResolver {
@@ -82,8 +82,8 @@
                      CACHE.put(actual, map);
                  }
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Attribute.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Attribute.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Attribute.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Attribute.java	2012-11-30 15:09:47.183538189 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Attribute.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Attribute.java	2013-04-04 18:13:31.252315258 +0100
 @@ -104,9 +104,9 @@
          return this.def.compareTo(that.def);
      }
@@ -155,8 +155,8 @@
          for (int i = 0; i < layout.length(); i++) {
              if (layout.charAt(i++) != '[')
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/BandStructure.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/BandStructure.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/BandStructure.java	2012-11-30 15:06:26.904399058 +0000
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/BandStructure.java	2012-11-30 15:09:47.183538189 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/BandStructure.java	2013-04-04 18:12:33.935383238 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/BandStructure.java	2013-04-04 18:13:31.272315583 +0100
 @@ -257,7 +257,7 @@
          assert(basicCodings[_meta_default] == null);
          assert(basicCodings[_meta_canon_min] != null);
@@ -166,7 +166,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.
@@ -177,7 +177,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).
@@ -186,7 +186,7 @@
  
      // Well-known attributes:
      protected final Attribute.Layout attrCodeEmpty;
-@@ -1713,11 +1713,11 @@
+@@ -1714,11 +1714,11 @@
      protected final Attribute.Layout attrConstantValue;
  
      // Mapping from Attribute.Layout to Integer (inverse of attrDefs)
@@ -200,7 +200,7 @@
      {
          for (int i = 0; i < ATTR_CONTEXT_LIMIT; i++) {
              assert(attrIndexLimit[i] == 0);
-@@ -1912,7 +1912,7 @@
+@@ -1913,7 +1913,7 @@
  
      protected List getPredefinedAttrs(int ctype) {
          assert(attrIndexLimit[ctype] != 0);
@@ -209,7 +209,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)
@@ -219,8 +219,8 @@
          return true;
      }
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/ClassReader.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/ClassReader.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/ClassReader.java	2012-11-30 15:06:23.496345660 +0000
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/ClassReader.java	2012-11-30 15:09:47.187538251 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/ClassReader.java	2013-04-04 18:12:33.863382065 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/ClassReader.java	2013-04-04 18:13:31.276315648 +0100
 @@ -466,7 +466,7 @@
  
      void readInnerClasses(Class cls) throws IOException {
@@ -231,8 +231,8 @@
              InnerClass ic =
                  new InnerClass(readClassRef(),
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/CodingChooser.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/CodingChooser.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/CodingChooser.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/CodingChooser.java	2012-11-30 15:09:47.187538251 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/CodingChooser.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/CodingChooser.java	2013-04-04 18:13:31.280315713 +0100
 @@ -743,9 +743,9 @@
          // Steps 1/2/3 are interdependent, and may be iterated.
          // Steps 4 and 5 may be decided independently afterward.
@@ -269,8 +269,8 @@
                  if (popset.add(values[i]))  popvals.add(values[i]);
              }
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Coding.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Coding.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Coding.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Coding.java	2012-11-30 15:09:47.187538251 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Coding.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Coding.java	2013-04-04 18:13:31.284315778 +0100
 @@ -402,7 +402,7 @@
      private static Map<Coding, Coding> codeMap;
  
@@ -281,8 +281,8 @@
          Coding x1 = codeMap.get(x0);
          if (x1 == null)  codeMap.put(x0, x1 = x0);
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/ConstantPool.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/ConstantPool.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/ConstantPool.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/ConstantPool.java	2012-11-30 15:09:47.187538251 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/ConstantPool.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/ConstantPool.java	2013-04-04 18:13:31.292315907 +0100
 @@ -919,7 +919,7 @@
      public static
      Index[] partition(Index ix, int[] keys) {
@@ -301,7 +301,7 @@
              }
              part.add(cpMap[i]);
          }
-@@ -1137,7 +1137,7 @@
+@@ -1139,7 +1139,7 @@
      void completeReferencesIn(Set<Entry> cpRefs, boolean flattenSigs) {
          cpRefs.remove(null);
          for (ListIterator<Entry> work =
@@ -311,8 +311,8 @@
              Entry e = work.previous();
              work.remove();          // pop stack
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java	2012-11-30 15:06:26.904399058 +0000
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java	2012-11-30 15:09:47.187538251 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java	2013-04-04 18:12:33.935383238 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java	2013-04-04 18:13:31.292315907 +0100
 @@ -61,7 +61,7 @@
                  ResourceBundle.getBundle("com.sun.java.util.jar.pack.DriverResource");
  
@@ -350,8 +350,8 @@
          for (String optline : options.split("\n")) {
              String[] words = optline.split("\\p{Space}+");
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/FixedList.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/FixedList.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/FixedList.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/FixedList.java	2012-11-30 15:09:47.187538251 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/FixedList.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/FixedList.java	2013-04-04 18:13:31.296315973 +0100
 @@ -45,7 +45,7 @@
      private final ArrayList<E> flist;
  
@@ -362,8 +362,8 @@
          for (int i = 0 ; i < capacity ; i++) {
              flist.add(null);
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Package.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Package.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Package.java	2012-11-30 15:06:23.688348668 +0000
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Package.java	2012-11-30 15:09:47.187538251 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Package.java	2013-04-04 18:12:33.863382065 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Package.java	2013-04-04 18:13:31.304316103 +0100
 @@ -112,7 +112,7 @@
      public static final Attribute.Layout attrSourceFileSpecial;
      public static final Map<Attribute.Layout, Attribute> attrDefs;
@@ -519,8 +519,8 @@
              // Add to the end of ths list:
              if (!fileSet.contains(cls.file))
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageReader.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageReader.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageReader.java	2012-11-30 15:06:26.908399120 +0000
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageReader.java	2012-11-30 15:09:47.187538251 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageReader.java	2013-04-04 18:12:33.935383238 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageReader.java	2013-04-04 18:13:31.308316167 +0100
 @@ -686,7 +686,7 @@
          cp_Signature_classes.expectLength(getIntTotal(numSigClasses));
          cp_Signature_classes.readFrom(in);
@@ -634,8 +634,8 @@
              ClassEntry thisClass  = curClass.thisClass;
              ClassEntry superClass = curClass.superClass;
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageWriter.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageWriter.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageWriter.java	2012-11-30 15:06:26.908399120 +0000
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageWriter.java	2012-11-30 15:09:47.187538251 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageWriter.java	2013-04-04 18:12:33.935383238 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageWriter.java	2013-04-04 18:13:31.312316233 +0100
 @@ -116,7 +116,7 @@
      int[][]     attrCounts;       // count attr. occurences
  
@@ -691,8 +691,8 @@
          for (Class cls : pkg.classes) {
              if (!cls.hasInnerClasses())  continue;
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PackerImpl.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackerImpl.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PackerImpl.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackerImpl.java	2012-11-30 15:09:47.187538251 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PackerImpl.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackerImpl.java	2013-04-04 18:13:31.316316297 +0100
 @@ -183,8 +183,8 @@
          final Map<Attribute.Layout, Attribute> attrDefs;
          final Map<Attribute.Layout, String> attrCommands;
@@ -723,8 +723,8 @@
                  for (JarEntry je : Collections.list(jf.entries())) {
                      InFile inFile = new InFile(jf, je);
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PopulationCoding.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PopulationCoding.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PopulationCoding.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PopulationCoding.java	2012-11-30 15:09:47.187538251 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PopulationCoding.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PopulationCoding.java	2013-04-04 18:13:31.316316297 +0100
 @@ -309,7 +309,7 @@
          // As each new value is added, we assert that the value
          // was not already in the set.
@@ -735,8 +735,8 @@
          maxForDebug += fillp;
          int min = Integer.MIN_VALUE;  // farthest from the center
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PropMap.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PropMap.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PropMap.java	2012-11-30 15:06:26.908399120 +0000
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PropMap.java	2012-11-30 15:09:47.191538314 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PropMap.java	2013-04-04 18:12:33.935383238 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PropMap.java	2013-04-04 18:13:31.320316362 +0100
 @@ -48,8 +48,8 @@
   */
  
@@ -767,8 +767,8 @@
          while (res.remove(null));
          return res;
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/TLGlobals.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/TLGlobals.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/TLGlobals.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/TLGlobals.java	2012-11-30 15:09:47.191538314 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/TLGlobals.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/TLGlobals.java	2013-04-04 18:13:31.324316427 +0100
 @@ -58,12 +58,12 @@
      private final Map<String, MemberEntry> memberEntries;
  
@@ -789,8 +789,8 @@
      }
  
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/UnpackerImpl.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/UnpackerImpl.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/UnpackerImpl.java	2012-11-30 15:06:26.908399120 +0000
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/UnpackerImpl.java	2012-11-30 15:09:47.191538314 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/UnpackerImpl.java	2013-04-04 18:12:33.935383238 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/UnpackerImpl.java	2013-04-04 18:13:31.328316492 +0100
 @@ -233,7 +233,7 @@
              props.setProperty(java.util.jar.Pack200.Unpacker.PROGRESS,"50");
              pkg.ensureAllClassFiles();
@@ -801,8 +801,8 @@
                  String name = file.nameString;
                  JarEntry je = new JarEntry(Utils.getJarEntryName(name));
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Utils.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Utils.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Utils.java	2012-11-30 15:06:26.908399120 +0000
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Utils.java	2012-11-30 15:09:47.191538314 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Utils.java	2013-04-04 18:12:33.935383238 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Utils.java	2013-04-04 18:13:31.328316492 +0100
 @@ -132,7 +132,7 @@
      // Keep a TLS point to the global data and environment.
      // This makes it simpler to supply environmental options
@@ -812,9 +812,33 @@
  
      // convenience methods to access the TL globals
      static TLGlobals getTLGlobals() {
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/rmi/rmid/ExecOptionPermission.java openjdk-boot/jdk/src/share/classes/com/sun/rmi/rmid/ExecOptionPermission.java
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/rmi/rmid/ExecOptionPermission.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/rmi/rmid/ExecOptionPermission.java	2013-04-04 18:13:31.752323374 +0100
+@@ -231,7 +231,7 @@
+          * Create an empty ExecOptionPermissionCollection.
+          */
+         public ExecOptionPermissionCollection() {
+-            permissions = new Hashtable<>(11);
++            permissions = new Hashtable<String, Permission>(11);
+             all_allowed = false;
+         }
+ 
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/rmi/rmid/ExecPermission.java openjdk-boot/jdk/src/share/classes/com/sun/rmi/rmid/ExecPermission.java
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/rmi/rmid/ExecPermission.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/rmi/rmid/ExecPermission.java	2013-04-04 18:13:31.752323374 +0100
+@@ -235,7 +235,7 @@
+          * Create an empty ExecPermissionCollection.
+          */
+         public ExecPermissionCollection() {
+-            permissions = new Vector<>();
++            permissions = new Vector<Permission>();
+         }
+ 
+         /**
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/rowset/CachedRowSetImpl.java openjdk-boot/jdk/src/share/classes/com/sun/rowset/CachedRowSetImpl.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/rowset/CachedRowSetImpl.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/com/sun/rowset/CachedRowSetImpl.java	2012-11-30 15:09:47.191538314 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/rowset/CachedRowSetImpl.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/rowset/CachedRowSetImpl.java	2013-04-04 18:13:31.332316557 +0100
 @@ -1284,7 +1284,7 @@
       */
      public Collection<?> toCollection() throws SQLException {
@@ -834,8 +858,8 @@
          // create a copy
          CachedRowSetImpl crsTemp;
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/rowset/JoinRowSetImpl.java openjdk-boot/jdk/src/share/classes/com/sun/rowset/JoinRowSetImpl.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/rowset/JoinRowSetImpl.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/com/sun/rowset/JoinRowSetImpl.java	2012-11-30 15:09:47.191538314 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/rowset/JoinRowSetImpl.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/rowset/JoinRowSetImpl.java	2013-04-04 18:13:31.336316622 +0100
 @@ -222,7 +222,7 @@
             // either of the setter methods have been set.
             if(boolColId){
@@ -846,8 +870,8 @@
                    if( (strMatchKey = (cRowset.getMatchColumnNames())[i]) != null) {
                        iMatchKey = cRowset.findColumn(strMatchKey);
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/callback/DialogCallbackHandler.java openjdk-boot/jdk/src/share/classes/com/sun/security/auth/callback/DialogCallbackHandler.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/callback/DialogCallbackHandler.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/callback/DialogCallbackHandler.java	2012-11-30 15:09:47.191538314 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/callback/DialogCallbackHandler.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/callback/DialogCallbackHandler.java	2013-04-04 18:13:31.340316687 +0100
 @@ -99,10 +99,10 @@
          throws UnsupportedCallbackException
      {
@@ -862,8 +886,8 @@
          ConfirmationInfo confirmation = new ConfirmationInfo();
  
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/login/ConfigFile.java openjdk-boot/jdk/src/share/classes/com/sun/security/auth/login/ConfigFile.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/login/ConfigFile.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/login/ConfigFile.java	2012-11-30 15:09:47.195538377 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/login/ConfigFile.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/login/ConfigFile.java	2013-04-04 18:13:31.344316752 +0100
 @@ -152,7 +152,7 @@
  
          // new configuration
@@ -892,8 +916,8 @@
              String value;
              while (peek(";") == false) {
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/module/JndiLoginModule.java openjdk-boot/jdk/src/share/classes/com/sun/security/auth/module/JndiLoginModule.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/module/JndiLoginModule.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/module/JndiLoginModule.java	2012-11-30 15:09:47.195538377 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/module/JndiLoginModule.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/module/JndiLoginModule.java	2013-04-04 18:13:31.344316752 +0100
 @@ -184,7 +184,7 @@
      private UnixNumericUserPrincipal UIDPrincipal;
      private UnixNumericGroupPrincipal GIDPrincipal;
@@ -904,8 +928,8 @@
      // initial state
      private Subject subject;
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/module/KeyStoreLoginModule.java openjdk-boot/jdk/src/share/classes/com/sun/security/auth/module/KeyStoreLoginModule.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/module/KeyStoreLoginModule.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/module/KeyStoreLoginModule.java	2012-11-30 15:09:47.195538377 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/module/KeyStoreLoginModule.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/module/KeyStoreLoginModule.java	2013-04-04 18:13:31.348316816 +0100
 @@ -658,7 +658,7 @@
                  throw new FailedLoginException(
                      "Unable to find X.509 certificate chain in keystore");
@@ -916,8 +940,8 @@
                      certList.add(fromKeyStore[i]);
                  }
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/module/SolarisLoginModule.java openjdk-boot/jdk/src/share/classes/com/sun/security/auth/module/SolarisLoginModule.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/module/SolarisLoginModule.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/module/SolarisLoginModule.java	2012-11-30 15:09:47.195538377 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/module/SolarisLoginModule.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/module/SolarisLoginModule.java	2013-04-04 18:13:31.352316882 +0100
 @@ -76,7 +76,7 @@
      private SolarisNumericUserPrincipal UIDPrincipal;
      private SolarisNumericGroupPrincipal GIDPrincipal;
@@ -928,8 +952,8 @@
      /**
       * Initialize this <code>LoginModule</code>.
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/module/UnixLoginModule.java openjdk-boot/jdk/src/share/classes/com/sun/security/auth/module/UnixLoginModule.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/module/UnixLoginModule.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/module/UnixLoginModule.java	2012-11-30 15:09:47.195538377 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/module/UnixLoginModule.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/module/UnixLoginModule.java	2013-04-04 18:13:31.352316882 +0100
 @@ -70,7 +70,7 @@
      private UnixNumericUserPrincipal UIDPrincipal;
      private UnixNumericGroupPrincipal GIDPrincipal;
@@ -940,8 +964,8 @@
      /**
       * Initialize this <code>LoginModule</code>.
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/PolicyFile.java openjdk-boot/jdk/src/share/classes/com/sun/security/auth/PolicyFile.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/PolicyFile.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/PolicyFile.java	2012-11-30 15:09:47.195538377 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/PolicyFile.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/PolicyFile.java	2013-04-04 18:13:31.356316946 +0100
 @@ -1180,7 +1180,7 @@
              // Done
              return certs;
@@ -952,8 +976,8 @@
          while (i < certs.length) {
              userCertList.add(certs[i]);
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/tools/example/trace/EventThread.java openjdk-boot/jdk/src/share/classes/com/sun/tools/example/trace/EventThread.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/tools/example/trace/EventThread.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/com/sun/tools/example/trace/EventThread.java	2012-11-30 15:09:47.195538377 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/tools/example/trace/EventThread.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/tools/example/trace/EventThread.java	2013-04-04 18:13:31.360317012 +0100
 @@ -59,7 +59,7 @@
  
      // Maps ThreadReference to ThreadTrace instances
@@ -964,8 +988,8 @@
      EventThread(VirtualMachine vm, String[] excludes, PrintWriter writer) {
          super("event-handler");
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/beans/Introspector.java openjdk-boot/jdk/src/share/classes/java/beans/Introspector.java
---- openjdk-boot.orig/jdk/src/share/classes/java/beans/Introspector.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/java/beans/Introspector.java	2012-11-30 15:09:47.195538377 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/java/beans/Introspector.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/beans/Introspector.java	2013-04-04 18:13:31.360317012 +0100
 @@ -97,7 +97,7 @@
      public final static int IGNORE_ALL_BEANINFO        = 3;
  
@@ -994,8 +1018,8 @@
          }
          return targetBeanInfo;
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/beans/ThreadGroupContext.java openjdk-boot/jdk/src/share/classes/java/beans/ThreadGroupContext.java
---- openjdk-boot.orig/jdk/src/share/classes/java/beans/ThreadGroupContext.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/java/beans/ThreadGroupContext.java	2012-11-30 15:09:47.195538377 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/java/beans/ThreadGroupContext.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/beans/ThreadGroupContext.java	2013-04-04 18:13:31.364317076 +0100
 @@ -42,7 +42,7 @@
   */
  final class ThreadGroupContext {
@@ -1015,8 +1039,8 @@
          return this.beanInfoCache.put(type, info);
      }
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/io/DeleteOnExitHook.java openjdk-boot/jdk/src/share/classes/java/io/DeleteOnExitHook.java
---- openjdk-boot.orig/jdk/src/share/classes/java/io/DeleteOnExitHook.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/java/io/DeleteOnExitHook.java	2012-11-30 15:09:47.195538377 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/java/io/DeleteOnExitHook.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/io/DeleteOnExitHook.java	2013-04-04 18:13:31.368317141 +0100
 @@ -34,7 +34,7 @@
   */
  
@@ -1036,9 +1060,9 @@
          // reverse the list to maintain previous jdk deletion order.
          // Last in first deleted.
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/io/FileInputStream.java openjdk-boot/jdk/src/share/classes/java/io/FileInputStream.java
---- openjdk-boot.orig/jdk/src/share/classes/java/io/FileInputStream.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/java/io/FileInputStream.java	2012-11-30 15:09:47.195538377 +0000
-@@ -57,7 +57,7 @@
+--- openjdk-boot.orig/jdk/src/share/classes/java/io/FileInputStream.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/io/FileInputStream.java	2013-04-04 18:13:31.372317206 +0100
+@@ -61,7 +61,7 @@
      private volatile boolean closed = false;
  
      private static final ThreadLocal<Boolean> runningFinalize =
@@ -1048,8 +1072,8 @@
      private static boolean isRunningFinalize() {
          Boolean val;
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/io/File.java openjdk-boot/jdk/src/share/classes/java/io/File.java
---- openjdk-boot.orig/jdk/src/share/classes/java/io/File.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/java/io/File.java	2012-11-30 15:09:47.195538377 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/java/io/File.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/io/File.java	2013-04-04 18:13:31.372317206 +0100
 @@ -1082,7 +1082,7 @@
          if ((names == null) || (filter == null)) {
              return names;
@@ -1078,9 +1102,9 @@
              File f = new File(s, this);
              if ((filter == null) || filter.accept(f))
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/io/FileOutputStream.java openjdk-boot/jdk/src/share/classes/java/io/FileOutputStream.java
---- openjdk-boot.orig/jdk/src/share/classes/java/io/FileOutputStream.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/java/io/FileOutputStream.java	2012-11-30 15:09:47.195538377 +0000
-@@ -70,7 +70,7 @@
+--- openjdk-boot.orig/jdk/src/share/classes/java/io/FileOutputStream.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/io/FileOutputStream.java	2013-04-04 18:13:31.380317336 +0100
+@@ -76,7 +76,7 @@
      private final Object closeLock = new Object();
      private volatile boolean closed = false;
      private static final ThreadLocal<Boolean> runningFinalize =
@@ -1090,8 +1114,8 @@
      private static boolean isRunningFinalize() {
          Boolean val;
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/io/FilePermission.java openjdk-boot/jdk/src/share/classes/java/io/FilePermission.java
---- openjdk-boot.orig/jdk/src/share/classes/java/io/FilePermission.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/java/io/FilePermission.java	2012-11-30 15:09:47.195538377 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/java/io/FilePermission.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/io/FilePermission.java	2013-04-04 18:13:31.380317336 +0100
 @@ -725,7 +725,7 @@
       */
  
@@ -1120,8 +1144,8 @@
      }
  }
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/io/ObjectInputStream.java openjdk-boot/jdk/src/share/classes/java/io/ObjectInputStream.java
---- openjdk-boot.orig/jdk/src/share/classes/java/io/ObjectInputStream.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/java/io/ObjectInputStream.java	2012-11-30 15:09:47.199538440 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/java/io/ObjectInputStream.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/io/ObjectInputStream.java	2013-04-04 18:13:31.384317401 +0100
 @@ -213,7 +213,7 @@
  
      /** table mapping primitive type names to corresponding class objects */
@@ -1146,8 +1170,8 @@
  
      /** filter stream for handling block data conversion */
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/io/ObjectOutputStream.java openjdk-boot/jdk/src/share/classes/java/io/ObjectOutputStream.java
---- openjdk-boot.orig/jdk/src/share/classes/java/io/ObjectOutputStream.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/java/io/ObjectOutputStream.java	2012-11-30 15:09:47.199538440 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/java/io/ObjectOutputStream.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/io/ObjectOutputStream.java	2013-04-04 18:13:31.388317466 +0100
 @@ -165,11 +165,11 @@
      private static class Caches {
          /** cache of subclass security audit results */
@@ -1172,8 +1196,8 @@
  
          /**
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/io/ObjectStreamClass.java openjdk-boot/jdk/src/share/classes/java/io/ObjectStreamClass.java
---- openjdk-boot.orig/jdk/src/share/classes/java/io/ObjectStreamClass.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/java/io/ObjectStreamClass.java	2012-11-30 15:09:47.199538440 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/java/io/ObjectStreamClass.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/io/ObjectStreamClass.java	2013-04-04 18:13:31.392317531 +0100
 @@ -84,18 +84,18 @@
      private static class Caches {
          /** cache mapping local classes -> descriptors */
@@ -1254,8 +1278,8 @@
                  if (ref != null) {
                      Caches.reflectors.remove(key, ref);
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/ApplicationShutdownHooks.java openjdk-boot/jdk/src/share/classes/java/lang/ApplicationShutdownHooks.java
---- openjdk-boot.orig/jdk/src/share/classes/java/lang/ApplicationShutdownHooks.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/java/lang/ApplicationShutdownHooks.java	2012-11-30 15:09:47.199538440 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/ApplicationShutdownHooks.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/lang/ApplicationShutdownHooks.java	2013-04-04 18:13:31.392317531 +0100
 @@ -47,7 +47,7 @@
                      }
                  }
@@ -1266,8 +1290,8 @@
              // application shutdown hooks cannot be added if
              // shutdown is in progress.
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/Character.java openjdk-boot/jdk/src/share/classes/java/lang/Character.java
---- openjdk-boot.orig/jdk/src/share/classes/java/lang/Character.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/java/lang/Character.java	2012-11-30 15:09:47.199538440 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/Character.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/lang/Character.java	2013-04-04 18:13:31.396317595 +0100
 @@ -646,7 +646,8 @@
       */
      public static final class UnicodeBlock extends Subset {
@@ -1288,8 +1312,8 @@
              aliases.put("ARMI", IMPERIAL_ARAMAIC);
              aliases.put("ARMN", ARMENIAN);
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/CharacterName.java openjdk-boot/jdk/src/share/classes/java/lang/CharacterName.java
---- openjdk-boot.orig/jdk/src/share/classes/java/lang/CharacterName.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/java/lang/CharacterName.java	2012-11-30 15:09:47.199538440 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/CharacterName.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/lang/CharacterName.java	2013-04-04 18:13:31.396317595 +0100
 @@ -81,7 +81,7 @@
              } while (cpOff < cpEnd);
              strPool = new byte[total - cpEnd];
@@ -1300,9 +1324,9 @@
              throw new InternalError(x.getMessage());
          } finally {
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/Class.java openjdk-boot/jdk/src/share/classes/java/lang/Class.java
---- openjdk-boot.orig/jdk/src/share/classes/java/lang/Class.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/java/lang/Class.java	2012-11-30 15:09:47.203538502 +0000
-@@ -1308,7 +1308,7 @@
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/Class.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/lang/Class.java	2013-04-04 18:13:31.412317855 +0100
+@@ -1310,7 +1310,7 @@
          return java.security.AccessController.doPrivileged(
              new java.security.PrivilegedAction<Class<?>[]>() {
                  public Class[] run() {
@@ -1311,7 +1335,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) {
@@ -1323,7 +1347,7 @@
              }
          }
          return res;
-@@ -2332,9 +2332,9 @@
+@@ -2341,9 +2341,9 @@
  
          // No cached value available; compute value recursively.
          // Traverse in correct order for getField().
@@ -1335,7 +1359,7 @@
          }
  
          // Local fields
-@@ -2360,7 +2360,7 @@
+@@ -2369,7 +2369,7 @@
          res = new Field[fields.size()];
          fields.toArray(res);
          if (useCaches) {
@@ -1344,7 +1368,7 @@
          }
          return res;
      }
-@@ -2405,9 +2405,9 @@
+@@ -2414,9 +2414,9 @@
          }
          if (useCaches) {
              if (publicOnly) {
@@ -1356,7 +1380,7 @@
              }
          }
          return res;
-@@ -2442,9 +2442,9 @@
+@@ -2451,9 +2451,9 @@
          res = Reflection.filterMethods(this, getDeclaredMethods0(publicOnly));
          if (useCaches) {
              if (publicOnly) {
@@ -1368,7 +1392,7 @@
              }
          }
          return res;
-@@ -2600,7 +2600,7 @@
+@@ -2609,7 +2609,7 @@
          methods.compactAndTrim();
          res = methods.getArray();
          if (useCaches) {
@@ -1377,7 +1401,7 @@
          }
          return res;
      }
-@@ -2979,7 +2979,7 @@
+@@ -2988,7 +2988,7 @@
              if (universe == null)
                  throw new IllegalArgumentException(
                      getName() + " is not an enum type");
@@ -1386,7 +1410,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 {
@@ -1396,8 +1420,8 @@
              for (Map.Entry<Class<? extends Annotation>, Annotation> e : superClass.annotations.entrySet()) {
                  Class<? extends Annotation> annotationClass = e.getKey();
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/ClassLoader.java openjdk-boot/jdk/src/share/classes/java/lang/ClassLoader.java
---- openjdk-boot.orig/jdk/src/share/classes/java/lang/ClassLoader.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/java/lang/ClassLoader.java	2012-11-30 15:09:47.203538502 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/ClassLoader.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/lang/ClassLoader.java	2013-04-04 18:13:31.416317921 +0100
 @@ -246,7 +246,7 @@
  
      // The classes loaded by this class loader. The only purpose of this table
@@ -1504,8 +1528,8 @@
  
          for(int i = 0; i < directives.classes.length; i++)
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/ClassValue.java openjdk-boot/jdk/src/share/classes/java/lang/ClassValue.java
---- openjdk-boot.orig/jdk/src/share/classes/java/lang/ClassValue.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/java/lang/ClassValue.java	2012-11-30 15:09:47.203538502 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/ClassValue.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/lang/ClassValue.java	2013-04-04 18:13:31.416317921 +0100
 @@ -297,12 +297,12 @@
       * Some machines may also require a barrier instruction to execute
       * before this.version.
@@ -1547,8 +1571,8 @@
          // As soon as the Entry is put into the cache, the value will be
          // reachable via a data race (as defined by the Java Memory Model).
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/BoundMethodHandle.java openjdk-boot/jdk/src/share/classes/java/lang/invoke/BoundMethodHandle.java
---- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/BoundMethodHandle.java	2012-11-30 17:42:14.710183546 +0000
-+++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/BoundMethodHandle.java	2012-11-30 17:42:36.822545325 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/BoundMethodHandle.java	2013-04-04 18:12:33.971383825 +0100
++++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/BoundMethodHandle.java	2013-04-04 18:13:31.420317985 +0100
 @@ -393,7 +393,7 @@
          }
          private boolean isPlaceholder() { return clazz == null; }
@@ -1559,9 +1583,9 @@
  
          SpeciesData extendWithType(char type) {
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/DirectMethodHandle.java openjdk-boot/jdk/src/share/classes/java/lang/invoke/DirectMethodHandle.java
---- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/DirectMethodHandle.java	2012-11-30 16:59:06.364114629 +0000
-+++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/DirectMethodHandle.java	2012-11-30 16:59:18.596312714 +0000
-@@ -315,7 +315,7 @@
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/DirectMethodHandle.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/DirectMethodHandle.java	2013-04-04 18:13:31.424318050 +0100
+@@ -326,7 +326,7 @@
              if (UNSAFE.shouldBeInitialized(type))
                  // If the previous call didn't block, this can happen.
                  // We are executing inside <clinit>.
@@ -1571,8 +1595,8 @@
          }
          static final EnsureInitialized INSTANCE = new EnsureInitialized();
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/InvokerBytecodeGenerator.java openjdk-boot/jdk/src/share/classes/java/lang/invoke/InvokerBytecodeGenerator.java
---- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/InvokerBytecodeGenerator.java	2012-11-30 17:03:54.192773864 +0000
-+++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/InvokerBytecodeGenerator.java	2012-11-30 17:02:46.671681188 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/InvokerBytecodeGenerator.java	2013-04-04 18:12:33.971383825 +0100
++++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/InvokerBytecodeGenerator.java	2013-04-04 18:13:31.424318050 +0100
 @@ -129,7 +129,7 @@
  
      static {
@@ -1592,9 +1616,9 @@
      int cph = 0;  // for counting constant placeholders
  
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/LambdaForm.java openjdk-boot/jdk/src/share/classes/java/lang/invoke/LambdaForm.java
---- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/LambdaForm.java	2012-11-30 17:00:49.921791400 +0000
-+++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/LambdaForm.java	2012-11-30 17:01:15.158199934 +0000
-@@ -466,12 +466,12 @@
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/LambdaForm.java	2013-04-04 18:12:33.971383825 +0100
++++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/LambdaForm.java	2013-04-04 18:13:31.428318115 +0100
+@@ -468,12 +468,12 @@
          int   capacity   = 512;    // expect many distinct signatures over time
          float loadFactor = 0.75f;  // normal default
          int   writers    = 1;
@@ -1610,8 +1634,8 @@
              if (!m.isStatic() || !m.isPackage())  continue;
              MethodType mt = m.getMethodType();
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/MemberName.java openjdk-boot/jdk/src/share/classes/java/lang/invoke/MemberName.java
---- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/MemberName.java	2012-11-30 17:04:19.237179101 +0000
-+++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/MemberName.java	2012-11-30 17:05:19.546155065 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/MemberName.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/MemberName.java	2013-04-04 18:13:31.428318115 +0100
 @@ -803,14 +803,14 @@
                  // JVM returned to us with an intentional overflow!
                  totalCount += buf.length;
@@ -1630,8 +1654,8 @@
                  for (MemberName[] buf0 : bufs) {
                      Collections.addAll(result, buf0);
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/MethodHandleImpl.java openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandleImpl.java
---- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/MethodHandleImpl.java	2012-11-30 16:59:43.196711066 +0000
-+++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandleImpl.java	2012-11-30 17:00:09.709140348 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/MethodHandleImpl.java	2013-04-04 18:12:33.971383825 +0100
++++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandleImpl.java	2013-04-04 18:13:31.428318115 +0100
 @@ -71,8 +71,8 @@
  
      static final class ArrayAccessor {
@@ -1653,8 +1677,8 @@
              for (;;) {
                  int nargs = invokes.size();
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/MethodHandle.java openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandle.java
---- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/MethodHandle.java	2012-11-30 17:03:44.080610234 +0000
-+++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandle.java	2012-11-30 17:03:12.976106889 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/MethodHandle.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandle.java	2013-04-04 18:13:31.432318180 +0100
 @@ -824,7 +824,7 @@
                  }
              }
@@ -1665,9 +1689,9 @@
                      ptypes.set(i, arrayElement);
                  }
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/MethodHandles.java openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandles.java
---- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/MethodHandles.java	2012-11-30 17:03:42.368582530 +0000
-+++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandles.java	2012-11-30 17:03:31.792411386 +0000
-@@ -1738,7 +1738,7 @@
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/MethodHandles.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandles.java	2013-04-04 18:13:31.432318180 +0100
+@@ -1768,7 +1768,7 @@
          int inargs  = outargs + dropped;
          if (pos < 0 || pos >= inargs)
              throw newIllegalArgumentException("no argument type to remove");
@@ -1677,8 +1701,8 @@
          MethodType newType = MethodType.methodType(oldType.returnType(), ptypes);
          return target.dropArguments(newType, pos, dropped);
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/MethodType.java openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodType.java
---- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/MethodType.java	2012-11-30 17:03:47.040658132 +0000
-+++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodType.java	2012-11-30 17:03:04.767974055 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/MethodType.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodType.java	2013-04-04 18:13:31.436318245 +0100
 @@ -1048,7 +1048,7 @@
          private final float loadFactor;
  
@@ -1689,8 +1713,8 @@
          private Entry[] newTable(int n) {
              return new Entry[n];
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/management/ManagementFactory.java openjdk-boot/jdk/src/share/classes/java/lang/management/ManagementFactory.java
---- openjdk-boot.orig/jdk/src/share/classes/java/lang/management/ManagementFactory.java	2012-11-30 15:06:26.888398807 +0000
-+++ openjdk-boot/jdk/src/share/classes/java/lang/management/ManagementFactory.java	2012-11-30 15:09:47.203538502 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/management/ManagementFactory.java	2013-04-04 18:12:33.915382912 +0100
++++ openjdk-boot/jdk/src/share/classes/java/lang/management/ManagementFactory.java	2013-04-04 18:13:31.436318245 +0100
 @@ -789,7 +789,7 @@
             getPlatformManagementInterfaces()
      {
@@ -1701,8 +1725,8 @@
              result.add(component.getMXBeanInterface());
          }
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/management/PlatformComponent.java openjdk-boot/jdk/src/share/classes/java/lang/management/PlatformComponent.java
---- openjdk-boot.orig/jdk/src/share/classes/java/lang/management/PlatformComponent.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/java/lang/management/PlatformComponent.java	2012-11-30 15:09:47.203538502 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/management/PlatformComponent.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/lang/management/PlatformComponent.java	2013-04-04 18:13:31.436318245 +0100
 @@ -287,7 +287,7 @@
              List<T> getGcMXBeanList(Class<T> gcMXBeanIntf) {
          List<GarbageCollectorMXBean> list =
@@ -1740,8 +1764,8 @@
                  // Use String as the key rather than Class<?> to avoid
                  // causing unnecessary class loading of management interface
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/Package.java openjdk-boot/jdk/src/share/classes/java/lang/Package.java
---- openjdk-boot.orig/jdk/src/share/classes/java/lang/Package.java	2012-11-30 15:06:27.252404510 +0000
-+++ openjdk-boot/jdk/src/share/classes/java/lang/Package.java	2012-11-30 15:09:47.203538502 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/Package.java	2013-04-04 18:12:33.935383238 +0100
++++ openjdk-boot/jdk/src/share/classes/java/lang/Package.java	2013-04-04 18:13:31.440318310 +0100
 @@ -596,13 +596,16 @@
      }
  
@@ -1763,8 +1787,8 @@
      private static native String getSystemPackage0(String name);
      private static native String[] getSystemPackages0();
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/ProcessBuilder.java openjdk-boot/jdk/src/share/classes/java/lang/ProcessBuilder.java
---- openjdk-boot.orig/jdk/src/share/classes/java/lang/ProcessBuilder.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/java/lang/ProcessBuilder.java	2012-11-30 15:09:47.203538502 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/ProcessBuilder.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/lang/ProcessBuilder.java	2013-04-04 18:13:31.440318310 +0100
 @@ -214,7 +214,7 @@
       * @param command a string array containing the program and its arguments
       */
@@ -1784,8 +1808,8 @@
              this.command.add(arg);
          return this;
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/reflect/Constructor.java openjdk-boot/jdk/src/share/classes/java/lang/reflect/Constructor.java
---- openjdk-boot.orig/jdk/src/share/classes/java/lang/reflect/Constructor.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/java/lang/reflect/Constructor.java	2012-11-30 15:09:47.203538502 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/reflect/Constructor.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/lang/reflect/Constructor.java	2013-04-04 18:13:31.440318310 +0100
 @@ -136,7 +136,7 @@
          // which implicitly requires that new java.lang.reflect
          // objects be fabricated for each reflective call on Class
@@ -1796,9 +1820,9 @@
                                                  exceptionTypes, modifiers, slot,
                                                  signature,
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/reflect/Proxy.java openjdk-boot/jdk/src/share/classes/java/lang/reflect/Proxy.java
---- openjdk-boot.orig/jdk/src/share/classes/java/lang/reflect/Proxy.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/java/lang/reflect/Proxy.java	2012-11-30 15:09:47.203538502 +0000
-@@ -232,7 +232,7 @@
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/reflect/Proxy.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/lang/reflect/Proxy.java	2013-04-04 18:13:31.444318375 +0100
+@@ -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
@@ -1807,7 +1831,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
@@ -1816,7 +1840,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) {
@@ -1826,8 +1850,8 @@
              }
              /*
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/reflect/ReflectAccess.java openjdk-boot/jdk/src/share/classes/java/lang/reflect/ReflectAccess.java
---- openjdk-boot.orig/jdk/src/share/classes/java/lang/reflect/ReflectAccess.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/java/lang/reflect/ReflectAccess.java	2012-11-30 15:09:47.203538502 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/reflect/ReflectAccess.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/lang/reflect/ReflectAccess.java	2013-04-04 18:13:31.448318440 +0100
 @@ -84,7 +84,7 @@
                                               byte[] annotations,
                                               byte[] parameterAnnotations)
@@ -1838,8 +1862,8 @@
                                    checkedExceptions,
                                    modifiers,
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/StringCoding.java openjdk-boot/jdk/src/share/classes/java/lang/StringCoding.java
---- openjdk-boot.orig/jdk/src/share/classes/java/lang/StringCoding.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/java/lang/StringCoding.java	2012-11-30 15:09:47.203538502 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/StringCoding.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/lang/StringCoding.java	2013-04-04 18:13:31.448318440 +0100
 @@ -53,9 +53,9 @@
  
      /** The cached coders for each thread */
@@ -1853,8 +1877,8 @@
      private static boolean warnUnsupportedCharset = true;
  
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/String.java openjdk-boot/jdk/src/share/classes/java/lang/String.java
---- openjdk-boot.orig/jdk/src/share/classes/java/lang/String.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/java/lang/String.java	2012-11-30 15:09:47.207538565 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/String.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/lang/String.java	2013-04-04 18:13:31.452318504 +0100
 @@ -2282,7 +2282,7 @@
              int off = 0;
              int next = 0;
@@ -1865,8 +1889,8 @@
                  if (!limited || list.size() < limit - 1) {
                      list.add(substring(off, next));
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/Thread.java openjdk-boot/jdk/src/share/classes/java/lang/Thread.java
---- openjdk-boot.orig/jdk/src/share/classes/java/lang/Thread.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/java/lang/Thread.java	2012-11-30 15:09:47.207538565 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/Thread.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/lang/Thread.java	2013-04-04 18:13:31.452318504 +0100
 @@ -1616,7 +1616,8 @@
          // Get a snapshot of the list of all threads
          Thread[] threads = getThreads();
@@ -1892,8 +1916,8 @@
  
      /**
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/Throwable.java openjdk-boot/jdk/src/share/classes/java/lang/Throwable.java
---- openjdk-boot.orig/jdk/src/share/classes/java/lang/Throwable.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/java/lang/Throwable.java	2012-11-30 15:09:47.207538565 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/Throwable.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/lang/Throwable.java	2013-04-04 18:13:31.452318504 +0100
 @@ -917,7 +917,7 @@
                  // Use the sentinel for a zero-length list
                  suppressed = SUPPRESSED_SENTINEL;
@@ -1913,8 +1937,8 @@
          suppressedExceptions.add(exception);
      }
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/net/InetAddress.java openjdk-boot/jdk/src/share/classes/java/net/InetAddress.java
---- openjdk-boot.orig/jdk/src/share/classes/java/net/InetAddress.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/java/net/InetAddress.java	2012-11-30 15:09:47.207538565 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/java/net/InetAddress.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/net/InetAddress.java	2013-04-04 18:13:31.456318570 +0100
 @@ -677,7 +677,7 @@
  
      static InetAddressImpl  impl;
@@ -1934,8 +1958,8 @@
                  for (String key : cache.keySet()) {
                      CacheEntry entry = cache.get(key);
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/net/URLClassLoader.java openjdk-boot/jdk/src/share/classes/java/net/URLClassLoader.java
---- openjdk-boot.orig/jdk/src/share/classes/java/net/URLClassLoader.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/java/net/URLClassLoader.java	2012-11-30 15:09:47.207538565 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/java/net/URLClassLoader.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/net/URLClassLoader.java	2013-04-04 18:13:31.456318570 +0100
 @@ -205,7 +205,7 @@
       */
  
@@ -1946,8 +1970,8 @@
      /**
       * Returns an input stream for reading the specified resource.
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/nio/file/Files.java openjdk-boot/jdk/src/share/classes/java/nio/file/Files.java
---- openjdk-boot.orig/jdk/src/share/classes/java/nio/file/Files.java	2012-11-30 15:06:27.256404573 +0000
-+++ openjdk-boot/jdk/src/share/classes/java/nio/file/Files.java	2012-11-30 15:09:47.207538565 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/java/nio/file/Files.java	2013-04-04 18:12:33.939383303 +0100
++++ openjdk-boot/jdk/src/share/classes/java/nio/file/Files.java	2013-04-04 18:13:31.456318570 +0100
 @@ -1493,7 +1493,7 @@
              return AccessController
                  .doPrivileged(new PrivilegedAction<List<FileTypeDetector>>() {
@@ -1967,8 +1991,8 @@
                  String line = reader.readLine();
                  if (line == null)
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/security/AccessControlContext.java openjdk-boot/jdk/src/share/classes/java/security/AccessControlContext.java
---- openjdk-boot.orig/jdk/src/share/classes/java/security/AccessControlContext.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/java/security/AccessControlContext.java	2012-11-30 15:09:47.207538565 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/java/security/AccessControlContext.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/security/AccessControlContext.java	2013-04-04 18:13:31.460318634 +0100
 @@ -124,7 +124,7 @@
                  this.context = null;
              }
@@ -1979,8 +2003,8 @@
                  if ((context[i] != null) &&  (!v.contains(context[i])))
                      v.add(context[i]);
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/security/BasicPermission.java openjdk-boot/jdk/src/share/classes/java/security/BasicPermission.java
---- openjdk-boot.orig/jdk/src/share/classes/java/security/BasicPermission.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/java/security/BasicPermission.java	2012-11-30 15:09:47.207538565 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/java/security/BasicPermission.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/security/BasicPermission.java	2013-04-04 18:13:31.460318634 +0100
 @@ -515,7 +515,7 @@
  
          // Copy perms into a Hashtable
@@ -1991,8 +2015,8 @@
          synchronized (this) {
              permissions.putAll(perms);
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/security/CodeSource.java openjdk-boot/jdk/src/share/classes/java/security/CodeSource.java
---- openjdk-boot.orig/jdk/src/share/classes/java/security/CodeSource.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/java/security/CodeSource.java	2012-11-30 15:09:47.207538565 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/java/security/CodeSource.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/security/CodeSource.java	2013-04-04 18:13:31.460318634 +0100
 @@ -188,7 +188,7 @@
          } else if (signers != null) {
              // Convert the code signers to certs
@@ -2016,8 +2040,8 @@
                  int j = i;
  
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/security/Permissions.java openjdk-boot/jdk/src/share/classes/java/security/Permissions.java
---- openjdk-boot.orig/jdk/src/share/classes/java/security/Permissions.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/java/security/Permissions.java	2012-11-30 15:09:47.207538565 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/java/security/Permissions.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/security/Permissions.java	2013-04-04 18:13:31.464318700 +0100
 @@ -362,7 +362,7 @@
  
          // Copy perms into a Hashtable
@@ -2037,8 +2061,8 @@
              perms.putAll(permsMap);
          }
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/security/Policy.java openjdk-boot/jdk/src/share/classes/java/security/Policy.java
---- openjdk-boot.orig/jdk/src/share/classes/java/security/Policy.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/java/security/Policy.java	2012-11-30 15:09:47.207538565 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/java/security/Policy.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/security/Policy.java	2013-04-04 18:13:31.464318700 +0100
 @@ -118,7 +118,7 @@
  
      // PolicyInfo is stored in an AtomicReference
@@ -2058,8 +2082,8 @@
          }
  
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/security/ProtectionDomain.java openjdk-boot/jdk/src/share/classes/java/security/ProtectionDomain.java
---- openjdk-boot.orig/jdk/src/share/classes/java/security/ProtectionDomain.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/java/security/ProtectionDomain.java	2012-11-30 15:09:47.211538628 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/java/security/ProtectionDomain.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/security/ProtectionDomain.java	2013-04-04 18:13:31.464318700 +0100
 @@ -368,8 +368,8 @@
          int swag = 32;
          int vcap = 8;
@@ -2072,8 +2096,8 @@
          //
          // Build a vector of domain permissions for subsequent merge
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/security/Provider.java openjdk-boot/jdk/src/share/classes/java/security/Provider.java
---- openjdk-boot.orig/jdk/src/share/classes/java/security/Provider.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/java/security/Provider.java	2012-11-30 15:09:47.211538628 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/java/security/Provider.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/security/Provider.java	2013-04-04 18:13:31.468318764 +0100
 @@ -437,7 +437,7 @@
  
      private void readObject(ObjectInputStream in)
@@ -2102,8 +2126,8 @@
                              Class clazz = getKeyClass(className);
                              if (clazz != null) {
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/security/SecureClassLoader.java openjdk-boot/jdk/src/share/classes/java/security/SecureClassLoader.java
---- openjdk-boot.orig/jdk/src/share/classes/java/security/SecureClassLoader.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/java/security/SecureClassLoader.java	2012-11-30 15:09:47.211538628 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/java/security/SecureClassLoader.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/security/SecureClassLoader.java	2013-04-04 18:13:31.468318764 +0100
 @@ -50,7 +50,7 @@
      // HashMap that maps CodeSource to ProtectionDomain
      // @GuardedBy("pdcache")
@@ -2114,8 +2138,8 @@
      private static final Debug debug = Debug.getInstance("scl");
  
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/security/Security.java openjdk-boot/jdk/src/share/classes/java/security/Security.java
---- openjdk-boot.orig/jdk/src/share/classes/java/security/Security.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/java/security/Security.java	2012-11-30 15:09:47.211538628 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/java/security/Security.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/security/Security.java	2013-04-04 18:13:31.468318764 +0100
 @@ -546,7 +546,7 @@
              value = filter.substring(index + 1);
          }
@@ -2162,8 +2186,8 @@
  
          for (int i = 0; i < providers.length; i++) {
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/security/UnresolvedPermissionCollection.java openjdk-boot/jdk/src/share/classes/java/security/UnresolvedPermissionCollection.java
---- openjdk-boot.orig/jdk/src/share/classes/java/security/UnresolvedPermissionCollection.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/java/security/UnresolvedPermissionCollection.java	2012-11-30 15:09:47.211538628 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/java/security/UnresolvedPermissionCollection.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/security/UnresolvedPermissionCollection.java	2013-04-04 18:13:31.468318764 +0100
 @@ -119,7 +119,7 @@
  
      public Enumeration<Permission> elements() {
@@ -2201,8 +2225,8 @@
  
              // Add to Hashtable being serialized
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/security/UnresolvedPermission.java openjdk-boot/jdk/src/share/classes/java/security/UnresolvedPermission.java
---- openjdk-boot.orig/jdk/src/share/classes/java/security/UnresolvedPermission.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/java/security/UnresolvedPermission.java	2012-11-30 15:09:47.211538628 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/java/security/UnresolvedPermission.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/security/UnresolvedPermission.java	2013-04-04 18:13:31.472318830 +0100
 @@ -198,7 +198,7 @@
                  if (this.certs == null) {
                      // extract the signer certs
@@ -2213,8 +2237,8 @@
                      while (i < certs.length) {
                          signerCerts.add(certs[i]);
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/AbstractList.java openjdk-boot/jdk/src/share/classes/java/util/AbstractList.java
---- openjdk-boot.orig/jdk/src/share/classes/java/util/AbstractList.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/java/util/AbstractList.java	2012-11-30 15:09:47.211538628 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/AbstractList.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/util/AbstractList.java	2013-04-04 18:13:31.472318830 +0100
 @@ -482,8 +482,8 @@
       */
      public List<E> subList(int fromIndex, int toIndex) {
@@ -2244,8 +2268,8 @@
      }
  }
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/Arrays.java openjdk-boot/jdk/src/share/classes/java/util/Arrays.java
---- openjdk-boot.orig/jdk/src/share/classes/java/util/Arrays.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/java/util/Arrays.java	2012-11-30 15:09:47.211538628 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/Arrays.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/util/Arrays.java	2013-04-04 18:13:31.476318894 +0100
 @@ -2825,7 +2825,7 @@
       */
      @SafeVarargs
@@ -2256,8 +2280,8 @@
  
      /**
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/Collections.java openjdk-boot/jdk/src/share/classes/java/util/Collections.java
---- openjdk-boot.orig/jdk/src/share/classes/java/util/Collections.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/java/util/Collections.java	2012-11-30 15:09:47.215538690 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/Collections.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/util/Collections.java	2013-04-04 18:13:31.476318894 +0100
 @@ -1035,7 +1035,7 @@
       * @return an unmodifiable view of the specified collection.
       */
@@ -2883,8 +2907,8 @@
  
      /**
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/EnumMap.java openjdk-boot/jdk/src/share/classes/java/util/EnumMap.java
---- openjdk-boot.orig/jdk/src/share/classes/java/util/EnumMap.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/java/util/EnumMap.java	2012-11-30 15:09:47.215538690 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/EnumMap.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/util/EnumMap.java	2013-04-04 18:13:31.480318959 +0100
 @@ -508,7 +508,7 @@
              int j = 0;
              for (int i = 0; i < vals.length; i++)
@@ -2895,8 +2919,8 @@
              return a;
          }
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/EnumSet.java openjdk-boot/jdk/src/share/classes/java/util/EnumSet.java
---- openjdk-boot.orig/jdk/src/share/classes/java/util/EnumSet.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/java/util/EnumSet.java	2012-11-30 15:09:47.215538690 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/EnumSet.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/util/EnumSet.java	2013-04-04 18:13:31.480318959 +0100
 @@ -110,9 +110,9 @@
              throw new ClassCastException(elementType + " not an enum");
  
@@ -2919,8 +2943,8 @@
  
      // readObject method for the serialization proxy pattern
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/Formatter.java openjdk-boot/jdk/src/share/classes/java/util/Formatter.java
---- openjdk-boot.orig/jdk/src/share/classes/java/util/Formatter.java	2012-11-30 15:06:26.888398807 +0000
-+++ openjdk-boot/jdk/src/share/classes/java/util/Formatter.java	2012-11-30 15:09:47.215538690 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/Formatter.java	2013-04-04 18:12:33.915382912 +0100
++++ openjdk-boot/jdk/src/share/classes/java/util/Formatter.java	2013-04-04 18:13:31.480318959 +0100
 @@ -2514,7 +2514,7 @@
       * Finds format specifiers in the format string.
       */
@@ -2931,9 +2955,9 @@
          for (int i = 0, len = s.length(); i < len; ) {
              if (m.find(i)) {
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/HashMap.java openjdk-boot/jdk/src/share/classes/java/util/HashMap.java
---- openjdk-boot.orig/jdk/src/share/classes/java/util/HashMap.java	2012-11-30 15:06:26.892398870 +0000
-+++ openjdk-boot/jdk/src/share/classes/java/util/HashMap.java	2012-11-30 15:09:47.215538690 +0000
-@@ -868,7 +868,7 @@
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/HashMap.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/util/HashMap.java	2013-04-04 18:13:31.484319024 +0100
+@@ -852,7 +852,7 @@
       */
      void createEntry(int hash, K key, V value, int bucketIndex) {
          Entry<K,V> e = table[bucketIndex];
@@ -2943,8 +2967,8 @@
      }
  
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/HashSet.java openjdk-boot/jdk/src/share/classes/java/util/HashSet.java
---- openjdk-boot.orig/jdk/src/share/classes/java/util/HashSet.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/java/util/HashSet.java	2012-11-30 15:09:47.215538690 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/HashSet.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/util/HashSet.java	2013-04-04 18:13:31.484319024 +0100
 @@ -100,7 +100,7 @@
       * default initial capacity (16) and load factor (0.75).
       */
@@ -2991,9 +3015,9 @@
  
      /**
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/Hashtable.java openjdk-boot/jdk/src/share/classes/java/util/Hashtable.java
---- openjdk-boot.orig/jdk/src/share/classes/java/util/Hashtable.java	2012-11-30 15:06:26.892398870 +0000
-+++ openjdk-boot/jdk/src/share/classes/java/util/Hashtable.java	2012-11-30 15:09:47.215538690 +0000
-@@ -568,7 +568,7 @@
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/Hashtable.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/util/Hashtable.java	2013-04-04 18:13:31.492319154 +0100
+@@ -538,7 +538,7 @@
  
          // Creates the new entry.
          Entry<K,V> e = tab[index];
@@ -3002,7 +3026,7 @@
          count++;
          return null;
      }
-@@ -692,7 +692,7 @@
+@@ -662,7 +662,7 @@
          if (count == 0) {
              return Collections.emptyEnumeration();
          } else {
@@ -3011,7 +3035,7 @@
          }
      }
  
-@@ -700,7 +700,7 @@
+@@ -670,7 +670,7 @@
          if (count == 0) {
              return Collections.emptyIterator();
          } else {
@@ -3020,7 +3044,7 @@
          }
      }
  
-@@ -978,7 +978,7 @@
+@@ -948,7 +948,7 @@
  
                  while (entry != null) {
                      entryStack =
@@ -3029,7 +3053,7 @@
                      entry = entry.next;
                  }
              }
-@@ -1063,7 +1063,7 @@
+@@ -1028,7 +1028,7 @@
          }
          // Creates the new entry.
          Entry<K,V> e = tab[index];
@@ -3038,7 +3062,7 @@
          count++;
      }
  
-@@ -1084,7 +1084,7 @@
+@@ -1049,7 +1049,7 @@
          }
  
          protected Object clone() {
@@ -3048,8 +3072,8 @@
          }
  
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/IdentityHashMap.java openjdk-boot/jdk/src/share/classes/java/util/IdentityHashMap.java
---- openjdk-boot.orig/jdk/src/share/classes/java/util/IdentityHashMap.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/java/util/IdentityHashMap.java	2012-11-30 15:09:47.215538690 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/IdentityHashMap.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/util/IdentityHashMap.java	2013-04-04 18:13:31.492319154 +0100
 @@ -1145,7 +1145,7 @@
              Object[] result = new Object[size];
              Iterator<Map.Entry<K,V>> it = iterator();
@@ -3069,8 +3093,8 @@
                  a[size] = null;
              return a;
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/JumboEnumSet.java openjdk-boot/jdk/src/share/classes/java/util/JumboEnumSet.java
---- openjdk-boot.orig/jdk/src/share/classes/java/util/JumboEnumSet.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/java/util/JumboEnumSet.java	2012-11-30 15:09:47.215538690 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/JumboEnumSet.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/util/JumboEnumSet.java	2013-04-04 18:13:31.496319219 +0100
 @@ -91,7 +91,7 @@
       * @return an iterator over the elements contained in this set
       */
@@ -3081,8 +3105,8 @@
  
      private class EnumSetIterator<E extends Enum<E>> implements Iterator<E> {
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/LinkedHashMap.java openjdk-boot/jdk/src/share/classes/java/util/LinkedHashMap.java
---- openjdk-boot.orig/jdk/src/share/classes/java/util/LinkedHashMap.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/java/util/LinkedHashMap.java	2012-11-30 15:09:47.215538690 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/LinkedHashMap.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/util/LinkedHashMap.java	2013-04-04 18:13:31.496319219 +0100
 @@ -238,7 +238,7 @@
       */
      @Override
@@ -3102,8 +3126,8 @@
          e.addBefore(header);
          size++;
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/LinkedList.java openjdk-boot/jdk/src/share/classes/java/util/LinkedList.java
---- openjdk-boot.orig/jdk/src/share/classes/java/util/LinkedList.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/java/util/LinkedList.java	2012-11-30 15:09:47.215538690 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/LinkedList.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/util/LinkedList.java	2013-04-04 18:13:31.500319284 +0100
 @@ -122,7 +122,7 @@
       */
      private void linkFirst(E e) {
@@ -3141,8 +3165,8 @@
                  first = newNode;
              else
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/ListResourceBundle.java openjdk-boot/jdk/src/share/classes/java/util/ListResourceBundle.java
---- openjdk-boot.orig/jdk/src/share/classes/java/util/ListResourceBundle.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/java/util/ListResourceBundle.java	2012-11-30 15:09:47.219538753 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/ListResourceBundle.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/util/ListResourceBundle.java	2013-04-04 18:13:31.500319284 +0100
 @@ -187,7 +187,7 @@
              return;
  
@@ -3153,8 +3177,8 @@
              // key must be non-null String, value must be non-null
              String key = (String) contents[i][0];
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/Locale.java openjdk-boot/jdk/src/share/classes/java/util/Locale.java
---- openjdk-boot.orig/jdk/src/share/classes/java/util/Locale.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/java/util/Locale.java	2012-11-30 15:09:47.219538753 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/Locale.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/util/Locale.java	2013-04-04 18:13:31.500319284 +0100
 @@ -1793,7 +1793,7 @@
                  return formatList(variantNames, listPattern, listCompositionPattern);
              }
@@ -3165,8 +3189,8 @@
              names.add(languageName);
          }
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/logging/FileHandler.java openjdk-boot/jdk/src/share/classes/java/util/logging/FileHandler.java
---- openjdk-boot.orig/jdk/src/share/classes/java/util/logging/FileHandler.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/java/util/logging/FileHandler.java	2012-11-30 15:09:47.219538753 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/logging/FileHandler.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/util/logging/FileHandler.java	2013-04-04 18:13:31.504319349 +0100
 @@ -127,7 +127,7 @@
      private FileOutputStream lockStream;
      private File files[];
@@ -3177,20 +3201,39 @@
      // A metered stream is a subclass of OutputStream that
      //   (a) forwards all its output to a target stream
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/logging/Level.java openjdk-boot/jdk/src/share/classes/java/util/logging/Level.java
---- openjdk-boot.orig/jdk/src/share/classes/java/util/logging/Level.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/java/util/logging/Level.java	2012-11-30 15:09:47.219538753 +0000
-@@ -59,7 +59,7 @@
-  */
- 
- 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.orig/jdk/src/share/classes/java/util/logging/Level.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/util/logging/Level.java	2013-04-04 18:16:24.879120711 +0100
+@@ -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	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/java/util/logging/Logger.java	2012-11-30 15:09:47.219538753 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/logging/Logger.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/util/logging/Logger.java	2013-04-04 18:13:31.508319414 +0100
 @@ -170,7 +170,7 @@
      private LogManager manager;
      private String name;
@@ -3200,7 +3243,7 @@
      private String resourceBundleName;
      private volatile boolean useParentHandlers = true;
      private volatile Filter filter;
-@@ -1439,7 +1439,7 @@
+@@ -1505,7 +1505,7 @@
              // Set our new parent.
              parent = newParent;
              if (parent.kids == null) {
@@ -3210,8 +3253,8 @@
              if (ref == null) {
                  // we didn't have a previous parent
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/logging/Logging.java openjdk-boot/jdk/src/share/classes/java/util/logging/Logging.java
---- openjdk-boot.orig/jdk/src/share/classes/java/util/logging/Logging.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/java/util/logging/Logging.java	2012-11-30 15:09:47.219538753 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/logging/Logging.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/util/logging/Logging.java	2013-04-04 18:13:31.508319414 +0100
 @@ -56,7 +56,7 @@
  
      public List<String> getLoggerNames() {
@@ -3222,19 +3265,36 @@
          for (; loggers.hasMoreElements();) {
              array.add((String) loggers.nextElement());
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/logging/LogManager.java openjdk-boot/jdk/src/share/classes/java/util/logging/LogManager.java
---- openjdk-boot.orig/jdk/src/share/classes/java/util/logging/LogManager.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/java/util/logging/LogManager.java	2012-11-30 15:09:47.219538753 +0000
-@@ -156,7 +156,8 @@
-     private final static Level defaultLevel = Level.INFO;
- 
-     // 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 @@
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/logging/LogManager.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/util/logging/LogManager.java	2013-04-04 18:15:42.194433213 +0100
+@@ -378,7 +378,7 @@
+     }
+ 
+     private List<LoggerContext> contexts() {
+-        List<LoggerContext> cxs = new ArrayList<>();
++        List<LoggerContext> cxs = new ArrayList<LoggerContext>();
+         cxs.add(systemContext);
+         cxs.add(getUserContext());
+         return cxs;
+@@ -471,7 +471,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;
+ 
+@@ -620,7 +620,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) {
+@@ -712,7 +712,7 @@
      // loggerRefQueue holds LoggerWeakRef objects for Logger objects
      // that have been GC'ed.
      private final ReferenceQueue<Logger> loggerRefQueue
@@ -3243,16 +3303,7 @@
  
      // 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 @@
+@@ -1054,7 +1054,7 @@
          }
          hands = hands.trim();
          int ix = 0;
@@ -3262,8 +3313,8 @@
              int end = ix;
              while (end < hands.length()) {
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/logging/LogRecord.java openjdk-boot/jdk/src/share/classes/java/util/logging/LogRecord.java
---- openjdk-boot.orig/jdk/src/share/classes/java/util/logging/LogRecord.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/java/util/logging/LogRecord.java	2012-11-30 15:09:47.219538753 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/logging/LogRecord.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/util/logging/LogRecord.java	2013-04-04 18:13:31.516319543 +0100
 @@ -85,7 +85,8 @@
      private static final AtomicInteger nextThreadId
          = new AtomicInteger(MIN_SEQUENTIAL_THREAD_ID);
@@ -3275,8 +3326,8 @@
      /**
       * @serial Logging message level
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/prefs/AbstractPreferences.java openjdk-boot/jdk/src/share/classes/java/util/prefs/AbstractPreferences.java
---- openjdk-boot.orig/jdk/src/share/classes/java/util/prefs/AbstractPreferences.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/java/util/prefs/AbstractPreferences.java	2012-11-30 15:09:47.219538753 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/prefs/AbstractPreferences.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/util/prefs/AbstractPreferences.java	2013-04-04 18:13:31.520319609 +0100
 @@ -155,7 +155,8 @@
       * All known unremoved children of this node.  (This "cache" is consulted
       * prior to calling childSpi() or getChild().
@@ -3307,8 +3358,8 @@
      /**
       * These two classes are used to distinguish NodeChangeEvents on
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/PriorityQueue.java openjdk-boot/jdk/src/share/classes/java/util/PriorityQueue.java
---- openjdk-boot.orig/jdk/src/share/classes/java/util/PriorityQueue.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/java/util/PriorityQueue.java	2012-11-30 15:09:47.219538753 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/PriorityQueue.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/util/PriorityQueue.java	2013-04-04 18:13:31.520319609 +0100
 @@ -538,7 +538,7 @@
                      cursor--;
                  else {
@@ -3319,8 +3370,8 @@
                  }
              } else if (lastRetElt != null) {
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/Properties.java openjdk-boot/jdk/src/share/classes/java/util/Properties.java
---- openjdk-boot.orig/jdk/src/share/classes/java/util/Properties.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/java/util/Properties.java	2012-11-30 15:09:47.219538753 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/Properties.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/util/Properties.java	2013-04-04 18:13:31.520319609 +0100
 @@ -1010,7 +1010,7 @@
       * @since   1.6
       */
@@ -3331,8 +3382,8 @@
          return h.keySet();
      }
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/regex/Pattern.java openjdk-boot/jdk/src/share/classes/java/util/regex/Pattern.java
---- openjdk-boot.orig/jdk/src/share/classes/java/util/regex/Pattern.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/java/util/regex/Pattern.java	2012-11-30 15:09:47.223538816 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/regex/Pattern.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/util/regex/Pattern.java	2013-04-04 18:13:31.524319673 +0100
 @@ -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>
@@ -3370,8 +3421,8 @@
          static {
              // Unicode character property aliases, defined in
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/regex/UnicodeProp.java openjdk-boot/jdk/src/share/classes/java/util/regex/UnicodeProp.java
---- openjdk-boot.orig/jdk/src/share/classes/java/util/regex/UnicodeProp.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/java/util/regex/UnicodeProp.java	2012-11-30 15:09:47.223538816 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/regex/UnicodeProp.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/util/regex/UnicodeProp.java	2013-04-04 18:13:31.524319673 +0100
 @@ -193,8 +193,8 @@
          }
      };
@@ -3384,8 +3435,8 @@
          posix.put("ALPHA", "ALPHABETIC");
          posix.put("LOWER", "LOWERCASE");
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/RegularEnumSet.java openjdk-boot/jdk/src/share/classes/java/util/RegularEnumSet.java
---- openjdk-boot.orig/jdk/src/share/classes/java/util/RegularEnumSet.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/java/util/RegularEnumSet.java	2012-11-30 15:09:47.223538816 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/RegularEnumSet.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/util/RegularEnumSet.java	2013-04-04 18:13:31.524319673 +0100
 @@ -72,7 +72,7 @@
       * @return an iterator over the elements contained in this set
       */
@@ -3396,8 +3447,8 @@
  
      private class EnumSetIterator<E extends Enum<E>> implements Iterator<E> {
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/ResourceBundle.java openjdk-boot/jdk/src/share/classes/java/util/ResourceBundle.java
---- openjdk-boot.orig/jdk/src/share/classes/java/util/ResourceBundle.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/java/util/ResourceBundle.java	2012-11-30 15:09:47.223538816 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/ResourceBundle.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/util/ResourceBundle.java	2013-04-04 18:13:31.528319739 +0100
 @@ -289,7 +289,7 @@
       * name for compatibility with some workarounds for bug 4212439.
       */
@@ -3462,8 +3513,8 @@
                  if (variants != null) {
                      for (String v : variants) {
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/ServiceLoader.java openjdk-boot/jdk/src/share/classes/java/util/ServiceLoader.java
---- openjdk-boot.orig/jdk/src/share/classes/java/util/ServiceLoader.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/java/util/ServiceLoader.java	2012-11-30 15:09:47.223538816 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/ServiceLoader.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/util/ServiceLoader.java	2013-04-04 18:13:31.528319739 +0100
 @@ -191,7 +191,7 @@
      private ClassLoader loader;
  
@@ -3492,8 +3543,8 @@
  
      /**
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/TimSort.java openjdk-boot/jdk/src/share/classes/java/util/TimSort.java
---- openjdk-boot.orig/jdk/src/share/classes/java/util/TimSort.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/java/util/TimSort.java	2012-11-30 15:09:47.223538816 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/TimSort.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/util/TimSort.java	2013-04-04 18:13:31.532319804 +0100
 @@ -196,7 +196,7 @@
           * extending short natural runs to minRun elements, and merging runs
           * to maintain stack invariant.
@@ -3504,8 +3555,8 @@
          do {
              // Identify next run
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/TreeMap.java openjdk-boot/jdk/src/share/classes/java/util/TreeMap.java
---- openjdk-boot.orig/jdk/src/share/classes/java/util/TreeMap.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/java/util/TreeMap.java	2012-11-30 15:09:47.223538816 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/TreeMap.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/util/TreeMap.java	2013-04-04 18:13:31.532319804 +0100
 @@ -530,7 +530,7 @@
          if (t == null) {
              compare(key, key); // type (and possibly null) check
@@ -3561,8 +3612,8 @@
          // color nodes in non-full bottommost level red
          if (level == redLevel)
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/TreeSet.java openjdk-boot/jdk/src/share/classes/java/util/TreeSet.java
---- openjdk-boot.orig/jdk/src/share/classes/java/util/TreeSet.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/java/util/TreeSet.java	2012-11-30 15:09:47.223538816 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/TreeSet.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/util/TreeSet.java	2013-04-04 18:13:31.536319868 +0100
 @@ -138,7 +138,7 @@
       *        ordering} of the elements will be used.
       */
@@ -3630,8 +3681,8 @@
  
          // Read in size
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/WeakHashMap.java openjdk-boot/jdk/src/share/classes/java/util/WeakHashMap.java
---- openjdk-boot.orig/jdk/src/share/classes/java/util/WeakHashMap.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/java/util/WeakHashMap.java	2012-11-30 15:09:47.223538816 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/WeakHashMap.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/util/WeakHashMap.java	2013-04-04 18:13:31.536319868 +0100
 @@ -172,7 +172,7 @@
      /**
       * Reference queue for cleared WeakEntries
@@ -3664,8 +3715,8 @@
          }
  
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/zip/ZipFile.java openjdk-boot/jdk/src/share/classes/java/util/zip/ZipFile.java
---- openjdk-boot.orig/jdk/src/share/classes/java/util/zip/ZipFile.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/java/util/zip/ZipFile.java	2012-11-30 15:09:47.227538879 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/zip/ZipFile.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/util/zip/ZipFile.java	2013-04-04 18:13:31.536319868 +0100
 @@ -319,7 +319,7 @@
  
      // the outstanding inputstreams that need to be closed,
@@ -3694,8 +3745,8 @@
                      for (Map.Entry<InputStream, Inflater> e : copy.entrySet()) {
                          e.getKey().close();
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/zip/ZipOutputStream.java openjdk-boot/jdk/src/share/classes/java/util/zip/ZipOutputStream.java
---- openjdk-boot.orig/jdk/src/share/classes/java/util/zip/ZipOutputStream.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/java/util/zip/ZipOutputStream.java	2012-11-30 15:09:47.227538879 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/zip/ZipOutputStream.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/util/zip/ZipOutputStream.java	2013-04-04 18:13:31.540319934 +0100
 @@ -53,8 +53,8 @@
      }
  
@@ -3708,8 +3759,8 @@
      private long written = 0;
      private long locoff = 0;
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/javax/crypto/CryptoPermissions.java openjdk-boot/jdk/src/share/classes/javax/crypto/CryptoPermissions.java
---- openjdk-boot.orig/jdk/src/share/classes/javax/crypto/CryptoPermissions.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/javax/crypto/CryptoPermissions.java	2012-11-30 15:09:47.227538879 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/javax/crypto/CryptoPermissions.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/javax/crypto/CryptoPermissions.java	2013-04-04 18:13:31.540319934 +0100
 @@ -84,7 +84,7 @@
       * no CryptoPermissionCollections.
       */
@@ -3748,8 +3799,8 @@
          fields.put("perms", permTable);
          s.writeFields();
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/javax/crypto/JceSecurityManager.java openjdk-boot/jdk/src/share/classes/javax/crypto/JceSecurityManager.java
---- openjdk-boot.orig/jdk/src/share/classes/javax/crypto/JceSecurityManager.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/javax/crypto/JceSecurityManager.java	2012-11-30 15:09:47.227538879 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/javax/crypto/JceSecurityManager.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/javax/crypto/JceSecurityManager.java	2013-04-04 18:13:31.540319934 +0100
 @@ -54,7 +54,7 @@
      private static final CryptoAllPermission allPerm;
      private static final Vector TrustedCallersCache = new Vector(2);
@@ -3760,8 +3811,8 @@
              new CryptoPermissions();
  
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/javax/security/auth/kerberos/DelegationPermission.java openjdk-boot/jdk/src/share/classes/javax/security/auth/kerberos/DelegationPermission.java
---- openjdk-boot.orig/jdk/src/share/classes/javax/security/auth/kerberos/DelegationPermission.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/javax/security/auth/kerberos/DelegationPermission.java	2012-11-30 15:09:47.227538879 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/javax/security/auth/kerberos/DelegationPermission.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/javax/security/auth/kerberos/DelegationPermission.java	2013-04-04 18:13:31.544319998 +0100
 @@ -361,7 +361,7 @@
          // Don't call out.defaultWriteObject()
  
@@ -3772,8 +3823,8 @@
          synchronized (this) {
              permissions.addAll(perms);
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/javax/security/auth/kerberos/ServicePermission.java openjdk-boot/jdk/src/share/classes/javax/security/auth/kerberos/ServicePermission.java
---- openjdk-boot.orig/jdk/src/share/classes/javax/security/auth/kerberos/ServicePermission.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/javax/security/auth/kerberos/ServicePermission.java	2012-11-30 15:09:47.227538879 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/javax/security/auth/kerberos/ServicePermission.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/javax/security/auth/kerberos/ServicePermission.java	2013-04-04 18:13:31.544319998 +0100
 @@ -569,7 +569,7 @@
          // Don't call out.defaultWriteObject()
  
@@ -3784,8 +3835,8 @@
          synchronized (this) {
              permissions.addAll(perms);
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/javax/security/auth/PrivateCredentialPermission.java openjdk-boot/jdk/src/share/classes/javax/security/auth/PrivateCredentialPermission.java
---- openjdk-boot.orig/jdk/src/share/classes/javax/security/auth/PrivateCredentialPermission.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/javax/security/auth/PrivateCredentialPermission.java	2012-11-30 15:09:47.227538879 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/javax/security/auth/PrivateCredentialPermission.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/javax/security/auth/PrivateCredentialPermission.java	2013-04-04 18:13:31.544319998 +0100
 @@ -329,7 +329,7 @@
              throw new IllegalArgumentException("invalid empty name");
          }
@@ -3796,8 +3847,8 @@
          String principalClass = null;
          String principalName = null;
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/javax/security/auth/SubjectDomainCombiner.java openjdk-boot/jdk/src/share/classes/javax/security/auth/SubjectDomainCombiner.java
---- openjdk-boot.orig/jdk/src/share/classes/javax/security/auth/SubjectDomainCombiner.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/javax/security/auth/SubjectDomainCombiner.java	2012-11-30 15:09:47.227538879 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/javax/security/auth/SubjectDomainCombiner.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/javax/security/auth/SubjectDomainCombiner.java	2013-04-04 18:13:31.548320063 +0100
 @@ -48,7 +48,7 @@
  
      private Subject subject;
@@ -3808,8 +3859,8 @@
      private Principal[] principals;
  
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/invoke/util/ValueConversions.java openjdk-boot/jdk/src/share/classes/sun/invoke/util/ValueConversions.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/invoke/util/ValueConversions.java	2012-11-30 15:06:27.268404761 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/invoke/util/ValueConversions.java	2012-11-30 15:10:21.552077095 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/sun/invoke/util/ValueConversions.java	2013-04-04 18:12:33.971383825 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/invoke/util/ValueConversions.java	2013-04-04 18:13:31.552320128 +0100
 @@ -60,7 +60,7 @@
          EnumMap<Wrapper, MethodHandle>[] caches
                  = (EnumMap<Wrapper, MethodHandle>[]) new EnumMap<?,?>[n];
@@ -3819,7 +3870,7 @@
          return caches;
      }
  
-@@ -935,7 +935,7 @@
+@@ -943,7 +943,7 @@
                                    Object a8, Object a9)
                  { return makeArray(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9); }
      private static MethodHandle[] makeArrays() {
@@ -3828,7 +3879,7 @@
          for (;;) {
              MethodHandle mh = findCollector("array", mhs.size(), Object[].class);
              if (mh == null)  break;
-@@ -991,7 +991,7 @@
+@@ -999,7 +999,7 @@
                                    Object a8, Object a9)
                  { fillWithArguments(a, pos, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9); return a; }
      private static MethodHandle[] makeFillArrays() {
@@ -3837,7 +3888,7 @@
          mhs.add(null);  // there is no empty fill; at least a0 is required
          for (;;) {
              MethodHandle mh = findCollector("fillArray", mhs.size(), Object[].class, Integer.class, Object[].class);
-@@ -1192,7 +1192,7 @@
+@@ -1200,7 +1200,7 @@
                                       Object a8, Object a9)
                  { return makeList(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9); }
      private static MethodHandle[] makeLists() {
@@ -3847,8 +3898,8 @@
              MethodHandle mh = findCollector("list", mhs.size(), List.class);
              if (mh == null)  break;
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/io/CharacterEncoding.java openjdk-boot/jdk/src/share/classes/sun/io/CharacterEncoding.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/io/CharacterEncoding.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/io/CharacterEncoding.java	2012-11-30 15:09:47.227538879 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/sun/io/CharacterEncoding.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/io/CharacterEncoding.java	2013-04-04 18:13:31.552320128 +0100
 @@ -54,7 +54,7 @@
      private static volatile boolean installedAll;
  
@@ -3859,8 +3910,8 @@
          aliasTable.put("us-ascii",              "ASCII");
          aliasTable.put("ascii",                 "ASCII");
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/io/Converters.java openjdk-boot/jdk/src/share/classes/sun/io/Converters.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/io/Converters.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/io/Converters.java	2012-11-30 15:09:47.227538879 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/sun/io/Converters.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/io/Converters.java	2013-04-04 18:13:31.556320193 +0100
 @@ -120,7 +120,7 @@
  
      private static Class<?> cache(int type, Object encoding, Class<?> c) {
@@ -3871,8 +3922,8 @@
          return c;
      }
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/launcher/LauncherHelper.java openjdk-boot/jdk/src/share/classes/sun/launcher/LauncherHelper.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/launcher/LauncherHelper.java	2012-11-30 15:06:27.260404636 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/launcher/LauncherHelper.java	2012-11-30 15:09:47.227538879 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/sun/launcher/LauncherHelper.java	2013-04-04 18:12:33.939383303 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/launcher/LauncherHelper.java	2013-04-04 18:13:31.556320193 +0100
 @@ -171,7 +171,7 @@
      private static void printProperties(PrintStream ostream) {
          Properties p = System.getProperties();
@@ -3909,9 +3960,21 @@
          if (trace) {
              System.err.println("Incoming arguments:");
          }
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/management/jdp/JdpPacketReader.java openjdk-boot/jdk/src/share/classes/sun/management/jdp/JdpPacketReader.java
+--- openjdk-boot.orig/jdk/src/share/classes/sun/management/jdp/JdpPacketReader.java	2013-04-04 18:22:18.896783044 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/management/jdp/JdpPacketReader.java	2013-04-04 18:22:31.448982815 +0100
+@@ -120,7 +120,7 @@
+ 
+         String key = null, value = null;
+ 
+-        final Map<String, String> tmpMap = new HashMap<>();
++        final Map<String, String> tmpMap = new HashMap<String, String>();
+         try {
+             while (true) {
+                 key = getEntry();
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/management/ManagementFactoryHelper.java openjdk-boot/jdk/src/share/classes/sun/management/ManagementFactoryHelper.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/management/ManagementFactoryHelper.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/management/ManagementFactoryHelper.java	2012-11-30 15:09:47.227538879 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/sun/management/ManagementFactoryHelper.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/management/ManagementFactoryHelper.java	2013-04-04 18:13:31.556320193 +0100
 @@ -205,7 +205,7 @@
      private static List<BufferPoolMXBean> bufferPools = null;
      public static synchronized List<BufferPoolMXBean> getBufferPoolMXBeans() {
@@ -3922,8 +3985,8 @@
                  .getDirectBufferPool()));
              bufferPools.add(createBufferPoolMXBean(sun.nio.ch.FileChannelImpl
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/net/spi/nameservice/dns/DNSNameService.java openjdk-boot/jdk/src/share/classes/sun/net/spi/nameservice/dns/DNSNameService.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/net/spi/nameservice/dns/DNSNameService.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/net/spi/nameservice/dns/DNSNameService.java	2012-11-30 15:09:47.231538941 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/sun/net/spi/nameservice/dns/DNSNameService.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/net/spi/nameservice/dns/DNSNameService.java	2013-04-04 18:13:31.556320193 +0100
 @@ -52,7 +52,7 @@
  
      // Per-thread soft cache of the last temporary context
@@ -3952,8 +4015,8 @@
  
          // do the query
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/net/www/protocol/http/AuthenticationInfo.java openjdk-boot/jdk/src/share/classes/sun/net/www/protocol/http/AuthenticationInfo.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/net/www/protocol/http/AuthenticationInfo.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/net/www/protocol/http/AuthenticationInfo.java	2012-11-30 15:09:47.231538941 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/sun/net/www/protocol/http/AuthenticationInfo.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/net/www/protocol/http/AuthenticationInfo.java	2013-04-04 18:13:31.560320258 +0100
 @@ -111,7 +111,7 @@
       * at the same time, then all but the first will block until
       * the first completes its authentication.
@@ -3964,9 +4027,9 @@
      /* check if a request for this destination is in progress
       * return false immediately if not. Otherwise block until
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/net/www/protocol/http/HttpURLConnection.java openjdk-boot/jdk/src/share/classes/sun/net/www/protocol/http/HttpURLConnection.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/net/www/protocol/http/HttpURLConnection.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/net/www/protocol/http/HttpURLConnection.java	2012-11-30 15:09:47.231538941 +0000
-@@ -2629,7 +2629,7 @@
+--- openjdk-boot.orig/jdk/src/share/classes/sun/net/www/protocol/http/HttpURLConnection.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/net/www/protocol/http/HttpURLConnection.java	2013-04-04 18:13:31.564320323 +0100
+@@ -2646,7 +2646,7 @@
          if (filteredHeaders != null)
              return filteredHeaders;
  
@@ -3975,7 +4038,7 @@
  
          if (cachedHeaders != null)
              headers = cachedHeaders.getHeaders();
-@@ -2638,7 +2638,7 @@
+@@ -2655,7 +2655,7 @@
  
          for (Map.Entry<String, List<String>> e: headers.entrySet()) {
              String key = e.getKey();
@@ -3985,8 +4048,8 @@
                  String fVal = filterHeaderField(key, value);
                  if (fVal != null)
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/net/www/URLConnection.java openjdk-boot/jdk/src/share/classes/sun/net/www/URLConnection.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/net/www/URLConnection.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/net/www/URLConnection.java	2012-11-30 15:09:47.231538941 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/sun/net/www/URLConnection.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/net/www/URLConnection.java	2013-04-04 18:13:31.564320323 +0100
 @@ -239,7 +239,7 @@
          url = null;
      }
@@ -3997,8 +4060,8 @@
      public synchronized static void setProxiedHost(String host) {
          proxiedHosts.put(host.toLowerCase(), null);
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/nio/cs/AbstractCharsetProvider.java openjdk-boot/jdk/src/share/classes/sun/nio/cs/AbstractCharsetProvider.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/nio/cs/AbstractCharsetProvider.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/nio/cs/AbstractCharsetProvider.java	2012-11-30 15:09:47.231538941 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/sun/nio/cs/AbstractCharsetProvider.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/nio/cs/AbstractCharsetProvider.java	2013-04-04 18:13:31.564320323 +0100
 @@ -49,22 +49,22 @@
      /* Maps canonical names to class names
       */
@@ -4036,8 +4099,8 @@
  
          return new Iterator<Charset>() {
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/nio/fs/AbstractAclFileAttributeView.java openjdk-boot/jdk/src/share/classes/sun/nio/fs/AbstractAclFileAttributeView.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/nio/fs/AbstractAclFileAttributeView.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/nio/fs/AbstractAclFileAttributeView.java	2012-11-30 15:09:47.231538941 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/sun/nio/fs/AbstractAclFileAttributeView.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/nio/fs/AbstractAclFileAttributeView.java	2013-04-04 18:13:31.568320388 +0100
 @@ -84,7 +84,7 @@
              throw new IllegalArgumentException("'" + name() + ":" +
                  attribute + "' not recognized");
@@ -4048,8 +4111,8 @@
              result.put(ACL_NAME, getAcl());
          if (owner)
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/nio/fs/AbstractBasicFileAttributeView.java openjdk-boot/jdk/src/share/classes/sun/nio/fs/AbstractBasicFileAttributeView.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/nio/fs/AbstractBasicFileAttributeView.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/nio/fs/AbstractBasicFileAttributeView.java	2012-11-30 15:09:47.231538941 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/sun/nio/fs/AbstractBasicFileAttributeView.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/nio/fs/AbstractBasicFileAttributeView.java	2013-04-04 18:13:31.568320388 +0100
 @@ -89,8 +89,8 @@
       * Used to build a map of attribute name/values.
       */
@@ -4062,8 +4125,8 @@
  
          private AttributesBuilder(Set<String> allowed, String[] requested) {
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/nio/fs/AbstractPoller.java openjdk-boot/jdk/src/share/classes/sun/nio/fs/AbstractPoller.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/nio/fs/AbstractPoller.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/nio/fs/AbstractPoller.java	2012-11-30 15:09:47.231538941 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/sun/nio/fs/AbstractPoller.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/nio/fs/AbstractPoller.java	2013-04-04 18:13:31.568320388 +0100
 @@ -102,7 +102,7 @@
              throw new NullPointerException();
          if (events.length == 0)
@@ -4074,8 +4137,8 @@
              // standard events
              if (event == StandardWatchEventKinds.ENTRY_CREATE ||
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/nio/fs/AbstractUserDefinedFileAttributeView.java openjdk-boot/jdk/src/share/classes/sun/nio/fs/AbstractUserDefinedFileAttributeView.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/nio/fs/AbstractUserDefinedFileAttributeView.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/nio/fs/AbstractUserDefinedFileAttributeView.java	2012-11-30 15:09:47.231538941 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/sun/nio/fs/AbstractUserDefinedFileAttributeView.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/nio/fs/AbstractUserDefinedFileAttributeView.java	2013-04-04 18:13:31.572320453 +0100
 @@ -77,7 +77,7 @@
          throws IOException
      {
@@ -4095,8 +4158,8 @@
              int size = size(name);
              byte[] buf = new byte[size];
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/nio/fs/FileOwnerAttributeViewImpl.java openjdk-boot/jdk/src/share/classes/sun/nio/fs/FileOwnerAttributeViewImpl.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/nio/fs/FileOwnerAttributeViewImpl.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/nio/fs/FileOwnerAttributeViewImpl.java	2012-11-30 15:09:47.231538941 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/sun/nio/fs/FileOwnerAttributeViewImpl.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/nio/fs/FileOwnerAttributeViewImpl.java	2013-04-04 18:13:31.572320453 +0100
 @@ -71,7 +71,7 @@
  
      @Override
@@ -4107,8 +4170,8 @@
              if (attribute.equals("*") || attribute.equals(OWNER_NAME)) {
                  result.put(OWNER_NAME, getOwner());
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/nio/fs/Util.java openjdk-boot/jdk/src/share/classes/sun/nio/fs/Util.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/nio/fs/Util.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/nio/fs/Util.java	2012-11-30 15:09:47.231538941 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/sun/nio/fs/Util.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/nio/fs/Util.java	2013-04-04 18:13:31.572320453 +0100
 @@ -63,7 +63,7 @@
       * Returns a Set containing the given elements.
       */
@@ -4128,8 +4191,8 @@
              set.add(e);
          }
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/reflect/generics/parser/SignatureParser.java openjdk-boot/jdk/src/share/classes/sun/reflect/generics/parser/SignatureParser.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/reflect/generics/parser/SignatureParser.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/reflect/generics/parser/SignatureParser.java	2012-11-30 15:09:47.231538941 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/sun/reflect/generics/parser/SignatureParser.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/reflect/generics/parser/SignatureParser.java	2013-04-04 18:13:31.576320518 +0100
 @@ -229,7 +229,7 @@
       *     "<" FormalTypeParameter+ ">"
       */
@@ -4193,10 +4256,95 @@
          while( current() == '^') {
              ets.add(parseThrowsSignature());
          }
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/rmi/registry/RegistryImpl.java openjdk-boot/jdk/src/share/classes/sun/rmi/registry/RegistryImpl.java
+--- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/registry/RegistryImpl.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/rmi/registry/RegistryImpl.java	2013-04-04 18:13:31.720322855 +0100
+@@ -78,9 +78,9 @@
+     /* indicate compatibility with JDK 1.1.x version of class */
+     private static final long serialVersionUID = 4666870661827494597L;
+     private Hashtable<String, Remote> bindings
+-        = new Hashtable<>(101);
++        = new Hashtable<String, Remote>(101);
+     private static Hashtable<InetAddress, InetAddress> allowedAccessCache
+-        = new Hashtable<>(3);
++        = new Hashtable<InetAddress, InetAddress>(3);
+     private static RegistryImpl registry;
+     private static ObjID id = new ObjID(ObjID.REGISTRY_ID);
+ 
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/rmi/rmic/BatchEnvironment.java openjdk-boot/jdk/src/share/classes/sun/rmi/rmic/BatchEnvironment.java
+--- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/rmic/BatchEnvironment.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/rmi/rmic/BatchEnvironment.java	2013-04-04 18:13:31.748323310 +0100
+@@ -160,7 +160,7 @@
+     }
+ 
+     /** list of generated source files created in this environment */
+-    private Vector<File> generatedFiles = new Vector<>();
++    private Vector<File> generatedFiles = new Vector<File>();
+ 
+     /**
+      * Remember a generated source file generated so that it
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/rmi/rmic/Main.java openjdk-boot/jdk/src/share/classes/sun/rmi/rmic/Main.java
+--- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/rmic/Main.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/rmi/rmic/Main.java	2013-04-04 18:13:31.748323310 +0100
+@@ -184,7 +184,7 @@
+         destDir = null;
+         flags = F_WARNINGS;
+         tm = System.currentTimeMillis();
+-        classes = new Vector<>();
++        classes = new Vector<String>();
+         nowrite = false;
+         nocompile = false;
+         keepGenerated = false;
+@@ -192,7 +192,7 @@
+         if (generatorArgs == null) {
+             return false;
+         }
+-        generators = new Vector<>();
++        generators = new Vector<Generator>();
+ 
+         // Pre-process command line for @file arguments
+         try {
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/rmi/rmic/RMIGenerator.java openjdk-boot/jdk/src/share/classes/sun/rmi/rmic/RMIGenerator.java
+--- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/rmic/RMIGenerator.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/rmi/rmic/RMIGenerator.java	2013-04-04 18:13:31.748323310 +0100
+@@ -61,7 +61,7 @@
+  */
+ public class RMIGenerator implements RMIConstants, Generator {
+ 
+-    private static final Hashtable<String, Integer> versionOptions = new Hashtable<>();
++    private static final Hashtable<String, Integer> versionOptions = new Hashtable<String, Integer>();
+     static {
+         versionOptions.put("-v1.1", new Integer(STUB_VERSION_1_1));
+         versionOptions.put("-vcompat", new Integer(STUB_VERSION_FAT));
+@@ -651,7 +651,7 @@
+      * that no exceptions need to be caught.
+      */
+     private Vector<ClassDefinition> computeUniqueCatchList(ClassDeclaration[] exceptions) {
+-        Vector<ClassDefinition> uniqueList = new Vector<>();       // unique exceptions to catch
++        Vector<ClassDefinition> uniqueList = new Vector<ClassDefinition>();       // unique exceptions to catch
+ 
+         uniqueList.addElement(defRuntimeException);
+         uniqueList.addElement(defRemoteException);
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/rmi/server/ActivationGroupImpl.java openjdk-boot/jdk/src/share/classes/sun/rmi/server/ActivationGroupImpl.java
+--- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/server/ActivationGroupImpl.java	2013-04-04 18:12:33.915382912 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/rmi/server/ActivationGroupImpl.java	2013-04-04 18:13:31.720322855 +0100
+@@ -66,10 +66,10 @@
+ 
+     /** maps persistent IDs to activated remote objects */
+     private final Hashtable<ActivationID,ActiveEntry> active =
+-        new Hashtable<>();
++        new Hashtable<ActivationID,ActiveEntry>();
+     private boolean groupInactive = false;
+     private final ActivationGroupID groupID;
+-    private final List<ActivationID> lockedIDs = new ArrayList<>();
++    private final List<ActivationID> lockedIDs = new ArrayList<ActivationID>();
+ 
+     /**
+      * Creates a default activation group implementation.
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/rmi/server/Activation.java openjdk-boot/jdk/src/share/classes/sun/rmi/server/Activation.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/server/Activation.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/rmi/server/Activation.java	2012-11-30 15:09:47.231538941 +0000
-@@ -150,10 +150,10 @@
+--- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/server/Activation.java	2013-04-04 18:12:33.939383303 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/rmi/server/Activation.java	2013-04-04 18:13:31.752323374 +0100
+@@ -149,10 +149,10 @@
  
      /** maps activation id to its respective group id */
      private Map<ActivationID,ActivationGroupID> idTable =
@@ -4209,7 +4357,7 @@
  
      private byte majorVersion = MAJOR_VERSION;
      private byte minorVersion = MINOR_VERSION;
-@@ -289,10 +289,10 @@
+@@ -288,10 +288,10 @@
      {
          ois.defaultReadObject();
          if (! (groupTable instanceof ConcurrentHashMap)) {
@@ -4222,9 +4370,405 @@
          }
      }
  
+@@ -805,8 +805,8 @@
+         ActivationGroupDesc desc = null;
+         ActivationGroupID groupID = null;
+         long incarnation = 0;
+-        Map<ActivationID,ObjectEntry> objects = new HashMap<>();
+-        Set<ActivationID> restartSet = new HashSet<>();
++        Map<ActivationID,ObjectEntry> objects = new HashMap<ActivationID,ObjectEntry>();
++        Set<ActivationID> restartSet = new HashSet<ActivationID>();
+ 
+         transient ActivationInstantiator group = null;
+         transient int status = NORMAL;
+@@ -1359,7 +1359,7 @@
+         cmdenv = desc.getCommandEnvironment();
+ 
+         // argv is the literal command to exec
+-        List<String> argv = new ArrayList<>();
++        List<String> argv = new ArrayList<String>();
+ 
+         // Command name/path
+         argv.add((cmdenv != null && cmdenv.getCommandPath() != null)
+@@ -1964,7 +1964,7 @@
+             }
+ 
+             String log = null;
+-            List<String> childArgs = new ArrayList<>();
++            List<String> childArgs = new ArrayList<String>();
+ 
+             /*
+              * Parse arguments
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/rmi/server/LoaderHandler.java openjdk-boot/jdk/src/share/classes/sun/rmi/server/LoaderHandler.java
+--- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/server/LoaderHandler.java	2013-04-04 18:12:33.915382912 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/rmi/server/LoaderHandler.java	2013-04-04 18:13:31.724322920 +0100
+@@ -112,11 +112,11 @@
+      * garbage collected.
+      */
+     private static final HashMap<LoaderKey, LoaderEntry> loaderTable
+-        = new HashMap<>(5);
++        = new HashMap<LoaderKey, LoaderEntry>(5);
+ 
+     /** reference queue for cleared class loader entries */
+     private static final ReferenceQueue<Loader> refQueue
+-        = new ReferenceQueue<>();
++        = new ReferenceQueue<Loader>();
+ 
+     /*
+      * Disallow anyone from creating one of these.
+@@ -779,7 +779,7 @@
+ 
+     /** map from weak(key=string) to [URL[], soft(key)] */
+     private static final Map<String, Object[]> pathToURLsCache
+-        = new WeakHashMap<>(5);
++        = new WeakHashMap<String, Object[]>(5);
+ 
+     /**
+      * Convert an array of URL objects into a corresponding string
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/rmi/server/MarshalInputStream.java openjdk-boot/jdk/src/share/classes/sun/rmi/server/MarshalInputStream.java
+--- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/server/MarshalInputStream.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/rmi/server/MarshalInputStream.java	2013-04-04 18:13:31.724322920 +0100
+@@ -65,14 +65,14 @@
+ 
+     /** table to hold sun classes to which access is explicitly permitted */
+     protected static Map<String, Class<?>> permittedSunClasses
+-        = new HashMap<>(3);
++        = new HashMap<String, Class<?>>(3);
+ 
+     /** if true, don't try superclass first in resolveClass() */
+     private boolean skipDefaultResolveClass = false;
+ 
+     /** callbacks to make when done() called: maps Object to Runnable */
+     private final Map<Object, Runnable> doneCallbacks
+-        = new HashMap<>(3);
++        = new HashMap<Object, Runnable>(3);
+ 
+     /**
+      * if true, load classes (if not available locally) only from the
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/rmi/server/UnicastServerRef.java openjdk-boot/jdk/src/share/classes/sun/rmi/server/UnicastServerRef.java
+--- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/server/UnicastServerRef.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/rmi/server/UnicastServerRef.java	2013-04-04 18:13:31.728322985 +0100
+@@ -537,7 +537,7 @@
+         HashToMethod_Maps() {}
+ 
+         protected Map<Long,Method> computeValue(Class<?> remoteClass) {
+-            Map<Long,Method> map = new HashMap<>();
++            Map<Long,Method> map = new HashMap<Long,Method>();
+             for (Class<?> cl = remoteClass;
+                  cl != null;
+                  cl = cl.getSuperclass())
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/rmi/server/Util.java openjdk-boot/jdk/src/share/classes/sun/rmi/server/Util.java
+--- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/server/Util.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/rmi/server/Util.java	2013-04-04 18:13:31.728322985 +0100
+@@ -207,7 +207,7 @@
+      * @throws  NullPointerException if remoteClass is null
+      */
+     private static Class<?>[] getRemoteInterfaces(Class<?> remoteClass) {
+-        ArrayList<Class<?>> list = new ArrayList<>();
++        ArrayList<Class<?>> list = new ArrayList<Class<?>>();
+         getRemoteInterfaces(list, remoteClass);
+         return list.toArray(new Class<?>[list.size()]);
+     }
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/rmi/server/WeakClassHashMap.java openjdk-boot/jdk/src/share/classes/sun/rmi/server/WeakClassHashMap.java
+--- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/server/WeakClassHashMap.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/rmi/server/WeakClassHashMap.java	2013-04-04 18:13:31.728322985 +0100
+@@ -46,7 +46,7 @@
+  **/
+ public abstract class WeakClassHashMap<V> {
+ 
+-    private Map<Class<?>,ValueCell<V>> internalMap = new WeakHashMap<>();
++    private Map<Class<?>,ValueCell<V>> internalMap = new WeakHashMap<Class<?>,ValueCell<V>>();
+ 
+     protected WeakClassHashMap() { }
+ 
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/ConnectionInputStream.java openjdk-boot/jdk/src/share/classes/sun/rmi/transport/ConnectionInputStream.java
+--- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/ConnectionInputStream.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/rmi/transport/ConnectionInputStream.java	2013-04-04 18:13:31.732323050 +0100
+@@ -43,7 +43,7 @@
+     private boolean dgcAckNeeded = false;
+ 
+     /** Hashtable mapping Endpoints to lists of LiveRefs to register */
+-    private Map<Endpoint, List<LiveRef>> incomingRefTable = new HashMap<>(5);
++    private Map<Endpoint, List<LiveRef>> incomingRefTable = new HashMap<Endpoint, List<LiveRef>>(5);
+ 
+     /** identifier for gc ack*/
+     private UID ackID;
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/DGCAckHandler.java openjdk-boot/jdk/src/share/classes/sun/rmi/transport/DGCAckHandler.java
+--- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/DGCAckHandler.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/rmi/transport/DGCAckHandler.java	2013-04-04 18:13:31.732323050 +0100
+@@ -78,7 +78,7 @@
+         Collections.synchronizedMap(new HashMap<UID,DGCAckHandler>());
+ 
+     private final UID id;
+-    private List<Object> objList = new ArrayList<>(); // null if released
++    private List<Object> objList = new ArrayList<Object>(); // null if released
+     private Future<?> task = null;
+ 
+     /**
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/DGCClient.java openjdk-boot/jdk/src/share/classes/sun/rmi/transport/DGCClient.java
+--- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/DGCClient.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/rmi/transport/DGCClient.java	2013-04-04 18:13:31.732323050 +0100
+@@ -176,9 +176,9 @@
+         private DGC dgc;
+ 
+         /** table of refs held for endpoint: maps LiveRef to RefEntry */
+-        private Map<LiveRef, RefEntry> refTable = new HashMap<>(5);
++        private Map<LiveRef, RefEntry> refTable = new HashMap<LiveRef, RefEntry>(5);
+         /** set of RefEntry instances from last (failed) dirty call */
+-        private Set<RefEntry> invalidRefs = new HashSet<>(5);
++        private Set<RefEntry> invalidRefs = new HashSet<RefEntry>(5);
+ 
+         /** true if this entry has been removed from the global table */
+         private boolean removed = false;
+@@ -200,12 +200,12 @@
+         private boolean interruptible = false;
+ 
+         /** reference queue for phantom references */
+-        private ReferenceQueue<LiveRef> refQueue = new ReferenceQueue<>();
++        private ReferenceQueue<LiveRef> refQueue = new ReferenceQueue<LiveRef>();
+         /** set of clean calls that need to be made */
+-        private Set<CleanRequest> pendingCleans = new HashSet<>(5);
++        private Set<CleanRequest> pendingCleans = new HashSet<CleanRequest>(5);
+ 
+         /** global endpoint table: maps Endpoint to EndpointEntry */
+-        private static Map<Endpoint,EndpointEntry> endpointTable = new HashMap<>(5);
++        private static Map<Endpoint,EndpointEntry> endpointTable = new HashMap<Endpoint,EndpointEntry>(5);
+         /** handle for GC latency request (for future cancellation) */
+         private static GC.LatencyRequest gcLatencyRequest = null;
+ 
+@@ -282,7 +282,7 @@
+                         refEntry = new RefEntry(refClone);
+                         refTable.put(refClone, refEntry);
+                         if (refsToDirty == null) {
+-                            refsToDirty = new HashSet<>(5);
++                            refsToDirty = new HashSet<RefEntry>(5);
+                         }
+                         refsToDirty.add(refEntry);
+                     }
+@@ -564,7 +564,7 @@
+                             needRenewal = true;
+                             if (!invalidRefs.isEmpty()) {
+                                 refsToDirty = invalidRefs;
+-                                invalidRefs = new HashSet<>(5);
++                                invalidRefs = new HashSet<RefEntry>(5);
+                             }
+                             sequenceNum = getNextSequenceNum();
+                         }
+@@ -603,12 +603,12 @@
+                 if (refEntry.isRefSetEmpty()) {
+                     if (refEntry.hasDirtyFailed()) {
+                         if (strongCleans == null) {
+-                            strongCleans = new HashSet<>(5);
++                            strongCleans = new HashSet<RefEntry>(5);
+                         }
+                         strongCleans.add(refEntry);
+                     } else {
+                         if (normalCleans == null) {
+-                            normalCleans = new HashSet<>(5);
++                            normalCleans = new HashSet<RefEntry>(5);
+                         }
+                         normalCleans.add(refEntry);
+                     }
+@@ -704,7 +704,7 @@
+             /** LiveRef value for this entry (not a registered instance) */
+             private LiveRef ref;
+             /** set of phantom references to registered instances */
+-            private Set<PhantomLiveRef> refSet = new HashSet<>(5);
++            private Set<PhantomLiveRef> refSet = new HashSet<PhantomLiveRef>(5);
+             /** true if a dirty call containing this ref has failed */
+             private boolean dirtyFailed = false;
+ 
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/DGCImpl.java openjdk-boot/jdk/src/share/classes/sun/rmi/transport/DGCImpl.java
+--- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/DGCImpl.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/rmi/transport/DGCImpl.java	2013-04-04 18:13:31.736323115 +0100
+@@ -84,7 +84,7 @@
+     /** remote implementation of DGC interface for this VM */
+     private static DGCImpl dgc;
+     /** table that maps VMID to LeaseInfo */
+-    private Map<VMID,LeaseInfo> leaseTable = new HashMap<>();
++    private Map<VMID,LeaseInfo> leaseTable = new HashMap<VMID,LeaseInfo>();
+     /** checks for lease expiration */
+     private Future<?> checker = null;
+ 
+@@ -236,7 +236,7 @@
+         long time = System.currentTimeMillis();
+ 
+         /* List of vmids that need to be removed from the leaseTable */
+-        List<LeaseInfo> toUnregister = new ArrayList<>();
++        List<LeaseInfo> toUnregister = new ArrayList<LeaseInfo>();
+ 
+         /* Build a list of leaseInfo objects that need to have
+          * targets removed from their notifySet.  Remove expired
+@@ -313,7 +313,7 @@
+     private static class LeaseInfo {
+         VMID vmid;
+         long expiration;
+-        Set<Target> notifySet = new HashSet<>();
++        Set<Target> notifySet = new HashSet<Target>();
+ 
+         LeaseInfo(VMID vmid, long lease) {
+             this.vmid = vmid;
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/ObjectTable.java openjdk-boot/jdk/src/share/classes/sun/rmi/transport/ObjectTable.java
+--- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/ObjectTable.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/rmi/transport/ObjectTable.java	2013-04-04 18:13:31.736323115 +0100
+@@ -62,9 +62,9 @@
+ 
+     /** tables mapping to Target, keyed from ObjectEndpoint and impl object */
+     private static final Map<ObjectEndpoint,Target> objTable =
+-        new HashMap<>();
++        new HashMap<ObjectEndpoint,Target>();
+     private static final Map<WeakRef,Target> implTable =
+-        new HashMap<>();
++        new HashMap<WeakRef,Target>();
+ 
+     /**
+      * lock guarding keepAliveCount, reaper, and gcLatencyRequest.
+@@ -79,7 +79,7 @@
+     private static Thread reaper = null;
+ 
+     /** queue notified when weak refs in the table are cleared */
+-    static final ReferenceQueue<Object> reapQueue = new ReferenceQueue<>();
++    static final ReferenceQueue<Object> reapQueue = new ReferenceQueue<Object>();
+ 
+     /** handle for GC latency request (for future cancellation) */
+     private static GC.LatencyRequest gcLatencyRequest = null;
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/proxy/CGIHandler.java openjdk-boot/jdk/src/share/classes/sun/rmi/transport/proxy/CGIHandler.java
+--- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/proxy/CGIHandler.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/rmi/transport/proxy/CGIHandler.java	2013-04-04 18:13:31.756323440 +0100
+@@ -116,7 +116,7 @@
+     /* construct table mapping command strings to handlers */
+     private static Hashtable<String, CGICommandHandler> commandLookup;
+     static {
+-        commandLookup = new Hashtable<>();
++        commandLookup = new Hashtable<String, CGICommandHandler>();
+         for (int i = 0; i < commands.length; ++ i)
+             commandLookup.put(commands[i].getName(), commands[i]);
+     }
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/proxy/RMIMasterSocketFactory.java openjdk-boot/jdk/src/share/classes/sun/rmi/transport/proxy/RMIMasterSocketFactory.java
+--- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/proxy/RMIMasterSocketFactory.java	2013-04-04 18:12:33.939383303 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/rmi/transport/proxy/RMIMasterSocketFactory.java	2013-04-04 18:13:31.736323115 +0100
+@@ -75,13 +75,13 @@
+ 
+     /** table of hosts successfully connected to and the factory used */
+     private Hashtable<String, RMISocketFactory> successTable =
+-        new Hashtable<>();
++        new Hashtable<String, RMISocketFactory>();
+ 
+     /** maximum number of hosts to remember successful connection to */
+     private static final int MaxRememberedHosts = 64;
+ 
+     /** list of the hosts in successTable in initial connection order */
+-    private Vector<String> hostList = new Vector<>(MaxRememberedHosts);
++    private Vector<String> hostList = new Vector<String>(MaxRememberedHosts);
+ 
+     /** default factory for initial use for direct socket connection */
+     protected RMISocketFactory initialFactory = new RMIDirectSocketFactory();
+@@ -96,7 +96,7 @@
+      * socket connection fails.
+      */
+     public RMIMasterSocketFactory() {
+-        altFactoryList = new Vector<>(2);
++        altFactoryList = new Vector<RMISocketFactory>(2);
+         boolean setFactories = false;
+ 
+         try {
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/Target.java openjdk-boot/jdk/src/share/classes/sun/rmi/transport/Target.java
+--- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/Target.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/rmi/transport/Target.java	2013-04-04 18:13:31.740323180 +0100
+@@ -53,10 +53,10 @@
+     /** stub for remote object */
+     private final Remote stub;
+     /** set of clients that hold references to this target */
+-    private final Vector<VMID> refSet = new Vector<>();
++    private final Vector<VMID> refSet = new Vector<VMID>();
+     /** table that maps client endpoints to sequence numbers */
+     private final Hashtable<VMID, SequenceEntry> sequenceTable =
+-        new Hashtable<>(5);
++        new Hashtable<VMID, SequenceEntry>(5);
+     /** access control context in which target was created */
+     private final AccessControlContext acc;
+     /** context class loader in which target was created */
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/tcp/ConnectionMultiplexer.java openjdk-boot/jdk/src/share/classes/sun/rmi/transport/tcp/ConnectionMultiplexer.java
+--- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/tcp/ConnectionMultiplexer.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/rmi/transport/tcp/ConnectionMultiplexer.java	2013-04-04 18:13:31.740323180 +0100
+@@ -85,7 +85,7 @@
+     private DataOutputStream dataOut;
+ 
+     /** table holding currently open connection IDs and related info */
+-    private Hashtable<Integer, MultiplexConnectionInfo> connectionTable = new Hashtable<>(7);
++    private Hashtable<Integer, MultiplexConnectionInfo> connectionTable = new Hashtable<Integer, MultiplexConnectionInfo>(7);
+ 
+     /** number of currently open connections */
+     private int numConnections = 0;
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/tcp/TCPChannel.java openjdk-boot/jdk/src/share/classes/sun/rmi/transport/tcp/TCPChannel.java
+--- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/tcp/TCPChannel.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/rmi/transport/tcp/TCPChannel.java	2013-04-04 18:13:31.740323180 +0100
+@@ -64,7 +64,7 @@
+     private final TCPTransport tr;
+     /** list of cached connections */
+     private final List<TCPConnection> freeList =
+-        new ArrayList<>();
++        new ArrayList<TCPConnection>();
+     /** frees cached connections that have expired (guarded by freeList) */
+     private Future<?> reaper = null;
+ 
+@@ -480,7 +480,7 @@
+     private TCPTransport transport;
+ 
+     /** queue of connections to be accepted */
+-    private List<Connection> queue = new ArrayList<>();
++    private List<Connection> queue = new ArrayList<Connection>();
+ 
+     /** thread ID counter */
+     private static int threadNum = 0;
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/tcp/TCPEndpoint.java openjdk-boot/jdk/src/share/classes/sun/rmi/transport/tcp/TCPEndpoint.java
+--- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/tcp/TCPEndpoint.java	2013-04-04 18:12:33.915382912 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/rmi/transport/tcp/TCPEndpoint.java	2013-04-04 18:13:31.744323245 +0100
+@@ -148,7 +148,7 @@
+     // TBD: should this be a weak hash table?
+     private static final
+         Map<TCPEndpoint,LinkedList<TCPEndpoint>> localEndpoints =
+-        new HashMap<>();
++        new HashMap<TCPEndpoint,LinkedList<TCPEndpoint>>();
+ 
+     /**
+      * Create an endpoint for a specified host and port.
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/tcp/TCPTransport.java openjdk-boot/jdk/src/share/classes/sun/rmi/transport/tcp/TCPTransport.java
+--- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/tcp/TCPTransport.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/rmi/transport/tcp/TCPTransport.java	2013-04-04 18:13:31.744323245 +0100
+@@ -120,7 +120,7 @@
+ 
+     /** client host for the current thread's connection */
+     private static final ThreadLocal<ConnectionHandler>
+-        threadConnectionHandler = new ThreadLocal<>();
++        threadConnectionHandler = new ThreadLocal<ConnectionHandler>();
+ 
+     /** endpoints for this transport */
+     private final LinkedList<TCPEndpoint> epList;
+@@ -130,7 +130,7 @@
+     private ServerSocket server = null;
+     /** table mapping endpoints to channels */
+     private final Map<TCPEndpoint,Reference<TCPChannel>> channelTable =
+-        new WeakHashMap<>();
++        new WeakHashMap<TCPEndpoint,Reference<TCPChannel>>();
+ 
+     static final RMISocketFactory defaultSocketFactory =
+         RMISocketFactory.getDefaultSocketFactory();
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/Transport.java openjdk-boot/jdk/src/share/classes/sun/rmi/transport/Transport.java
+--- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/Transport.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/rmi/transport/Transport.java	2013-04-04 18:13:31.744323245 +0100
+@@ -62,7 +62,7 @@
+         Log.getLog("sun.rmi.transport.misc", "transport", Transport.logLevel);
+ 
+     /** References the current transport when a call is being serviced */
+-    private static final ThreadLocal<Transport> currentTransport = new ThreadLocal<>();
++    private static final ThreadLocal<Transport> currentTransport = new ThreadLocal<Transport>();
+ 
+     /** ObjID for DGCImpl */
+     private static final ObjID dgcID = new ObjID(ObjID.DGC_ID);
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/acl/AclEntryImpl.java openjdk-boot/jdk/src/share/classes/sun/security/acl/AclEntryImpl.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/acl/AclEntryImpl.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/security/acl/AclEntryImpl.java	2012-11-30 15:09:47.231538941 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/acl/AclEntryImpl.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/acl/AclEntryImpl.java	2013-04-04 18:13:31.580320583 +0100
 @@ -37,7 +37,7 @@
   */
  public class AclEntryImpl implements AclEntry {
@@ -4235,8 +4779,8 @@
  
      /**
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/acl/AclImpl.java openjdk-boot/jdk/src/share/classes/sun/security/acl/AclImpl.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/acl/AclImpl.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/security/acl/AclImpl.java	2012-11-30 15:09:47.235539004 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/acl/AclImpl.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/acl/AclImpl.java	2013-04-04 18:13:31.580320583 +0100
 @@ -41,15 +41,15 @@
      // or principal.
      //
@@ -4277,8 +4821,8 @@
          while (e1.hasMoreElements())
              v.addElement(e1.nextElement());
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/acl/GroupImpl.java openjdk-boot/jdk/src/share/classes/sun/security/acl/GroupImpl.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/acl/GroupImpl.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/security/acl/GroupImpl.java	2012-11-30 15:09:47.235539004 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/acl/GroupImpl.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/acl/GroupImpl.java	2013-04-04 18:13:31.584320647 +0100
 @@ -34,7 +34,7 @@
   * @author      Satish Dharmaraj
   */
@@ -4298,8 +4842,8 @@
          }
      }
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/jca/ProviderList.java openjdk-boot/jdk/src/share/classes/sun/security/jca/ProviderList.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/jca/ProviderList.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/security/jca/ProviderList.java	2012-11-30 15:09:47.235539004 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/jca/ProviderList.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/jca/ProviderList.java	2013-04-04 18:13:31.584320647 +0100
 @@ -96,7 +96,7 @@
          if (providerList.getProvider(p.getName()) != null) {
              return providerList;
@@ -4337,8 +4881,8 @@
              ids.add(new ServiceId(type, alg));
          }
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/jca/Providers.java openjdk-boot/jdk/src/share/classes/sun/security/jca/Providers.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/jca/Providers.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/security/jca/Providers.java	2012-11-30 15:09:47.235539004 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/jca/Providers.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/jca/Providers.java	2013-04-04 18:13:31.588320713 +0100
 @@ -40,7 +40,7 @@
  public class Providers {
  
@@ -4349,8 +4893,8 @@
      // number of threads currently using thread-local provider lists
      // tracked to allow an optimization if == 0
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/jgss/krb5/Krb5Util.java openjdk-boot/jdk/src/share/classes/sun/security/jgss/krb5/Krb5Util.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/jgss/krb5/Krb5Util.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/security/jgss/krb5/Krb5Util.java	2012-11-30 15:09:47.235539004 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/jgss/krb5/Krb5Util.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/jgss/krb5/Krb5Util.java	2013-04-04 18:13:31.588320713 +0100
 @@ -267,7 +267,7 @@
              if (ktabs.isEmpty()) {
                  return kk.toArray(new KerberosKey[kk.size()]);
@@ -4361,8 +4905,8 @@
                      for (KerberosKey k: ktab.getKeys(kp)) {
                          keys.add(k);
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/Config.java openjdk-boot/jdk/src/share/classes/sun/security/krb5/Config.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/Config.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/Config.java	2012-11-30 15:09:47.235539004 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/Config.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/Config.java	2013-04-04 18:13:31.588320713 +0100
 @@ -576,7 +576,7 @@
                  }
                  })));
@@ -4440,8 +4984,8 @@
              for (int i = 0; i < len; i++) {
                  type = getType(st.nextToken());
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/Authenticator.java openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/Authenticator.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/Authenticator.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/Authenticator.java	2012-11-30 15:09:47.235539004 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/Authenticator.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/Authenticator.java	2013-04-04 18:13:31.592320777 +0100
 @@ -176,7 +176,7 @@
       * @exception IOException if an I/O error occurs while reading encoded data.
       */
@@ -4452,8 +4996,8 @@
          temp.putInteger(BigInteger.valueOf(authenticator_vno));
          v.addElement(new DerValue(DerValue.createTag(DerValue.TAG_CONTEXT, true, (byte) 0x00), temp.toByteArray()));
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/AuthorizationData.java openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/AuthorizationData.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/AuthorizationData.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/AuthorizationData.java	2012-11-30 15:09:47.235539004 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/AuthorizationData.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/AuthorizationData.java	2013-04-04 18:13:31.592320777 +0100
 @@ -99,7 +99,7 @@
       * @exception IOException if an I/O error occurs while reading encoded data.
       */
@@ -4464,8 +5008,8 @@
              throw new Asn1Exception(Krb5.ASN1_BAD_ID);
          }
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/ccache/FileCredentialsCache.java openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/ccache/FileCredentialsCache.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/ccache/FileCredentialsCache.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/ccache/FileCredentialsCache.java	2012-11-30 15:09:47.235539004 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/ccache/FileCredentialsCache.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/ccache/FileCredentialsCache.java	2013-04-04 18:13:31.592320777 +0100
 @@ -498,7 +498,7 @@
  
      private static String exec(String c) {
@@ -4476,8 +5020,8 @@
              v.addElement(st.nextToken());
          }
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/crypto/EType.java openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/crypto/EType.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/crypto/EType.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/crypto/EType.java	2012-11-30 15:09:47.235539004 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/crypto/EType.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/crypto/EType.java	2013-04-04 18:13:31.596320843 +0100
 @@ -257,7 +257,7 @@
                  + configName);
          }
@@ -4488,8 +5032,8 @@
              if (EncryptionKey.findKey(answer[i], keys) != null) {
                  list.add(answer[i]);
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/EncAPRepPart.java openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/EncAPRepPart.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/EncAPRepPart.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/EncAPRepPart.java	2012-11-30 15:09:47.235539004 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/EncAPRepPart.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/EncAPRepPart.java	2013-04-04 18:13:31.596320843 +0100
 @@ -133,7 +133,7 @@
       * @exception IOException if an I/O error occurs while reading encoded data.
       */
@@ -4500,8 +5044,8 @@
          v.addElement(new DerValue(DerValue.createTag(DerValue.TAG_CONTEXT,
                  true, (byte) 0x00), ctime.asn1Encode()));
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/HostAddresses.java openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/HostAddresses.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/HostAddresses.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/HostAddresses.java	2012-11-30 15:09:47.235539004 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/HostAddresses.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/HostAddresses.java	2013-04-04 18:13:31.596320843 +0100
 @@ -179,7 +179,7 @@
      */
      public HostAddresses(DerValue encoding)
@@ -4521,8 +5065,8 @@
          for (int i = 0; i < addresses.length; i++) {
              try {
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/KDCReqBody.java openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/KDCReqBody.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/KDCReqBody.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/KDCReqBody.java	2012-11-30 15:09:47.235539004 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/KDCReqBody.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/KDCReqBody.java	2013-04-04 18:13:31.600320907 +0100
 @@ -158,7 +158,7 @@
              throw new Asn1Exception(Krb5.ASN1_BAD_ID);
          }
@@ -4551,8 +5095,8 @@
          if (msgType == Krb5.KRB_AS_REQ) {
              if (cname != null) {
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/KDCReq.java openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/KDCReq.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/KDCReq.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/KDCReq.java	2012-11-30 15:09:47.235539004 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/KDCReq.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/KDCReq.java	2013-04-04 18:13:31.600320907 +0100
 @@ -150,7 +150,7 @@
              if (subsubDer.getTag() != DerValue.tag_SequenceOf) {
                  throw new Asn1Exception(Krb5.ASN1_BAD_ID);
@@ -4563,8 +5107,8 @@
                  v.addElement(new PAData(subsubDer.getData().getDerValue()));
              }
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/KrbCredInfo.java openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/KrbCredInfo.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/KrbCredInfo.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/KrbCredInfo.java	2012-11-30 15:09:47.235539004 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/KrbCredInfo.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/KrbCredInfo.java	2013-04-04 18:13:31.600320907 +0100
 @@ -157,7 +157,7 @@
       * @exception IOException if an I/O error occurs while reading encoded data.
       */
@@ -4575,8 +5119,8 @@
          if (prealm != null)
              v.addElement(new DerValue(DerValue.createTag(DerValue.TAG_CONTEXT, true, (byte)0x01), prealm.asn1Encode()));
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/KRBCred.java openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/KRBCred.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/KRBCred.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/KRBCred.java	2012-11-30 15:09:47.235539004 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/KRBCred.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/KRBCred.java	2013-04-04 18:13:31.604320973 +0100
 @@ -134,7 +134,7 @@
              if (subsubDer.getTag() != DerValue.tag_SequenceOf) {
                  throw new Asn1Exception(Krb5.ASN1_BAD_ID);
@@ -4587,8 +5131,8 @@
                  v.addElement(new Ticket(subsubDer.getData().getDerValue()));
              }
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/KRBError.java openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/KRBError.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/KRBError.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/KRBError.java	2012-11-30 15:09:47.239539067 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/KRBError.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/KRBError.java	2013-04-04 18:13:31.604320973 +0100
 @@ -259,7 +259,7 @@
      private void parsePAData(byte[] data)
              throws IOException, Asn1Exception {
@@ -4599,8 +5143,8 @@
              // read the PA-DATA
              DerValue tmp = derPA.data.getDerValue();
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/ktab/KeyTab.java openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/ktab/KeyTab.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/ktab/KeyTab.java	2012-11-30 15:06:27.256404573 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/ktab/KeyTab.java	2012-11-30 15:09:47.239539067 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/ktab/KeyTab.java	2013-04-04 18:12:33.943383368 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/ktab/KeyTab.java	2013-04-04 18:13:31.608321037 +0100
 @@ -67,7 +67,7 @@
  
      // Attention: Currently there is no way to remove a keytab from this map,
@@ -4638,8 +5182,8 @@
          for (int i = entries.size()-1; i >= 0; i--) {
              KeyTabEntry e = entries.get(i);
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/LastReq.java openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/LastReq.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/LastReq.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/LastReq.java	2012-11-30 15:09:47.239539067 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/LastReq.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/LastReq.java	2013-04-04 18:13:31.608321037 +0100
 @@ -77,7 +77,7 @@
       */
  
@@ -4650,8 +5194,8 @@
              throw new Asn1Exception(Krb5.ASN1_BAD_ID);
          }
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/KdcComm.java openjdk-boot/jdk/src/share/classes/sun/security/krb5/KdcComm.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/KdcComm.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/KdcComm.java	2012-11-30 15:09:47.239539067 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/KdcComm.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/KdcComm.java	2013-04-04 18:13:31.608321037 +0100
 @@ -462,7 +462,7 @@
       */
      static class KdcAccessibility {
@@ -4674,8 +5218,8 @@
                      String t = st.nextToken();
                      if (bads.contains(t)) badkdcs.add(t);
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/PrincipalName.java openjdk-boot/jdk/src/share/classes/sun/security/krb5/PrincipalName.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/PrincipalName.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/PrincipalName.java	2012-11-30 15:09:47.239539067 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/PrincipalName.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/PrincipalName.java	2013-04-04 18:13:31.612321102 +0100
 @@ -238,7 +238,7 @@
              if (subDer.getTag() != DerValue.tag_SequenceOf) {
                  throw new Asn1Exception(Krb5.ASN1_BAD_ID);
@@ -4695,8 +5239,8 @@
          int i = 0;
          int componentStart = 0;
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/Realm.java openjdk-boot/jdk/src/share/classes/sun/security/krb5/Realm.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/Realm.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/Realm.java	2012-11-30 15:09:47.239539067 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/Realm.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/Realm.java	2013-04-04 18:13:31.612321102 +0100
 @@ -359,14 +359,14 @@
          }
  
@@ -4715,8 +5259,8 @@
  
          int count = 0; // For debug only
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/provider/certpath/DistributionPointFetcher.java openjdk-boot/jdk/src/share/classes/sun/security/provider/certpath/DistributionPointFetcher.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/provider/certpath/DistributionPointFetcher.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/security/provider/certpath/DistributionPointFetcher.java	2012-11-30 15:09:47.239539067 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/provider/certpath/DistributionPointFetcher.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/provider/certpath/DistributionPointFetcher.java	2013-04-04 18:13:31.612321102 +0100
 @@ -590,7 +590,7 @@
              // Except the performance improvement, another benefit is to break
              // the dead loop while looking for the issuer back and forth
@@ -4727,8 +5271,8 @@
              if (prevKey != null) {
                  // Add the previous certificate as a trust anchor.
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/provider/JavaKeyStore.java openjdk-boot/jdk/src/share/classes/sun/security/provider/JavaKeyStore.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/provider/JavaKeyStore.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/security/provider/JavaKeyStore.java	2012-11-30 15:09:47.239539067 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/provider/JavaKeyStore.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/provider/JavaKeyStore.java	2013-04-04 18:13:31.616321167 +0100
 @@ -683,7 +683,7 @@
                      // Read the certificate chain
                      int numOfCerts = dis.readInt();
@@ -4739,8 +5283,8 @@
                          for (int j = 0; j < numOfCerts; j++) {
                              if (xVersion == 2) {
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/provider/PolicyFile.java openjdk-boot/jdk/src/share/classes/sun/security/provider/PolicyFile.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/provider/PolicyFile.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/security/provider/PolicyFile.java	2012-11-30 15:09:47.239539067 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/provider/PolicyFile.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/provider/PolicyFile.java	2013-04-04 18:13:31.616321167 +0100
 @@ -299,7 +299,7 @@
      private static final int DEFAULT_CACHE_SIZE = 1;
  
@@ -4796,8 +5340,8 @@
                          while (i < certs.length) {
                              signerCerts.add(certs[i]);
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/provider/Sun.java openjdk-boot/jdk/src/share/classes/sun/security/provider/Sun.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/provider/Sun.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/security/provider/Sun.java	2012-11-30 15:09:47.239539067 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/provider/Sun.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/provider/Sun.java	2013-04-04 18:13:31.616321167 +0100
 @@ -55,7 +55,7 @@
              SunEntries.putEntries(this);
          } else {
@@ -4808,8 +5352,8 @@
              AccessController.doPrivileged(new PutAllAction(this, map));
          }
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/provider/VerificationProvider.java openjdk-boot/jdk/src/share/classes/sun/security/provider/VerificationProvider.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/provider/VerificationProvider.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/security/provider/VerificationProvider.java	2012-11-30 15:09:47.239539067 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/provider/VerificationProvider.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/provider/VerificationProvider.java	2013-04-04 18:13:31.620321232 +0100
 @@ -76,7 +76,7 @@
              SunRsaSignEntries.putEntries(this);
          } else {
@@ -4820,8 +5364,8 @@
              SunRsaSignEntries.putEntries(map);
              AccessController.doPrivileged(new PutAllAction(this, map));
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/provider/X509Factory.java openjdk-boot/jdk/src/share/classes/sun/security/provider/X509Factory.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/provider/X509Factory.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/security/provider/X509Factory.java	2012-11-30 15:09:47.239539067 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/provider/X509Factory.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/provider/X509Factory.java	2013-04-04 18:13:31.620321232 +0100
 @@ -409,10 +409,10 @@
          parseX509orPKCS7Cert(InputStream is)
          throws CertificateException, IOException
@@ -4867,8 +5411,8 @@
          } catch (ParsingException e) {
              while (data != null) {
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/rsa/RSACore.java openjdk-boot/jdk/src/share/classes/sun/security/rsa/RSACore.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/rsa/RSACore.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/security/rsa/RSACore.java	2012-11-30 15:09:47.239539067 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/rsa/RSACore.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/rsa/RSACore.java	2013-04-04 18:13:31.620321232 +0100
 @@ -219,7 +219,7 @@
      // use a weak hashmap so that cached values are automatically cleared
      // when the modulus is GC'ed
@@ -4879,8 +5423,8 @@
      /**
       * Set of blinding parameters for a given RSA key.
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/rsa/SunRsaSign.java openjdk-boot/jdk/src/share/classes/sun/security/rsa/SunRsaSign.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/rsa/SunRsaSign.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/security/rsa/SunRsaSign.java	2012-11-30 15:09:47.243539129 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/rsa/SunRsaSign.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/rsa/SunRsaSign.java	2013-04-04 18:13:31.624321297 +0100
 @@ -52,7 +52,7 @@
              SunRsaSignEntries.putEntries(this);
          } else {
@@ -4891,8 +5435,8 @@
              AccessController.doPrivileged(new PutAllAction(this, map));
          }
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/CipherSuite.java openjdk-boot/jdk/src/share/classes/sun/security/ssl/CipherSuite.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/CipherSuite.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/CipherSuite.java	2012-11-30 15:09:47.243539129 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/CipherSuite.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/CipherSuite.java	2013-04-04 18:13:31.624321297 +0100
 @@ -393,7 +393,7 @@
  
          // Map BulkCipher -> Boolean(available)
@@ -4903,9 +5447,9 @@
          // descriptive name including key size, e.g. AES/128
          final String description;
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/ClientHandshaker.java openjdk-boot/jdk/src/share/classes/sun/security/ssl/ClientHandshaker.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/ClientHandshaker.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/ClientHandshaker.java	2012-11-30 15:09:47.243539129 +0000
-@@ -656,7 +656,7 @@
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/ClientHandshaker.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/ClientHandshaker.java	2013-04-04 18:13:31.628321362 +0100
+@@ -659,7 +659,7 @@
          if (certRequest != null) {
              X509ExtendedKeyManager km = sslContext.getX509KeyManager();
  
@@ -4914,7 +5458,7 @@
  
              for (int i = 0; i < certRequest.types.length; i++) {
                  String typeName;
-@@ -1176,7 +1176,7 @@
+@@ -1179,7 +1179,7 @@
                          "Can't reuse existing SSL client session");
                  }
  
@@ -4923,7 +5467,7 @@
                  cipherList.add(sessionSuite);
                  if (!secureRenegotiation &&
                          cipherSuites.contains(CipherSuite.C_SCSV)) {
-@@ -1194,7 +1194,7 @@
+@@ -1197,7 +1197,7 @@
          // exclude SCSV for secure renegotiation
          if (secureRenegotiation && cipherSuites.contains(CipherSuite.C_SCSV)) {
              Collection<CipherSuite> cipherList =
@@ -4933,9 +5477,9 @@
                  if (suite != CipherSuite.C_SCSV) {
                      cipherList.add(suite);
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/HandshakeMessage.java openjdk-boot/jdk/src/share/classes/sun/security/ssl/HandshakeMessage.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/HandshakeMessage.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/HandshakeMessage.java	2012-11-30 15:09:47.243539129 +0000
-@@ -258,7 +258,7 @@
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/HandshakeMessage.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/HandshakeMessage.java	2013-04-04 18:13:31.632321427 +0100
+@@ -260,7 +260,7 @@
      // add server_name extension
      void addServerNameIndicationExtension(String hostname) {
          // We would have checked that the hostname ia a FQDN.
@@ -4944,7 +5488,7 @@
          hostnames.add(hostname);
  
          try {
-@@ -434,7 +434,7 @@
+@@ -436,7 +436,7 @@
  
      CertificateMsg(HandshakeInStream input) throws IOException {
          int chainLen = input.getInt24();
@@ -4953,7 +5497,7 @@
  
          CertificateFactory cf = null;
          while (chainLen > 0) {
-@@ -1334,7 +1334,7 @@
+@@ -1346,7 +1346,7 @@
  
          // read the certificate_authorities
          int len = input.getInt16();
@@ -4962,7 +5506,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 =
@@ -4972,8 +5516,8 @@
      private static void digestKey(MessageDigest md, SecretKey key) {
          try {
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/Handshaker.java openjdk-boot/jdk/src/share/classes/sun/security/ssl/Handshaker.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/Handshaker.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/Handshaker.java	2012-11-30 15:09:47.243539129 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/Handshaker.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/Handshaker.java	2013-04-04 18:13:31.636321492 +0100
 @@ -569,7 +569,7 @@
                  activeProtocols = getActiveProtocols();
              }
@@ -4993,8 +5537,8 @@
                  boolean found = false;
                  for (CipherSuite suite : enabledCipherSuites.collection()) {
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/HelloExtensions.java openjdk-boot/jdk/src/share/classes/sun/security/ssl/HelloExtensions.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/HelloExtensions.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/HelloExtensions.java	2012-11-30 15:09:47.243539129 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/HelloExtensions.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/HelloExtensions.java	2013-04-04 18:13:31.636321492 +0100
 @@ -169,7 +169,7 @@
          return name;
      }
@@ -5014,8 +5558,8 @@
              list.add(toString(format));
          }
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/ProtocolList.java openjdk-boot/jdk/src/share/classes/sun/security/ssl/ProtocolList.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/ProtocolList.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/ProtocolList.java	2012-11-30 15:09:47.243539129 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/ProtocolList.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/ProtocolList.java	2013-04-04 18:13:31.636321492 +0100
 @@ -79,7 +79,7 @@
              throw new IllegalArgumentException("Protocols may not be null");
          }
@@ -5026,8 +5570,8 @@
              ProtocolVersion version = ProtocolVersion.valueOf(names[i]);
              if (versions.contains(version) == false) {
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/SignatureAndHashAlgorithm.java openjdk-boot/jdk/src/share/classes/sun/security/ssl/SignatureAndHashAlgorithm.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/SignatureAndHashAlgorithm.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/SignatureAndHashAlgorithm.java	2012-11-30 15:09:47.243539129 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/SignatureAndHashAlgorithm.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/SignatureAndHashAlgorithm.java	2013-04-04 18:13:31.640321556 +0100
 @@ -156,7 +156,7 @@
      static Collection<SignatureAndHashAlgorithm>
              getSupportedAlgorithms(AlgorithmConstraints constraints) {
@@ -5065,8 +5609,8 @@
              for (SignatureAndHashAlgorithm sigAlg : algorithms) {
                  if (sigAlg.hash.value > 0) {
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/SSLAlgorithmConstraints.java openjdk-boot/jdk/src/share/classes/sun/security/ssl/SSLAlgorithmConstraints.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/SSLAlgorithmConstraints.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/SSLAlgorithmConstraints.java	2012-11-30 15:09:47.243539129 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/SSLAlgorithmConstraints.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/SSLAlgorithmConstraints.java	2013-04-04 18:13:31.640321556 +0100
 @@ -261,7 +261,7 @@
  
          protected Set<String> decomposes(KeyExchange keyExchange,
@@ -5113,8 +5657,8 @@
                      if(cipherSuite.keyExchange != null) {
                          components.addAll(
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/SSLContextImpl.java openjdk-boot/jdk/src/share/classes/sun/security/ssl/SSLContextImpl.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/SSLContextImpl.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/SSLContextImpl.java	2012-11-30 15:09:47.243539129 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/SSLContextImpl.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/SSLContextImpl.java	2013-04-04 18:13:31.640321556 +0100
 @@ -331,7 +331,7 @@
          Collection<CipherSuite> allowedCipherSuites =
                                      CipherSuite.allowedCipherSuites();
@@ -5143,8 +5687,8 @@
              if ((certs != null) && (certs.length > 0)){
                  Collections.addAll(trustedCerts, certs);
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/SSLSessionImpl.java openjdk-boot/jdk/src/share/classes/sun/security/ssl/SSLSessionImpl.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/SSLSessionImpl.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/SSLSessionImpl.java	2012-11-30 15:09:47.243539129 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/SSLSessionImpl.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/SSLSessionImpl.java	2013-04-04 18:13:31.644321622 +0100
 @@ -618,7 +618,7 @@
       * key and the calling security context. This is important since
       * sessions can be shared across different protection domains.
@@ -5164,9 +5708,9 @@
          Object securityCtx = SecureKey.getCurrentSecurityContext();
  
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/SSLSocketImpl.java openjdk-boot/jdk/src/share/classes/sun/security/ssl/SSLSocketImpl.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/SSLSocketImpl.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/SSLSocketImpl.java	2012-11-30 15:09:47.247539192 +0000
-@@ -2510,7 +2510,7 @@
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/SSLSocketImpl.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/SSLSocketImpl.java	2013-04-04 18:13:31.644321622 +0100
+@@ -2494,7 +2494,7 @@
              entrySet, HandshakeCompletedEvent e) {
  
              super("HandshakeCompletedNotify-Thread");
@@ -5176,8 +5720,8 @@
          }
  
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/SunX509KeyManagerImpl.java openjdk-boot/jdk/src/share/classes/sun/security/ssl/SunX509KeyManagerImpl.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/SunX509KeyManagerImpl.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/SunX509KeyManagerImpl.java	2012-11-30 15:09:47.247539192 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/SunX509KeyManagerImpl.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/SunX509KeyManagerImpl.java	2013-04-04 18:13:31.648321686 +0100
 @@ -337,7 +337,7 @@
  
          X500Principal[] x500Issuers = (X500Principal[])issuers;
@@ -5197,8 +5741,8 @@
              Principal p = principals[i];
              if (p instanceof X500Principal) {
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/TrustManagerFactoryImpl.java openjdk-boot/jdk/src/share/classes/sun/security/ssl/TrustManagerFactoryImpl.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/TrustManagerFactoryImpl.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/TrustManagerFactoryImpl.java	2012-11-30 15:09:47.247539192 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/TrustManagerFactoryImpl.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/TrustManagerFactoryImpl.java	2013-04-04 18:13:31.648321686 +0100
 @@ -134,7 +134,7 @@
          FileInputStream fis = null;
          String defaultTrustStoreType;
@@ -5209,8 +5753,8 @@
          KeyStore ks = null;
  
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/X509KeyManagerImpl.java openjdk-boot/jdk/src/share/classes/sun/security/ssl/X509KeyManagerImpl.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/X509KeyManagerImpl.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/X509KeyManagerImpl.java	2012-11-30 15:09:47.247539192 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/X509KeyManagerImpl.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/X509KeyManagerImpl.java	2013-04-04 18:13:31.648321686 +0100
 @@ -307,7 +307,7 @@
                  (keyTypes.length == 0) || (keyTypes[0] == null)) {
              return null;
@@ -5230,8 +5774,8 @@
              return null;
          }
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/tools/JarSigner.java openjdk-boot/jdk/src/share/classes/sun/security/tools/JarSigner.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/tools/JarSigner.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/security/tools/JarSigner.java	2012-11-30 15:09:47.247539192 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/tools/JarSigner.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/tools/JarSigner.java	2013-04-04 18:13:31.656321816 +0100
 @@ -123,14 +123,14 @@
      boolean token = false; // token-based keystore
      String jarfile;  // jar files to sign or verify
@@ -5249,7 +5793,7 @@
      char[] keypass; // private key password
      String sigfile; // name of .SF file
      String sigalg; // name of signature algorithm
-@@ -567,7 +567,7 @@
+@@ -566,7 +566,7 @@
  
          try {
              jf = new JarFile(jarName, true);
@@ -5258,7 +5802,7 @@
              byte[] buffer = new byte[8192];
  
              Enumeration<JarEntry> entries = jf.entries();
-@@ -594,7 +594,7 @@
+@@ -593,7 +593,7 @@
              // The map to record display info, only used when -verbose provided
              //      key: signer info string
              //      value: the list of files with common key
@@ -5303,7 +5847,7 @@
  
      /**
       * Returns a string of singer info, with a newline at the end
-@@ -1567,7 +1567,7 @@
+@@ -1577,7 +1577,7 @@
  
              certificateFactory = CertificateFactory.getInstance("X.509");
              validator = CertPathValidator.getInstance("PKIX");
@@ -5313,8 +5857,8 @@
                  KeyStore caks = KeyTool.getCacertsKeyStore();
                  if (caks != null) {
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/tools/KeyTool.java openjdk-boot/jdk/src/share/classes/sun/security/tools/KeyTool.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/tools/KeyTool.java	2012-11-30 15:06:27.256404573 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/security/tools/KeyTool.java	2012-11-30 15:09:47.247539192 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/tools/KeyTool.java	2013-04-04 18:12:33.943383368 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/tools/KeyTool.java	2013-04-04 18:13:31.664321946 +0100
 @@ -154,11 +154,11 @@
      private KeyStore caks = null; // "cacerts" keystore
      private char[] srcstorePass = null;
@@ -5330,7 +5874,7 @@
  
      enum Command {
          CERTREQ("Generates.a.certificate.request",
-@@ -2093,7 +2093,7 @@
+@@ -2097,7 +2097,7 @@
       */
      public static List<CRL> readCRLsFromCert(X509Certificate cert)
              throws Exception {
@@ -5339,7 +5883,7 @@
          CRLDistributionPointsExtension ext =
                  X509CertImpl.toImpl(cert).getCRLDistributionPointsExtension();
          if (ext == null) return crls;
-@@ -2260,7 +2260,7 @@
+@@ -2264,7 +2264,7 @@
          if (jarfile != null) {
              JarFile jf = new JarFile(jarfile, true);
              Enumeration<JarEntry> entries = jf.entries();
@@ -5348,7 +5892,7 @@
              byte[] buffer = new byte[8192];
              int pos = 0;
              while (entries.hasMoreElements()) {
-@@ -3360,7 +3360,7 @@
+@@ -3364,7 +3364,7 @@
          }
  
          // start building chain
@@ -5357,7 +5901,7 @@
          if (buildChain((X509Certificate)certToVerify, chain, certs)) {
              Certificate[] newChain = new Certificate[chain.size()];
              // buildChain() returns chain with self-signed root-cert first and
-@@ -3886,7 +3886,7 @@
+@@ -3890,7 +3890,7 @@
                          break;
                      case 2:     // EKU
                          if(value != null) {
@@ -5366,7 +5910,7 @@
                              for (String s: value.split(",")) {
                                  int p = oneOf(s,
                                          "anyExtendedKeyUsage",
-@@ -3956,7 +3956,7 @@
+@@ -3960,7 +3960,7 @@
                          }
                          if(value != null) {
                              List<AccessDescription> accessDescriptions =
@@ -5375,7 +5919,7 @@
                              String[] ps = value.split(",");
                              for(String item: ps) {
                                  colonpos = item.indexOf(':');
-@@ -4240,7 +4240,7 @@
+@@ -4244,7 +4244,7 @@
      }
  
      public static <A,B> Pair<A,B> of(A a, B b) {
@@ -5385,8 +5929,8 @@
  }
  
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/tools/policytool/PolicyTool.java openjdk-boot/jdk/src/share/classes/sun/security/tools/policytool/PolicyTool.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/tools/policytool/PolicyTool.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/security/tools/policytool/PolicyTool.java	2012-11-30 15:09:47.247539192 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/tools/policytool/PolicyTool.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/tools/policytool/PolicyTool.java	2013-04-04 18:13:31.664321946 +0100
 @@ -643,7 +643,7 @@
          Class<?> pc = Class.forName(type, true,
                  Thread.currentThread().getContextClassLoader());
@@ -5424,8 +5968,8 @@
          super(i, b);
      }
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/util/UntrustedCertificates.java openjdk-boot/jdk/src/share/classes/sun/security/util/UntrustedCertificates.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/util/UntrustedCertificates.java	2012-11-30 15:06:27.260404636 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/security/util/UntrustedCertificates.java	2012-11-30 15:09:47.247539192 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/util/UntrustedCertificates.java	2013-04-04 18:12:33.943383368 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/util/UntrustedCertificates.java	2013-04-04 18:13:31.668322011 +0100
 @@ -42,7 +42,7 @@
   */
  public final class UntrustedCertificates {
@@ -5436,8 +5980,8 @@
      /**
       * Checks if a certificate is untrusted.
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/x509/X509CertImpl.java openjdk-boot/jdk/src/share/classes/sun/security/x509/X509CertImpl.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/x509/X509CertImpl.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/security/x509/X509CertImpl.java	2012-11-30 15:09:47.251539255 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/x509/X509CertImpl.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/x509/X509CertImpl.java	2013-04-04 18:13:31.668322011 +0100
 @@ -1260,7 +1260,7 @@
              if (exts == null) {
                  return null;
@@ -5485,8 +6029,8 @@
                      namesCopy.add(Collections.unmodifiableList(nameEntryCopy));
                  } else {
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/x509/X509CRLEntryImpl.java openjdk-boot/jdk/src/share/classes/sun/security/x509/X509CRLEntryImpl.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/x509/X509CRLEntryImpl.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/security/x509/X509CRLEntryImpl.java	2012-11-30 15:09:47.251539255 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/x509/X509CRLEntryImpl.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/x509/X509CRLEntryImpl.java	2013-04-04 18:13:31.668322011 +0100
 @@ -352,7 +352,7 @@
          if (extensions == null) {
              return null;
@@ -5515,8 +6059,8 @@
              map.put(ext.getId(), ext);
          }
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/x509/X509CRLImpl.java openjdk-boot/jdk/src/share/classes/sun/security/x509/X509CRLImpl.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/x509/X509CRLImpl.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/security/x509/X509CRLImpl.java	2012-11-30 15:09:47.251539255 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/x509/X509CRLImpl.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/x509/X509CRLImpl.java	2013-04-04 18:13:31.672322076 +0100
 @@ -104,8 +104,8 @@
      private X500Principal    issuerPrincipal = null;
      private Date             thisUpdate = null;
@@ -5547,8 +6091,8 @@
              if (!ex.isCritical()) {
                  extSet.add(ex.getExtensionId().toString());
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/tools/native2ascii/Main.java openjdk-boot/jdk/src/share/classes/sun/tools/native2ascii/Main.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/tools/native2ascii/Main.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/tools/native2ascii/Main.java	2012-11-30 15:09:47.251539255 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/sun/tools/native2ascii/Main.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/tools/native2ascii/Main.java	2013-04-04 18:13:31.672322076 +0100
 @@ -95,7 +95,7 @@
       * Run the converter
       */
@@ -5559,8 +6103,8 @@
          boolean createOutputFile = false;
  
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/util/locale/InternalLocaleBuilder.java openjdk-boot/jdk/src/share/classes/sun/util/locale/InternalLocaleBuilder.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/util/locale/InternalLocaleBuilder.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/util/locale/InternalLocaleBuilder.java	2012-11-30 15:09:47.251539255 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/sun/util/locale/InternalLocaleBuilder.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/util/locale/InternalLocaleBuilder.java	2013-04-04 18:13:31.676322141 +0100
 @@ -113,7 +113,7 @@
          }
          // Use case insensitive string to prevent duplication
@@ -5675,8 +6219,8 @@
                      ukeywords.put(key, type);
                  }
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/util/locale/LanguageTag.java openjdk-boot/jdk/src/share/classes/sun/util/locale/LanguageTag.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/util/locale/LanguageTag.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/util/locale/LanguageTag.java	2012-11-30 15:09:47.251539255 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/sun/util/locale/LanguageTag.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/util/locale/LanguageTag.java	2013-04-04 18:13:31.676322141 +0100
 @@ -62,7 +62,7 @@
      // Map contains grandfathered tags and its preferred mappings from
      // http://www.ietf.org/rfc/rfc5646.txt
@@ -5732,8 +6276,8 @@
                      extensions.add(locextKey.toString() + SEP + ext.getValue());
                  }
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/util/locale/LocaleExtensions.java openjdk-boot/jdk/src/share/classes/sun/util/locale/LocaleExtensions.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/util/locale/LocaleExtensions.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/util/locale/LocaleExtensions.java	2012-11-30 15:09:47.251539255 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/sun/util/locale/LocaleExtensions.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/util/locale/LocaleExtensions.java	2013-04-04 18:13:31.676322141 +0100
 @@ -81,7 +81,7 @@
          }
  
@@ -5761,8 +6305,8 @@
                      String key = LocaleUtils.toLowerString(kwd.getKey().value());
                      String type = LocaleUtils.toLowerString(kwd.getValue());
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/util/locale/LocaleObjectCache.java openjdk-boot/jdk/src/share/classes/sun/util/locale/LocaleObjectCache.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/util/locale/LocaleObjectCache.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/util/locale/LocaleObjectCache.java	2012-11-30 15:09:47.251539255 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/sun/util/locale/LocaleObjectCache.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/util/locale/LocaleObjectCache.java	2013-04-04 18:13:31.676322141 +0100
 @@ -38,14 +38,14 @@
  
  public abstract class LocaleObjectCache<K, V> {
@@ -5799,8 +6343,8 @@
          return (oldEntry == null) ? null : oldEntry.get();
      }
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/util/LocaleServiceProviderPool.java openjdk-boot/jdk/src/share/classes/sun/util/LocaleServiceProviderPool.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/util/LocaleServiceProviderPool.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/util/LocaleServiceProviderPool.java	2012-11-30 15:09:47.251539255 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/sun/util/LocaleServiceProviderPool.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/util/LocaleServiceProviderPool.java	2013-04-04 18:13:31.680322206 +0100
 @@ -59,7 +59,7 @@
       * set of provider implementations of a particular locale sensitive service.
       */
@@ -5820,8 +6364,8 @@
                          tmpList.add(getLookupLocale(locale));
                      }
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/util/logging/PlatformLogger.java openjdk-boot/jdk/src/share/classes/sun/util/logging/PlatformLogger.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/util/logging/PlatformLogger.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/util/logging/PlatformLogger.java	2012-11-30 15:09:47.251539255 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/sun/util/logging/PlatformLogger.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/util/logging/PlatformLogger.java	2013-04-04 18:13:31.680322206 +0100
 @@ -113,7 +113,7 @@
  
      // Table of known loggers.  Maps names to PlatformLoggers.
@@ -5850,8 +6394,8 @@
          static {
              if (LoggingSupport.isAvailable()) {
 diff -Nru openjdk-boot.orig/jdk/src/share/demo/nio/zipfs/Demo.java openjdk-boot/jdk/src/share/demo/nio/zipfs/Demo.java
---- openjdk-boot.orig/jdk/src/share/demo/nio/zipfs/Demo.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/demo/nio/zipfs/Demo.java	2012-11-30 15:09:47.251539255 +0000
+--- openjdk-boot.orig/jdk/src/share/demo/nio/zipfs/Demo.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/demo/nio/zipfs/Demo.java	2013-04-04 18:13:31.680322206 +0100
 @@ -160,7 +160,7 @@
          }
  
@@ -5886,8 +6430,8 @@
          openwrite.add(WRITE);
  
 diff -Nru openjdk-boot.orig/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipCoder.java openjdk-boot/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipCoder.java
---- openjdk-boot.orig/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipCoder.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipCoder.java	2012-11-30 15:09:47.251539255 +0000
+--- openjdk-boot.orig/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipCoder.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipCoder.java	2013-04-04 18:13:31.684322271 +0100
 @@ -142,8 +142,8 @@
          return new ZipCoder(Charset.defaultCharset());
      }
@@ -5900,8 +6444,8 @@
      private CharsetDecoder decoder() {
          CharsetDecoder dec = decTL.get();
 diff -Nru openjdk-boot.orig/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileAttributeView.java openjdk-boot/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileAttributeView.java
---- openjdk-boot.orig/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileAttributeView.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileAttributeView.java	2012-11-30 15:09:47.251539255 +0000
+--- openjdk-boot.orig/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileAttributeView.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileAttributeView.java	2013-04-04 18:13:31.684322271 +0100
 @@ -134,7 +134,7 @@
          throws IOException
      {
@@ -5912,8 +6456,8 @@
              for (AttrID id : AttrID.values()) {
                  try {
 diff -Nru openjdk-boot.orig/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileSystem.java openjdk-boot/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileSystem.java
---- openjdk-boot.orig/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileSystem.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileSystem.java	2012-11-30 15:09:47.255539318 +0000
+--- openjdk-boot.orig/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileSystem.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileSystem.java	2013-04-04 18:13:31.684322271 +0100
 @@ -157,7 +157,7 @@
  
      @Override
@@ -6014,8 +6558,8 @@
              inodes.put(root, root);
              dirs.add(root);
 diff -Nru openjdk-boot.orig/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileSystemProvider.java openjdk-boot/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileSystemProvider.java
---- openjdk-boot.orig/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileSystemProvider.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileSystemProvider.java	2012-11-30 15:09:47.255539318 +0000
+--- openjdk-boot.orig/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileSystemProvider.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileSystemProvider.java	2013-04-04 18:13:31.688322336 +0100
 @@ -62,7 +62,7 @@
  public class ZipFileSystemProvider extends FileSystemProvider {
  
@@ -6026,8 +6570,8 @@
      public ZipFileSystemProvider() {}
  
 diff -Nru openjdk-boot.orig/jdk/src/solaris/classes/java/lang/ProcessEnvironment.java openjdk-boot/jdk/src/solaris/classes/java/lang/ProcessEnvironment.java
---- openjdk-boot.orig/jdk/src/solaris/classes/java/lang/ProcessEnvironment.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/solaris/classes/java/lang/ProcessEnvironment.java	2012-11-30 15:09:47.255539318 +0000
+--- openjdk-boot.orig/jdk/src/solaris/classes/java/lang/ProcessEnvironment.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/solaris/classes/java/lang/ProcessEnvironment.java	2013-04-04 18:13:31.688322336 +0100
 @@ -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.
@@ -6038,8 +6582,8 @@
          // so that earlier variables override later ones.
          for (int i = environ.length-1; i > 0; i-=2)
 diff -Nru openjdk-boot.orig/jdk/src/solaris/classes/java/util/prefs/FileSystemPreferences.java openjdk-boot/jdk/src/solaris/classes/java/util/prefs/FileSystemPreferences.java
---- openjdk-boot.orig/jdk/src/solaris/classes/java/util/prefs/FileSystemPreferences.java	2012-11-30 15:06:27.260404636 +0000
-+++ openjdk-boot/jdk/src/solaris/classes/java/util/prefs/FileSystemPreferences.java	2012-11-30 15:09:47.255539318 +0000
+--- openjdk-boot.orig/jdk/src/solaris/classes/java/util/prefs/FileSystemPreferences.java	2013-04-04 18:12:33.943383368 +0100
++++ openjdk-boot/jdk/src/solaris/classes/java/util/prefs/FileSystemPreferences.java	2013-04-04 18:13:31.688322336 +0100
 @@ -354,7 +354,7 @@
       * log against that map.  The resulting map is then written back
       * to the disk.
@@ -6104,8 +6648,8 @@
          }
          if (!changeLog.isEmpty()) {
 diff -Nru openjdk-boot.orig/jdk/src/solaris/classes/sun/net/dns/ResolverConfigurationImpl.java openjdk-boot/jdk/src/solaris/classes/sun/net/dns/ResolverConfigurationImpl.java
---- openjdk-boot.orig/jdk/src/solaris/classes/sun/net/dns/ResolverConfigurationImpl.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/solaris/classes/sun/net/dns/ResolverConfigurationImpl.java	2012-11-30 15:09:47.255539318 +0000
+--- openjdk-boot.orig/jdk/src/solaris/classes/sun/net/dns/ResolverConfigurationImpl.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/solaris/classes/sun/net/dns/ResolverConfigurationImpl.java	2013-04-04 18:13:31.692322401 +0100
 @@ -60,7 +60,7 @@
                                            int maxperkeyword,
                                            int maxkeywords)
@@ -6124,9 +6668,25 @@
          String domain = fallbackDomain0();
          if (domain != null && domain.length() > 0) {
              sl.add(domain);
+diff -Nru openjdk-boot.orig/jdk/src/solaris/classes/sun/net/www/protocol/jar/JarFileFactory.java openjdk-boot/jdk/src/solaris/classes/sun/net/www/protocol/jar/JarFileFactory.java
+--- openjdk-boot.orig/jdk/src/solaris/classes/sun/net/www/protocol/jar/JarFileFactory.java	2013-04-04 21:23:42.393392437 +0100
++++ openjdk-boot/jdk/src/solaris/classes/sun/net/www/protocol/jar/JarFileFactory.java	2013-04-04 21:24:36.386252559 +0100
+@@ -43,10 +43,10 @@
+ class JarFileFactory implements URLJarFile.URLJarFileCloseController {
+ 
+     /* the url to file cache */
+-    private static final HashMap<String, JarFile> fileCache = new HashMap<>();
++    private static final HashMap<String, JarFile> fileCache = new HashMap<String, JarFile>();
+ 
+     /* the file to url cache */
+-    private static final HashMap<JarFile, URL> urlCache = new HashMap<>();
++    private static final HashMap<JarFile, URL> urlCache = new HashMap<JarFile, URL>();
+ 
+     private static final JarFileFactory instance = new JarFileFactory();
+ 
 diff -Nru openjdk-boot.orig/jdk/src/solaris/classes/sun/nio/ch/DevPollArrayWrapper.java openjdk-boot/jdk/src/solaris/classes/sun/nio/ch/DevPollArrayWrapper.java
---- openjdk-boot.orig/jdk/src/solaris/classes/sun/nio/ch/DevPollArrayWrapper.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/solaris/classes/sun/nio/ch/DevPollArrayWrapper.java	2012-11-30 15:09:47.255539318 +0000
+--- openjdk-boot.orig/jdk/src/solaris/classes/sun/nio/ch/DevPollArrayWrapper.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/solaris/classes/sun/nio/ch/DevPollArrayWrapper.java	2013-04-04 18:13:31.692322401 +0100
 @@ -130,7 +130,7 @@
          pollArrayAddress = pollArray.address();
          wfd = init();
@@ -6137,8 +6697,8 @@
  
      void initInterrupt(int fd0, int fd1) {
 diff -Nru openjdk-boot.orig/jdk/src/solaris/classes/sun/nio/cs/ext/CompoundTextSupport.java openjdk-boot/jdk/src/solaris/classes/sun/nio/cs/ext/CompoundTextSupport.java
---- openjdk-boot.orig/jdk/src/solaris/classes/sun/nio/cs/ext/CompoundTextSupport.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/solaris/classes/sun/nio/cs/ext/CompoundTextSupport.java	2012-11-30 15:09:47.255539318 +0000
+--- openjdk-boot.orig/jdk/src/solaris/classes/sun/nio/cs/ext/CompoundTextSupport.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/solaris/classes/sun/nio/cs/ext/CompoundTextSupport.java	2013-04-04 18:13:31.692322401 +0100
 @@ -153,12 +153,12 @@
  
      static {
@@ -6157,8 +6717,8 @@
          if (!(isEncodingSupported("US-ASCII") &&
                isEncodingSupported("ISO-8859-1")))
 diff -Nru openjdk-boot.orig/jdk/src/solaris/classes/sun/nio/fs/LinuxFileSystem.java openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/LinuxFileSystem.java
---- openjdk-boot.orig/jdk/src/solaris/classes/sun/nio/fs/LinuxFileSystem.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/LinuxFileSystem.java	2012-11-30 15:09:47.255539318 +0000
+--- openjdk-boot.orig/jdk/src/solaris/classes/sun/nio/fs/LinuxFileSystem.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/LinuxFileSystem.java	2013-04-04 18:13:31.696322465 +0100
 @@ -53,7 +53,7 @@
          static final Set<String> supportedFileAttributeViews =
              supportedFileAttributeViews();
@@ -6178,8 +6738,8 @@
              long fp = setmntent(fstab.getBytes(), "r".getBytes());
              try {
 diff -Nru openjdk-boot.orig/jdk/src/solaris/classes/sun/nio/fs/LinuxUserDefinedFileAttributeView.java openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/LinuxUserDefinedFileAttributeView.java
---- openjdk-boot.orig/jdk/src/solaris/classes/sun/nio/fs/LinuxUserDefinedFileAttributeView.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/LinuxUserDefinedFileAttributeView.java	2012-11-30 15:09:47.255539318 +0000
+--- openjdk-boot.orig/jdk/src/solaris/classes/sun/nio/fs/LinuxUserDefinedFileAttributeView.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/LinuxUserDefinedFileAttributeView.java	2013-04-04 18:13:31.696322465 +0100
 @@ -63,7 +63,7 @@
  
      // Parses buffer as array of NULL-terminated C strings.
@@ -6190,8 +6750,8 @@
          int pos = 0;
          while (pos < size) {
 diff -Nru openjdk-boot.orig/jdk/src/solaris/classes/sun/nio/fs/SolarisAclFileAttributeView.java openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/SolarisAclFileAttributeView.java
---- openjdk-boot.orig/jdk/src/solaris/classes/sun/nio/fs/SolarisAclFileAttributeView.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/SolarisAclFileAttributeView.java	2012-11-30 15:09:47.255539318 +0000
+--- openjdk-boot.orig/jdk/src/solaris/classes/sun/nio/fs/SolarisAclFileAttributeView.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/SolarisAclFileAttributeView.java	2013-04-04 18:13:31.696322465 +0100
 @@ -198,7 +198,7 @@
       * Decode the buffer, returning an ACL
       */
@@ -6202,8 +6762,8 @@
              long offset = address + i*SIZEOF_ACE_T;
  
 diff -Nru openjdk-boot.orig/jdk/src/solaris/classes/sun/nio/fs/SolarisFileSystem.java openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/SolarisFileSystem.java
---- openjdk-boot.orig/jdk/src/solaris/classes/sun/nio/fs/SolarisFileSystem.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/SolarisFileSystem.java	2012-11-30 15:09:47.255539318 +0000
+--- openjdk-boot.orig/jdk/src/solaris/classes/sun/nio/fs/SolarisFileSystem.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/SolarisFileSystem.java	2013-04-04 18:13:31.700322531 +0100
 @@ -76,7 +76,7 @@
          static final Set<String> supportedFileAttributeViews =
              supportedFileAttributeViews();
@@ -6223,8 +6783,8 @@
              UnixPath mnttab = new UnixPath(this, "/etc/mnttab");
              long fp = fopen(mnttab, "r");
 diff -Nru openjdk-boot.orig/jdk/src/solaris/classes/sun/nio/fs/SolarisUserDefinedFileAttributeView.java openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/SolarisUserDefinedFileAttributeView.java
---- openjdk-boot.orig/jdk/src/solaris/classes/sun/nio/fs/SolarisUserDefinedFileAttributeView.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/SolarisUserDefinedFileAttributeView.java	2012-11-30 15:09:47.255539318 +0000
+--- openjdk-boot.orig/jdk/src/solaris/classes/sun/nio/fs/SolarisUserDefinedFileAttributeView.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/SolarisUserDefinedFileAttributeView.java	2013-04-04 18:13:31.700322531 +0100
 @@ -83,7 +83,7 @@
                  }
  
@@ -6235,8 +6795,8 @@
                      byte[] name;
                      while ((name = readdir(dp)) != null) {
 diff -Nru openjdk-boot.orig/jdk/src/solaris/classes/sun/nio/fs/UnixFileAttributes.java openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/UnixFileAttributes.java
---- openjdk-boot.orig/jdk/src/solaris/classes/sun/nio/fs/UnixFileAttributes.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/UnixFileAttributes.java	2012-11-30 15:09:47.255539318 +0000
+--- openjdk-boot.orig/jdk/src/solaris/classes/sun/nio/fs/UnixFileAttributes.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/UnixFileAttributes.java	2013-04-04 18:13:31.700322531 +0100
 @@ -194,7 +194,7 @@
      @Override
      public Set<PosixFilePermission> permissions() {
@@ -6247,8 +6807,8 @@
          if ((bits & UnixConstants.S_IRUSR) > 0)
              perms.add(PosixFilePermission.OWNER_READ);
 diff -Nru openjdk-boot.orig/jdk/src/windows/classes/java/lang/ProcessEnvironment.java openjdk-boot/jdk/src/windows/classes/java/lang/ProcessEnvironment.java
---- openjdk-boot.orig/jdk/src/windows/classes/java/lang/ProcessEnvironment.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/windows/classes/java/lang/ProcessEnvironment.java	2012-11-30 15:09:47.255539318 +0000
+--- openjdk-boot.orig/jdk/src/windows/classes/java/lang/ProcessEnvironment.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/windows/classes/java/lang/ProcessEnvironment.java	2013-04-04 18:13:31.704322595 +0100
 @@ -250,7 +250,8 @@
                                     envblock.substring(eql+1,end));
          }
@@ -6270,8 +6830,8 @@
  
          StringBuilder sb = new StringBuilder(size()*30);
 diff -Nru openjdk-boot.orig/jdk/src/windows/classes/sun/net/dns/ResolverConfigurationImpl.java openjdk-boot/jdk/src/windows/classes/sun/net/dns/ResolverConfigurationImpl.java
---- openjdk-boot.orig/jdk/src/windows/classes/sun/net/dns/ResolverConfigurationImpl.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/windows/classes/sun/net/dns/ResolverConfigurationImpl.java	2012-11-30 15:09:47.255539318 +0000
+--- openjdk-boot.orig/jdk/src/windows/classes/sun/net/dns/ResolverConfigurationImpl.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/windows/classes/sun/net/dns/ResolverConfigurationImpl.java	2013-04-04 18:13:31.704322595 +0100
 @@ -63,7 +63,7 @@
      // Parse string that consists of token delimited by space or commas
      // and return LinkedHashMap
@@ -6282,8 +6842,8 @@
          // comma and space are valid delimites
          StringTokenizer st = new StringTokenizer(str, ", ");
 diff -Nru openjdk-boot.orig/jdk/src/windows/classes/sun/nio/fs/WindowsFileSystem.java openjdk-boot/jdk/src/windows/classes/sun/nio/fs/WindowsFileSystem.java
---- openjdk-boot.orig/jdk/src/windows/classes/sun/nio/fs/WindowsFileSystem.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/windows/classes/sun/nio/fs/WindowsFileSystem.java	2012-11-30 15:09:47.255539318 +0000
+--- openjdk-boot.orig/jdk/src/windows/classes/sun/nio/fs/WindowsFileSystem.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/windows/classes/sun/nio/fs/WindowsFileSystem.java	2013-04-04 18:13:31.708322661 +0100
 @@ -128,7 +128,7 @@
          }
  
@@ -6294,8 +6854,8 @@
          for (int i = 0; i <= 25; i++) {  // 0->A, 1->B, 2->C...
              if ((drives & (1 << i)) != 0) {
 diff -Nru openjdk-boot.orig/jdk/src/windows/classes/sun/nio/fs/WindowsPath.java openjdk-boot/jdk/src/windows/classes/sun/nio/fs/WindowsPath.java
---- openjdk-boot.orig/jdk/src/windows/classes/sun/nio/fs/WindowsPath.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/windows/classes/sun/nio/fs/WindowsPath.java	2012-11-30 15:09:47.259539380 +0000
+--- openjdk-boot.orig/jdk/src/windows/classes/sun/nio/fs/WindowsPath.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/windows/classes/sun/nio/fs/WindowsPath.java	2013-04-04 18:13:31.708322661 +0100
 @@ -575,7 +575,7 @@
      // generate offset array
      private void initOffsets() {
@@ -6306,8 +6866,8 @@
                  // empty path considered to have one name element
                  list.add(0);
 diff -Nru openjdk-boot.orig/jdk/src/windows/classes/sun/nio/fs/WindowsSecurityDescriptor.java openjdk-boot/jdk/src/windows/classes/sun/nio/fs/WindowsSecurityDescriptor.java
---- openjdk-boot.orig/jdk/src/windows/classes/sun/nio/fs/WindowsSecurityDescriptor.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/windows/classes/sun/nio/fs/WindowsSecurityDescriptor.java	2012-11-30 15:09:47.259539380 +0000
+--- openjdk-boot.orig/jdk/src/windows/classes/sun/nio/fs/WindowsSecurityDescriptor.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/windows/classes/sun/nio/fs/WindowsSecurityDescriptor.java	2013-04-04 18:13:31.708322661 +0100
 @@ -378,7 +378,7 @@
              AclInformation aclInfo = GetAclInformation(aclAddress);
              aceCount = aclInfo.aceCount();
@@ -6318,8 +6878,8 @@
          // decode each of the ACEs to AclEntry objects
          for (int i=0; i<aceCount; i++) {
 diff -Nru openjdk-boot.orig/jdk/src/windows/classes/sun/nio/fs/WindowsUserDefinedFileAttributeView.java openjdk-boot/jdk/src/windows/classes/sun/nio/fs/WindowsUserDefinedFileAttributeView.java
---- openjdk-boot.orig/jdk/src/windows/classes/sun/nio/fs/WindowsUserDefinedFileAttributeView.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/windows/classes/sun/nio/fs/WindowsUserDefinedFileAttributeView.java	2012-11-30 15:09:47.259539380 +0000
+--- openjdk-boot.orig/jdk/src/windows/classes/sun/nio/fs/WindowsUserDefinedFileAttributeView.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/windows/classes/sun/nio/fs/WindowsUserDefinedFileAttributeView.java	2013-04-04 18:13:31.712322725 +0100
 @@ -65,7 +65,7 @@
  
      // enumerates the file streams using FindFirstStream/FindNextStream APIs.
@@ -6366,8 +6926,8 @@
                  opts.add(WindowsChannelFactory.OPEN_REPARSE_POINT);
              opts.add(CREATE);
 diff -Nru openjdk-boot.orig/jdk/test/java/io/Serializable/NPEProvoker/NPEProvoker.java openjdk-boot/jdk/test/java/io/Serializable/NPEProvoker/NPEProvoker.java
---- openjdk-boot.orig/jdk/test/java/io/Serializable/NPEProvoker/NPEProvoker.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/test/java/io/Serializable/NPEProvoker/NPEProvoker.java	2012-11-30 15:09:47.259539380 +0000
+--- openjdk-boot.orig/jdk/test/java/io/Serializable/NPEProvoker/NPEProvoker.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/test/java/io/Serializable/NPEProvoker/NPEProvoker.java	2013-04-04 18:13:31.712322725 +0100
 @@ -56,7 +56,7 @@
      public static void main(String[] args) {
          System.err.println("\n Regression test for bug 6541870\n");
@@ -6378,8 +6938,8 @@
              ByteArrayOutputStream baos = new ByteArrayOutputStream();
              ObjectOutputStream oos = new ObjectOutputStream(baos);
 diff -Nru openjdk-boot.orig/jdk/test/java/lang/instrument/ilib/InjectBytecodes.java openjdk-boot/jdk/test/java/lang/instrument/ilib/InjectBytecodes.java
---- openjdk-boot.orig/jdk/test/java/lang/instrument/ilib/InjectBytecodes.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/test/java/lang/instrument/ilib/InjectBytecodes.java	2012-11-30 15:09:47.259539380 +0000
+--- openjdk-boot.orig/jdk/test/java/lang/instrument/ilib/InjectBytecodes.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/test/java/lang/instrument/ilib/InjectBytecodes.java	2013-04-04 18:13:31.712322725 +0100
 @@ -50,7 +50,7 @@
      private final Injector[] after  = new Injector[256];
      private final String className;
@@ -6390,8 +6950,8 @@
      private int pos;
      private int newPos;
 diff -Nru openjdk-boot.orig/jdk/test/java/lang/instrument/ilib/Inject.java openjdk-boot/jdk/test/java/lang/instrument/ilib/Inject.java
---- openjdk-boot.orig/jdk/test/java/lang/instrument/ilib/Inject.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/test/java/lang/instrument/ilib/Inject.java	2012-11-30 15:09:47.259539380 +0000
+--- openjdk-boot.orig/jdk/test/java/lang/instrument/ilib/Inject.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/test/java/lang/instrument/ilib/Inject.java	2013-04-04 18:13:31.716322791 +0100
 @@ -107,7 +107,7 @@
      class IndexedInjector implements TrackerInjector {
          int counter = 0;
@@ -6402,8 +6962,8 @@
          public int stackSize(int currentSize) {
              return currentSize + 1;
 diff -Nru openjdk-boot.orig/jdk/test/java/lang/reflect/Generics/TestPlainArrayNotGeneric.java openjdk-boot/jdk/test/java/lang/reflect/Generics/TestPlainArrayNotGeneric.java
---- openjdk-boot.orig/jdk/test/java/lang/reflect/Generics/TestPlainArrayNotGeneric.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/test/java/lang/reflect/Generics/TestPlainArrayNotGeneric.java	2012-11-30 15:09:47.259539380 +0000
+--- openjdk-boot.orig/jdk/test/java/lang/reflect/Generics/TestPlainArrayNotGeneric.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/test/java/lang/reflect/Generics/TestPlainArrayNotGeneric.java	2013-04-04 18:13:31.716322791 +0100
 @@ -103,7 +103,7 @@
          }
      }
@@ -6414,8 +6974,8 @@
      private static void check(Type t, String what) {
          if (t == null || !checking.add(t))
 diff -Nru openjdk-boot.orig/jdk/test/java/util/logging/ClassLoaderLeakTest.java openjdk-boot/jdk/test/java/util/logging/ClassLoaderLeakTest.java
---- openjdk-boot.orig/jdk/test/java/util/logging/ClassLoaderLeakTest.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/test/java/util/logging/ClassLoaderLeakTest.java	2012-11-30 15:09:47.259539380 +0000
+--- openjdk-boot.orig/jdk/test/java/util/logging/ClassLoaderLeakTest.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/test/java/util/logging/ClassLoaderLeakTest.java	2013-04-04 18:13:31.716322791 +0100
 @@ -89,7 +89,7 @@
  
           MyClassLoader appClassLoader = new MyClassLoader(urls, "test0");
@@ -6426,8 +6986,8 @@
  
           Thread appThread = new Thread(appsThreadGroup, launcher, "AppThread-0");
 diff -Nru openjdk-boot.orig/jdk/test/java/util/Random/DistinctSeeds.java openjdk-boot/jdk/test/java/util/Random/DistinctSeeds.java
---- openjdk-boot.orig/jdk/test/java/util/Random/DistinctSeeds.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/test/java/util/Random/DistinctSeeds.java	2012-11-30 15:09:47.259539380 +0000
+--- openjdk-boot.orig/jdk/test/java/util/Random/DistinctSeeds.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/test/java/util/Random/DistinctSeeds.java	2013-04-04 18:13:31.720322855 +0100
 @@ -59,7 +59,7 @@
              }
          }
@@ -6437,511 +6997,3 @@
          List<Thread> threads = new ArrayList<Thread>();
          for (int i = 0; i < threadCount; i++) {
              RandomCollector r = new RandomCollector();
-diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/rmi/registry/RegistryImpl.java openjdk-boot/jdk/src/share/classes/sun/rmi/registry/RegistryImpl.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/registry/RegistryImpl.java	2013-01-16 02:31:22.300240401 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/rmi/registry/RegistryImpl.java	2013-01-16 02:31:46.772630169 +0000
-@@ -78,9 +78,9 @@
-     /* indicate compatibility with JDK 1.1.x version of class */
-     private static final long serialVersionUID = 4666870661827494597L;
-     private Hashtable<String, Remote> bindings
--        = new Hashtable<>(101);
-+        = new Hashtable<String, Remote>(101);
-     private static Hashtable<InetAddress, InetAddress> allowedAccessCache
--        = new Hashtable<>(3);
-+        = new Hashtable<InetAddress, InetAddress>(3);
-     private static RegistryImpl registry;
-     private static ObjID id = new ObjID(ObjID.REGISTRY_ID);
- 
-diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/rmi/server/ActivationGroupImpl.java openjdk-boot/jdk/src/share/classes/sun/rmi/server/ActivationGroupImpl.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/server/ActivationGroupImpl.java	2013-01-16 02:31:22.308240528 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/rmi/server/ActivationGroupImpl.java	2013-01-16 02:37:55.086500471 +0000
-@@ -66,10 +66,10 @@
- 
-     /** maps persistent IDs to activated remote objects */
-     private final Hashtable<ActivationID,ActiveEntry> active =
--        new Hashtable<>();
-+        new Hashtable<ActivationID,ActiveEntry>();
-     private boolean groupInactive = false;
-     private final ActivationGroupID groupID;
--    private final List<ActivationID> lockedIDs = new ArrayList<>();
-+    private final List<ActivationID> lockedIDs = new ArrayList<ActivationID>();
- 
-     /**
-      * Creates a default activation group implementation.
-diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/rmi/server/LoaderHandler.java openjdk-boot/jdk/src/share/classes/sun/rmi/server/LoaderHandler.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/server/LoaderHandler.java	2013-01-16 02:31:22.316240656 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/rmi/server/LoaderHandler.java	2013-01-16 02:38:14.518810403 +0000
-@@ -112,11 +112,11 @@
-      * garbage collected.
-      */
-     private static final HashMap<LoaderKey, LoaderEntry> loaderTable
--        = new HashMap<>(5);
-+        = new HashMap<LoaderKey, LoaderEntry>(5);
- 
-     /** reference queue for cleared class loader entries */
-     private static final ReferenceQueue<Loader> refQueue
--        = new ReferenceQueue<>();
-+        = new ReferenceQueue<Loader>();
- 
-     /*
-      * Disallow anyone from creating one of these.
-@@ -776,7 +776,7 @@
- 
-     /** map from weak(key=string) to [URL[], soft(key)] */
-     private static final Map<String, Object[]> pathToURLsCache
--        = new WeakHashMap<>(5);
-+        = new WeakHashMap<String, Object[]>(5);
- 
-     /**
-      * Convert an array of URL objects into a corresponding string
-diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/rmi/server/MarshalInputStream.java openjdk-boot/jdk/src/share/classes/sun/rmi/server/MarshalInputStream.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/server/MarshalInputStream.java	2013-01-16 02:31:22.324240784 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/rmi/server/MarshalInputStream.java	2013-01-16 02:38:36.627163040 +0000
-@@ -65,14 +65,14 @@
- 
-     /** table to hold sun classes to which access is explicitly permitted */
-     protected static Map<String, Class<?>> permittedSunClasses
--        = new HashMap<>(3);
-+        = new HashMap<String, Class<?>>(3);
- 
-     /** if true, don't try superclass first in resolveClass() */
-     private boolean skipDefaultResolveClass = false;
- 
-     /** callbacks to make when done() called: maps Object to Runnable */
-     private final Map<Object, Runnable> doneCallbacks
--        = new HashMap<>(3);
-+        = new HashMap<Object, Runnable>(3);
- 
-     /**
-      * if true, load classes (if not available locally) only from the
-diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/rmi/server/UnicastServerRef.java openjdk-boot/jdk/src/share/classes/sun/rmi/server/UnicastServerRef.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/server/UnicastServerRef.java	2013-01-16 02:31:22.336240974 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/rmi/server/UnicastServerRef.java	2013-01-16 02:39:03.071584874 +0000
-@@ -537,7 +537,7 @@
-         HashToMethod_Maps() {}
- 
-         protected Map<Long,Method> computeValue(Class<?> remoteClass) {
--            Map<Long,Method> map = new HashMap<>();
-+            Map<Long,Method> map = new HashMap<Long,Method>();
-             for (Class<?> cl = remoteClass;
-                  cl != null;
-                  cl = cl.getSuperclass())
-diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/rmi/server/Util.java openjdk-boot/jdk/src/share/classes/sun/rmi/server/Util.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/server/Util.java	2013-01-16 02:31:22.344241102 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/rmi/server/Util.java	2013-01-16 02:39:18.027823469 +0000
-@@ -207,7 +207,7 @@
-      * @throws  NullPointerException if remoteClass is null
-      */
-     private static Class<?>[] getRemoteInterfaces(Class<?> remoteClass) {
--        ArrayList<Class<?>> list = new ArrayList<>();
-+        ArrayList<Class<?>> list = new ArrayList<Class<?>>();
-         getRemoteInterfaces(list, remoteClass);
-         return list.toArray(new Class<?>[list.size()]);
-     }
-diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/rmi/server/WeakClassHashMap.java openjdk-boot/jdk/src/share/classes/sun/rmi/server/WeakClassHashMap.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/server/WeakClassHashMap.java	2013-01-16 02:31:22.352241229 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/rmi/server/WeakClassHashMap.java	2013-01-16 02:39:39.284162590 +0000
-@@ -46,7 +46,7 @@
-  **/
- public abstract class WeakClassHashMap<V> {
- 
--    private Map<Class<?>,ValueCell<V>> internalMap = new WeakHashMap<>();
-+    private Map<Class<?>,ValueCell<V>> internalMap = new WeakHashMap<Class<?>,ValueCell<V>>();
- 
-     protected WeakClassHashMap() { }
- 
-diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/ConnectionInputStream.java openjdk-boot/jdk/src/share/classes/sun/rmi/transport/ConnectionInputStream.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/ConnectionInputStream.java	2013-01-16 02:31:22.360241357 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/rmi/transport/ConnectionInputStream.java	2013-01-16 02:37:32.806145141 +0000
-@@ -43,7 +43,7 @@
-     private boolean dgcAckNeeded = false;
- 
-     /** Hashtable mapping Endpoints to lists of LiveRefs to register */
--    private Map<Endpoint, List<LiveRef>> incomingRefTable = new HashMap<>(5);
-+    private Map<Endpoint, List<LiveRef>> incomingRefTable = new HashMap<Endpoint, List<LiveRef>>(5);
- 
-     /** identifier for gc ack*/
-     private UID ackID;
-diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/DGCAckHandler.java openjdk-boot/jdk/src/share/classes/sun/rmi/transport/DGCAckHandler.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/DGCAckHandler.java	2013-01-16 02:31:22.368241485 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/rmi/transport/DGCAckHandler.java	2013-01-16 02:36:17.440943411 +0000
-@@ -78,7 +78,7 @@
-         Collections.synchronizedMap(new HashMap<UID,DGCAckHandler>());
- 
-     private final UID id;
--    private List<Object> objList = new ArrayList<>(); // null if released
-+    private List<Object> objList = new ArrayList<Object>(); // null if released
-     private Future<?> task = null;
- 
-     /**
-diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/DGCClient.java openjdk-boot/jdk/src/share/classes/sun/rmi/transport/DGCClient.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/DGCClient.java	2013-01-16 02:31:22.380241675 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/rmi/transport/DGCClient.java	2013-01-16 02:33:21.178134084 +0000
-@@ -176,9 +176,9 @@
-         private DGC dgc;
- 
-         /** table of refs held for endpoint: maps LiveRef to RefEntry */
--        private Map<LiveRef, RefEntry> refTable = new HashMap<>(5);
-+        private Map<LiveRef, RefEntry> refTable = new HashMap<LiveRef, RefEntry>(5);
-         /** set of RefEntry instances from last (failed) dirty call */
--        private Set<RefEntry> invalidRefs = new HashSet<>(5);
-+        private Set<RefEntry> invalidRefs = new HashSet<RefEntry>(5);
- 
-         /** true if this entry has been removed from the global table */
-         private boolean removed = false;
-@@ -200,12 +200,12 @@
-         private boolean interruptible = false;
- 
-         /** reference queue for phantom references */
--        private ReferenceQueue<LiveRef> refQueue = new ReferenceQueue<>();
-+        private ReferenceQueue<LiveRef> refQueue = new ReferenceQueue<LiveRef>();
-         /** set of clean calls that need to be made */
--        private Set<CleanRequest> pendingCleans = new HashSet<>(5);
-+        private Set<CleanRequest> pendingCleans = new HashSet<CleanRequest>(5);
- 
-         /** global endpoint table: maps Endpoint to EndpointEntry */
--        private static Map<Endpoint,EndpointEntry> endpointTable = new HashMap<>(5);
-+        private static Map<Endpoint,EndpointEntry> endpointTable = new HashMap<Endpoint,EndpointEntry>(5);
-         /** handle for GC latency request (for future cancellation) */
-         private static GC.LatencyRequest gcLatencyRequest = null;
- 
-@@ -282,7 +282,7 @@
-                         refEntry = new RefEntry(refClone);
-                         refTable.put(refClone, refEntry);
-                         if (refsToDirty == null) {
--                            refsToDirty = new HashSet<>(5);
-+                            refsToDirty = new HashSet<RefEntry>(5);
-                         }
-                         refsToDirty.add(refEntry);
-                     }
-@@ -564,7 +564,7 @@
-                             needRenewal = true;
-                             if (!invalidRefs.isEmpty()) {
-                                 refsToDirty = invalidRefs;
--                                invalidRefs = new HashSet<>(5);
-+                                invalidRefs = new HashSet<RefEntry>(5);
-                             }
-                             sequenceNum = getNextSequenceNum();
-                         }
-@@ -603,12 +603,12 @@
-                 if (refEntry.isRefSetEmpty()) {
-                     if (refEntry.hasDirtyFailed()) {
-                         if (strongCleans == null) {
--                            strongCleans = new HashSet<>(5);
-+                            strongCleans = new HashSet<RefEntry>(5);
-                         }
-                         strongCleans.add(refEntry);
-                     } else {
-                         if (normalCleans == null) {
--                            normalCleans = new HashSet<>(5);
-+                            normalCleans = new HashSet<RefEntry>(5);
-                         }
-                         normalCleans.add(refEntry);
-                     }
-@@ -704,7 +704,7 @@
-             /** LiveRef value for this entry (not a registered instance) */
-             private LiveRef ref;
-             /** set of phantom references to registered instances */
--            private Set<PhantomLiveRef> refSet = new HashSet<>(5);
-+            private Set<PhantomLiveRef> refSet = new HashSet<PhantomLiveRef>(5);
-             /** true if a dirty call containing this ref has failed */
-             private boolean dirtyFailed = false;
- 
-diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/DGCImpl.java openjdk-boot/jdk/src/share/classes/sun/rmi/transport/DGCImpl.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/DGCImpl.java	2013-01-16 02:31:22.388241803 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/rmi/transport/DGCImpl.java	2013-01-16 02:36:08.824806043 +0000
-@@ -84,7 +84,7 @@
-     /** remote implementation of DGC interface for this VM */
-     private static DGCImpl dgc;
-     /** table that maps VMID to LeaseInfo */
--    private Map<VMID,LeaseInfo> leaseTable = new HashMap<>();
-+    private Map<VMID,LeaseInfo> leaseTable = new HashMap<VMID,LeaseInfo>();
-     /** checks for lease expiration */
-     private Future<?> checker = null;
- 
-@@ -236,7 +236,7 @@
-         long time = System.currentTimeMillis();
- 
-         /* List of vmids that need to be removed from the leaseTable */
--        List<LeaseInfo> toUnregister = new ArrayList<>();
-+        List<LeaseInfo> toUnregister = new ArrayList<LeaseInfo>();
- 
-         /* Build a list of leaseInfo objects that need to have
-          * targets removed from their notifySet.  Remove expired
-@@ -313,7 +313,7 @@
-     private static class LeaseInfo {
-         VMID vmid;
-         long expiration;
--        Set<Target> notifySet = new HashSet<>();
-+        Set<Target> notifySet = new HashSet<Target>();
- 
-         LeaseInfo(VMID vmid, long lease) {
-             this.vmid = vmid;
-diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/ObjectTable.java openjdk-boot/jdk/src/share/classes/sun/rmi/transport/ObjectTable.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/ObjectTable.java	2013-01-16 02:31:22.396241930 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/rmi/transport/ObjectTable.java	2013-01-16 02:37:15.185864150 +0000
-@@ -62,9 +62,9 @@
- 
-     /** tables mapping to Target, keyed from ObjectEndpoint and impl object */
-     private static final Map<ObjectEndpoint,Target> objTable =
--        new HashMap<>();
-+        new HashMap<ObjectEndpoint,Target>();
-     private static final Map<WeakRef,Target> implTable =
--        new HashMap<>();
-+        new HashMap<WeakRef,Target>();
- 
-     /**
-      * lock guarding keepAliveCount, reaper, and gcLatencyRequest.
-@@ -79,7 +79,7 @@
-     private static Thread reaper = null;
- 
-     /** queue notified when weak refs in the table are cleared */
--    static final ReferenceQueue<Object> reapQueue = new ReferenceQueue<>();
-+    static final ReferenceQueue<Object> reapQueue = new ReferenceQueue<Object>();
- 
-     /** handle for GC latency request (for future cancellation) */
-     private static GC.LatencyRequest gcLatencyRequest = null;
-diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/proxy/RMIMasterSocketFactory.java openjdk-boot/jdk/src/share/classes/sun/rmi/transport/proxy/RMIMasterSocketFactory.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/proxy/RMIMasterSocketFactory.java	2013-01-16 02:31:22.404242057 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/rmi/transport/proxy/RMIMasterSocketFactory.java	2013-01-16 02:34:03.586809842 +0000
-@@ -75,13 +75,13 @@
- 
-     /** table of hosts successfully connected to and the factory used */
-     private Hashtable<String, RMISocketFactory> successTable =
--        new Hashtable<>();
-+        new Hashtable<String, RMISocketFactory>();
- 
-     /** maximum number of hosts to remember successful connection to */
-     private static final int MaxRememberedHosts = 64;
- 
-     /** list of the hosts in successTable in initial connection order */
--    private Vector<String> hostList = new Vector<>(MaxRememberedHosts);
-+    private Vector<String> hostList = new Vector<String>(MaxRememberedHosts);
- 
-     /** default factory for initial use for direct socket connection */
-     protected RMISocketFactory initialFactory = new RMIDirectSocketFactory();
-@@ -96,7 +96,7 @@
-      * socket connection fails.
-      */
-     public RMIMasterSocketFactory() {
--        altFactoryList = new Vector<>(2);
-+        altFactoryList = new Vector<RMISocketFactory>(2);
-         boolean setFactories = false;
- 
-         try {
-diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/Target.java openjdk-boot/jdk/src/share/classes/sun/rmi/transport/Target.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/Target.java	2013-01-16 02:31:22.412242185 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/rmi/transport/Target.java	2013-01-16 02:36:35.937238312 +0000
-@@ -53,10 +53,10 @@
-     /** stub for remote object */
-     private final Remote stub;
-     /** set of clients that hold references to this target */
--    private final Vector<VMID> refSet = new Vector<>();
-+    private final Vector<VMID> refSet = new Vector<VMID>();
-     /** table that maps client endpoints to sequence numbers */
-     private final Hashtable<VMID, SequenceEntry> sequenceTable =
--        new Hashtable<>(5);
-+        new Hashtable<VMID, SequenceEntry>(5);
-     /** access control context in which target was created */
-     private final AccessControlContext acc;
-     /** context class loader in which target was created */
-diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/tcp/ConnectionMultiplexer.java openjdk-boot/jdk/src/share/classes/sun/rmi/transport/tcp/ConnectionMultiplexer.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/tcp/ConnectionMultiplexer.java	2013-01-16 02:31:22.424242376 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/rmi/transport/tcp/ConnectionMultiplexer.java	2013-01-16 02:34:20.691082418 +0000
-@@ -85,7 +85,7 @@
-     private DataOutputStream dataOut;
- 
-     /** table holding currently open connection IDs and related info */
--    private Hashtable<Integer, MultiplexConnectionInfo> connectionTable = new Hashtable<>(7);
-+    private Hashtable<Integer, MultiplexConnectionInfo> connectionTable = new Hashtable<Integer, MultiplexConnectionInfo>(7);
- 
-     /** number of currently open connections */
-     private int numConnections = 0;
-diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/tcp/TCPChannel.java openjdk-boot/jdk/src/share/classes/sun/rmi/transport/tcp/TCPChannel.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/tcp/TCPChannel.java	2013-01-16 02:31:22.432242504 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/rmi/transport/tcp/TCPChannel.java	2013-01-16 02:34:36.327331615 +0000
-@@ -64,7 +64,7 @@
-     private final TCPTransport tr;
-     /** list of cached connections */
-     private final List<TCPConnection> freeList =
--        new ArrayList<>();
-+        new ArrayList<TCPConnection>();
-     /** frees cached connections that have expired (guarded by freeList) */
-     private Future<?> reaper = null;
- 
-@@ -480,7 +480,7 @@
-     private TCPTransport transport;
- 
-     /** queue of connections to be accepted */
--    private List<Connection> queue = new ArrayList<>();
-+    private List<Connection> queue = new ArrayList<Connection>();
- 
-     /** thread ID counter */
-     private static int threadNum = 0;
-diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/tcp/TCPEndpoint.java openjdk-boot/jdk/src/share/classes/sun/rmi/transport/tcp/TCPEndpoint.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/tcp/TCPEndpoint.java	2013-01-16 02:31:22.440242630 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/rmi/transport/tcp/TCPEndpoint.java	2013-01-16 02:34:52.623591345 +0000
-@@ -148,7 +148,7 @@
-     // TBD: should this be a weak hash table?
-     private static final
-         Map<TCPEndpoint,LinkedList<TCPEndpoint>> localEndpoints =
--        new HashMap<>();
-+        new HashMap<TCPEndpoint,LinkedList<TCPEndpoint>>();
- 
-     /**
-      * Create an endpoint for a specified host and port.
-diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/tcp/TCPTransport.java openjdk-boot/jdk/src/share/classes/sun/rmi/transport/tcp/TCPTransport.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/tcp/TCPTransport.java	2013-01-16 02:31:22.448242758 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/rmi/transport/tcp/TCPTransport.java	2013-01-16 02:35:46.984457860 +0000
-@@ -120,7 +120,7 @@
- 
-     /** client host for the current thread's connection */
-     private static final ThreadLocal<ConnectionHandler>
--        threadConnectionHandler = new ThreadLocal<>();
-+        threadConnectionHandler = new ThreadLocal<ConnectionHandler>();
- 
-     /** endpoints for this transport */
-     private final LinkedList<TCPEndpoint> epList;
-@@ -130,7 +130,7 @@
-     private ServerSocket server = null;
-     /** table mapping endpoints to channels */
-     private final Map<TCPEndpoint,Reference<TCPChannel>> channelTable =
--        new WeakHashMap<>();
-+        new WeakHashMap<TCPEndpoint,Reference<TCPChannel>>();
- 
-     static final RMISocketFactory defaultSocketFactory =
-         RMISocketFactory.getDefaultSocketFactory();
-diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/Transport.java openjdk-boot/jdk/src/share/classes/sun/rmi/transport/Transport.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/Transport.java	2013-01-16 02:31:22.456242886 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/rmi/transport/Transport.java	2013-01-16 02:36:47.305419575 +0000
-@@ -62,7 +62,7 @@
-         Log.getLog("sun.rmi.transport.misc", "transport", Transport.logLevel);
- 
-     /** References the current transport when a call is being serviced */
--    private static final ThreadLocal<Transport> currentTransport = new ThreadLocal<>();
-+    private static final ThreadLocal<Transport> currentTransport = new ThreadLocal<Transport>();
- 
-     /** ObjID for DGCImpl */
-     private static final ObjID dgcID = new ObjID(ObjID.DGC_ID);
-diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/rmi/rmic/BatchEnvironment.java openjdk-boot/jdk/src/share/classes/sun/rmi/rmic/BatchEnvironment.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/rmic/BatchEnvironment.java	2013-01-16 14:03:24.004644191 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/rmi/rmic/BatchEnvironment.java	2013-01-16 14:04:14.265446248 +0000
-@@ -160,7 +160,7 @@
-     }
- 
-     /** list of generated source files created in this environment */
--    private Vector<File> generatedFiles = new Vector<>();
-+    private Vector<File> generatedFiles = new Vector<File>();
- 
-     /**
-      * Remember a generated source file generated so that it
-diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/rmi/rmic/Main.java openjdk-boot/jdk/src/share/classes/sun/rmi/rmic/Main.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/rmic/Main.java	2013-01-16 14:03:38.676878309 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/rmi/rmic/Main.java	2013-01-16 14:04:07.289334912 +0000
-@@ -184,7 +184,7 @@
-         destDir = null;
-         flags = F_WARNINGS;
-         tm = System.currentTimeMillis();
--        classes = new Vector<>();
-+        classes = new Vector<String>();
-         nowrite = false;
-         nocompile = false;
-         keepGenerated = false;
-@@ -192,7 +192,7 @@
-         if (generatorArgs == null) {
-             return false;
-         }
--        generators = new Vector<>();
-+        generators = new Vector<Generator>();
- 
-         // Pre-process command line for @file arguments
-         try {
-diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/rmi/rmic/RMIGenerator.java openjdk-boot/jdk/src/share/classes/sun/rmi/rmic/RMIGenerator.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/rmic/RMIGenerator.java	2013-01-16 16:50:47.126498571 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/rmi/rmic/RMIGenerator.java	2013-01-16 16:51:10.246872404 +0000
-@@ -61,7 +61,7 @@
-  */
- public class RMIGenerator implements RMIConstants, Generator {
- 
--    private static final Hashtable<String, Integer> versionOptions = new Hashtable<>();
-+    private static final Hashtable<String, Integer> versionOptions = new Hashtable<String, Integer>();
-     static {
-         versionOptions.put("-v1.1", new Integer(STUB_VERSION_1_1));
-         versionOptions.put("-vcompat", new Integer(STUB_VERSION_FAT));
-@@ -651,7 +651,7 @@
-      * that no exceptions need to be caught.
-      */
-     private Vector<ClassDefinition> computeUniqueCatchList(ClassDeclaration[] exceptions) {
--        Vector<ClassDefinition> uniqueList = new Vector<>();       // unique exceptions to catch
-+        Vector<ClassDefinition> uniqueList = new Vector<ClassDefinition>();       // unique exceptions to catch
- 
-         uniqueList.addElement(defRuntimeException);
-         uniqueList.addElement(defRemoteException);
-diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/rmi/rmid/ExecOptionPermission.java openjdk-boot/jdk/src/share/classes/com/sun/rmi/rmid/ExecOptionPermission.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/rmi/rmid/ExecOptionPermission.java	2013-01-16 23:35:20.034379856 +0000
-+++ openjdk-boot/jdk/src/share/classes/com/sun/rmi/rmid/ExecOptionPermission.java	2013-01-16 23:44:22.819124371 +0000
-@@ -231,7 +231,7 @@
-          * Create an empty ExecOptionPermissionCollection.
-          */
-         public ExecOptionPermissionCollection() {
--            permissions = new Hashtable<>(11);
-+            permissions = new Hashtable<String, Permission>(11);
-             all_allowed = false;
-         }
- 
-diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/rmi/rmid/ExecPermission.java openjdk-boot/jdk/src/share/classes/com/sun/rmi/rmid/ExecPermission.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/rmi/rmid/ExecPermission.java	2013-01-16 23:35:39.518693083 +0000
-+++ openjdk-boot/jdk/src/share/classes/com/sun/rmi/rmid/ExecPermission.java	2013-01-16 23:44:07.314873946 +0000
-@@ -235,7 +235,7 @@
-          * Create an empty ExecPermissionCollection.
-          */
-         public ExecPermissionCollection() {
--            permissions = new Vector<>();
-+            permissions = new Vector<Permission>();
-         }
- 
-         /**
-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-01-16 23:41:48.704634678 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/rmi/server/Activation.java	2013-01-16 23:43:38.474408088 +0000
-@@ -805,8 +805,8 @@
-         ActivationGroupDesc desc = null;
-         ActivationGroupID groupID = null;
-         long incarnation = 0;
--        Map<ActivationID,ObjectEntry> objects = new HashMap<>();
--        Set<ActivationID> restartSet = new HashSet<>();
-+        Map<ActivationID,ObjectEntry> objects = new HashMap<ActivationID,ObjectEntry>();
-+        Set<ActivationID> restartSet = new HashSet<ActivationID>();
- 
-         transient ActivationInstantiator group = null;
-         transient int status = NORMAL;
-@@ -1359,7 +1359,7 @@
-         cmdenv = desc.getCommandEnvironment();
- 
-         // argv is the literal command to exec
--        List<String> argv = new ArrayList<>();
-+        List<String> argv = new ArrayList<String>();
- 
-         // Command name/path
-         argv.add((cmdenv != null && cmdenv.getCommandPath() != null)
-@@ -1964,7 +1964,7 @@
-             }
- 
-             String log = null;
--            List<String> childArgs = new ArrayList<>();
-+            List<String> childArgs = new ArrayList<String>();
- 
-             /*
-              * Parse arguments
-diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/proxy/CGIHandler.java openjdk-boot/jdk/src/share/classes/sun/rmi/transport/proxy/CGIHandler.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/proxy/CGIHandler.java	2013-01-16 23:36:11.307204093 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/rmi/transport/proxy/CGIHandler.java	2013-01-16 23:43:11.741976248 +0000
-@@ -116,7 +116,7 @@
-     /* construct table mapping command strings to handlers */
-     private static Hashtable<String, CGICommandHandler> commandLookup;
-     static {
--        commandLookup = new Hashtable<>();
-+        commandLookup = new Hashtable<String, CGICommandHandler>();
-         for (int i = 0; i < commands.length; ++ i)
-             commandLookup.put(commands[i].getName(), commands[i]);
-     }
--- a/patches/boot/ecj-multicatch.patch	Thu Mar 28 00:18:00 2013 +0000
+++ b/patches/boot/ecj-multicatch.patch	Thu Apr 04 22:52:56 2013 +0100
@@ -1,6 +1,6 @@
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/io/PrintStream.java openjdk-boot/jdk/src/share/classes/java/io/PrintStream.java
---- openjdk-boot.orig/jdk/src/share/classes/java/io/PrintStream.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/java/io/PrintStream.java	2012-11-30 14:51:29.846368398 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/java/io/PrintStream.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/io/PrintStream.java	2013-04-04 13:42:21.263677653 +0100
 @@ -91,7 +91,10 @@
          requireNonNull(csn, "charsetName");
          try {
@@ -14,8 +14,8 @@
              throw new UnsupportedEncodingException(csn);
          }
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/io/PrintWriter.java openjdk-boot/jdk/src/share/classes/java/io/PrintWriter.java
---- openjdk-boot.orig/jdk/src/share/classes/java/io/PrintWriter.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/java/io/PrintWriter.java	2012-11-30 14:51:29.858368581 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/java/io/PrintWriter.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/io/PrintWriter.java	2013-04-04 13:42:21.275677843 +0100
 @@ -85,7 +85,10 @@
          Objects.requireNonNull(csn, "charsetName");
          try {
@@ -28,9 +28,86 @@
              // UnsupportedEncodingException should be thrown
              throw new UnsupportedEncodingException(csn);
          }
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/BoundMethodHandle.java openjdk-boot/jdk/src/share/classes/java/lang/invoke/BoundMethodHandle.java
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/BoundMethodHandle.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/BoundMethodHandle.java	2013-04-04 13:42:21.315678473 +0100
+@@ -747,7 +747,9 @@
+             Class<?> fieldType = Wrapper.forBasicType(types.charAt(index)).primitiveType();
+             try {
+                 return LOOKUP.findGetter(cbmhClass, fieldName, fieldType);
+-            } catch (NoSuchFieldException | IllegalAccessException e) {
++            } catch (NoSuchFieldException e) {
++                throw newInternalError(e);
++            } catch (IllegalAccessException e) {
+                 throw newInternalError(e);
+             }
+         }
+@@ -801,7 +803,13 @@
+         static MethodHandle makeCbmhCtor(Class<? extends BoundMethodHandle> cbmh, String types) {
+             try {
+                 return linkConstructor(LOOKUP.findConstructor(cbmh, MethodType.fromMethodDescriptorString(makeSignature(types, true), null)));
+-            } catch (NoSuchMethodException | IllegalAccessException | IllegalArgumentException | TypeNotPresentException e) {
++            } catch (NoSuchMethodException e) {
++                throw newInternalError(e);
++            } catch (IllegalAccessException e) {
++                throw newInternalError(e);
++            } catch (IllegalArgumentException e) {
++                throw newInternalError(e);
++            } catch (TypeNotPresentException e) {
+                 throw newInternalError(e);
+             }
+         }
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/LambdaForm.java openjdk-boot/jdk/src/share/classes/java/lang/invoke/LambdaForm.java
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/LambdaForm.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/LambdaForm.java	2013-04-04 13:42:21.323678600 +0100
+@@ -456,9 +456,11 @@
+                 traceInterpreter("compileToBytecode", this);
+             isCompiled = true;
+             return vmentry;
+-        } catch (Error | Exception ex) {
++        } catch (Error ex) {
+             throw newInternalError(this.toString(), ex);
+-        }
++        } catch (Exception ex) {
++            throw newInternalError(this.toString(), ex);
++	}
+     }
+ 
+     private static final ConcurrentHashMap<String,LambdaForm> PREPARED_FORMS;
+@@ -1548,9 +1550,11 @@
+             MemberName zmem = new MemberName(LambdaForm.class, "zero"+bt, MethodType.methodType(wrap.primitiveType()), REF_invokeStatic);
+             try {
+                 zmem = IMPL_NAMES.resolveOrFail(REF_invokeStatic, zmem, null, NoSuchMethodException.class);
+-            } catch (IllegalAccessException|NoSuchMethodException ex) {
++            } catch (IllegalAccessException ex) {
+                 throw newInternalError(ex);
+-            }
++            } catch (NoSuchMethodException ex) {
++                throw newInternalError(ex);
++	    }
+             NamedFunction zcon = new NamedFunction(zmem);
+             Name n = new Name(zcon).newIndex(0);
+             assert(n.type == ALL_TYPES.charAt(tn));
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/MethodHandleNatives.java openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandleNatives.java
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/MethodHandleNatives.java	2013-04-04 13:34:02.223748460 +0100
++++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandleNatives.java	2013-04-04 13:42:21.323678600 +0100
+@@ -263,7 +263,12 @@
+                     continue;
+                 }
+                 throw new InternalError(err);
+-            } catch (NoSuchFieldException | IllegalAccessException ex) {
++            } catch (NoSuchFieldException ex) {
++                String err = (name+": JVM has "+vmval+" which Java does not define");
++                // ignore exotic ops the JVM cares about; we just wont issue them
++                //System.err.println("warning: "+err);
++                continue;
++            } catch (IllegalAccessException ex) {
+                 String err = (name+": JVM has "+vmval+" which Java does not define");
+                 // ignore exotic ops the JVM cares about; we just wont issue them
+                 //System.err.println("warning: "+err);
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/management/ManagementFactory.java openjdk-boot/jdk/src/share/classes/java/lang/management/ManagementFactory.java
---- openjdk-boot.orig/jdk/src/share/classes/java/lang/management/ManagementFactory.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/java/lang/management/ManagementFactory.java	2012-11-30 14:51:29.858368581 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/management/ManagementFactory.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/lang/management/ManagementFactory.java	2013-04-04 13:42:21.279677906 +0100
 @@ -606,7 +606,9 @@
              // create an MXBean proxy
              return JMX.newMXBeanProxy(connection, objName, mxbeanInterface,
@@ -43,8 +120,8 @@
          }
      }
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/Formatter.java openjdk-boot/jdk/src/share/classes/java/util/Formatter.java
---- openjdk-boot.orig/jdk/src/share/classes/java/util/Formatter.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/java/util/Formatter.java	2012-11-30 14:51:29.858368581 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/Formatter.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/util/Formatter.java	2013-04-04 13:42:21.283677969 +0100
 @@ -1857,7 +1857,10 @@
          Objects.requireNonNull(csn, "charsetName");
          try {
@@ -57,37 +134,9 @@
              // UnsupportedEncodingException should be thrown
              throw new UnsupportedEncodingException(csn);
          }
-diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/HashMap.java openjdk-boot/jdk/src/share/classes/java/util/HashMap.java
---- openjdk-boot.orig/jdk/src/share/classes/java/util/HashMap.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/java/util/HashMap.java	2012-11-30 14:51:29.862368643 +0000
-@@ -236,7 +236,9 @@
-                 UNSAFE = sun.misc.Unsafe.getUnsafe();
-                 HASHSEED_OFFSET = UNSAFE.objectFieldOffset(
-                     HashMap.class.getDeclaredField("hashSeed"));
--            } catch (NoSuchFieldException | SecurityException e) {
-+            } catch (NoSuchFieldException e ) {
-+                throw new Error("Failed to record hashSeed offset", e);
-+            } catch (SecurityException e) {
-                 throw new Error("Failed to record hashSeed offset", e);
-             }
-         }
-diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/Hashtable.java openjdk-boot/jdk/src/share/classes/java/util/Hashtable.java
---- openjdk-boot.orig/jdk/src/share/classes/java/util/Hashtable.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/java/util/Hashtable.java	2012-11-30 14:51:29.862368643 +0000
-@@ -234,7 +234,9 @@
-             UNSAFE = sun.misc.Unsafe.getUnsafe();
-             HASHSEED_OFFSET = UNSAFE.objectFieldOffset(
-                 Hashtable.class.getDeclaredField("hashSeed"));
--        } catch (NoSuchFieldException | SecurityException e) {
-+        } catch (NoSuchFieldException e) {
-+            throw new Error("Failed to record hashSeed offset", e);
-+        } catch (SecurityException e) {
-             throw new Error("Failed to record hashSeed offset", e);
-         }
-      }
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/Scanner.java openjdk-boot/jdk/src/share/classes/java/util/Scanner.java
---- openjdk-boot.orig/jdk/src/share/classes/java/util/Scanner.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/java/util/Scanner.java	2012-11-30 14:51:29.858368581 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/Scanner.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/util/Scanner.java	2013-04-04 13:42:21.299678221 +0100
 @@ -633,7 +633,10 @@
          Objects.requireNonNull(csn, "charsetName");
          try {
@@ -112,9 +161,9 @@
          }
      }
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/invoke/util/ValueConversions.java openjdk-boot/jdk/src/share/classes/sun/invoke/util/ValueConversions.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/invoke/util/ValueConversions.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/invoke/util/ValueConversions.java	2012-11-30 14:54:56.693599035 +0000
-@@ -474,7 +474,9 @@
+--- openjdk-boot.orig/jdk/src/share/classes/sun/invoke/util/ValueConversions.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/invoke/util/ValueConversions.java	2013-04-04 13:42:21.303678284 +0100
+@@ -482,7 +482,9 @@
              FILL_NEW_TYPED_ARRAY = IMPL_LOOKUP
                      .findStatic(THIS_CLASS, "fillNewTypedArray",
                            MethodType.methodType(Object[].class, Object[].class, Integer.class, Object[].class));
@@ -125,9 +174,89 @@
              throw newInternalError("uncaught exception", ex);
          }
      }
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/rmi/server/ActivationGroupImpl.java openjdk-boot/jdk/src/share/classes/sun/rmi/server/ActivationGroupImpl.java
+--- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/server/ActivationGroupImpl.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/rmi/server/ActivationGroupImpl.java	2013-04-04 13:42:21.327678663 +0100
+@@ -296,7 +296,16 @@
+             active.put(id, entry);
+             return entry.mobj;
+ 
+-        } catch (NoSuchMethodException | NoSuchMethodError e) {
++        } catch (NoSuchMethodException e) {
++            /* user forgot to provide activatable constructor?
++             * or code recompiled and user forgot to provide
++             *  activatable constructor?
++             */
++            throw new ActivationException
++                ("Activatable object must provide an activation"+
++                 " constructor", e );
++
++        } catch (NoSuchMethodError e) {
+             /* user forgot to provide activatable constructor?
+              * or code recompiled and user forgot to provide
+              *  activatable constructor?
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/rmi/server/LoaderHandler.java openjdk-boot/jdk/src/share/classes/sun/rmi/server/LoaderHandler.java
+--- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/server/LoaderHandler.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/rmi/server/LoaderHandler.java	2013-04-04 13:42:21.327678663 +0100
+@@ -261,11 +261,14 @@
+ 
+                     annotation = urlsToPath(urls);
+                 }
+-            } catch (SecurityException | IOException e) {
++            } catch (SecurityException e) {
+                 /*
+                  * SecurityException: If access was denied to the knowledge of
+                  * the class loader's URLs, fall back to the default behavior.
+                  *
++		 */
++            } catch (IOException e) {
++                /*
+                  * IOException: This shouldn't happen, although it is declared
+                  * to be thrown by openConnection() and getPermission().  If it
+                  * does happen, forget about this class loader's URLs and
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/proxy/RMIMasterSocketFactory.java openjdk-boot/jdk/src/share/classes/sun/rmi/transport/proxy/RMIMasterSocketFactory.java
+--- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/proxy/RMIMasterSocketFactory.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/rmi/transport/proxy/RMIMasterSocketFactory.java	2013-04-04 13:42:21.331678726 +0100
+@@ -208,7 +208,9 @@
+ 
+             return initialSocket;
+ 
+-        } catch (UnknownHostException | NoRouteToHostException e) {
++        } catch (UnknownHostException e) {
++            initialFailure = e;
++        } catch (NoRouteToHostException e) {
+             initialFailure = e;
+         } catch (SocketException e) {
+             if (eagerHttpFallback) {
+@@ -273,7 +275,9 @@
+                 }
+                 // if connector ever does get socket, it won't be used
+                 connector.notUsed();
+-            } catch (UnknownHostException | NoRouteToHostException e) {
++            } catch (UnknownHostException e) {
++                initialFailure = e;
++            } catch (NoRouteToHostException e) {
+                 initialFailure = e;
+             } catch (SocketException e) {
+                 if (eagerHttpFallback) {
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/tcp/TCPEndpoint.java openjdk-boot/jdk/src/share/classes/sun/rmi/transport/tcp/TCPEndpoint.java
+--- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/tcp/TCPEndpoint.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/rmi/transport/tcp/TCPEndpoint.java	2013-04-04 13:42:21.335678789 +0100
+@@ -623,7 +623,10 @@
+             try {
+                 TCPEndpoint.shedConnectionCaches();
+                 // REMIND: should we retry createSocket?
+-            } catch (OutOfMemoryError | Exception mem) {
++            } catch (OutOfMemoryError mem) {
++                // don't quit if out of memory
++                // or shed fails non-catastrophically
++            } catch (Exception mem) {
+                 // don't quit if out of memory
+                 // or shed fails non-catastrophically
+             }
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/PAData.java openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/PAData.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/PAData.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/PAData.java	2012-11-30 14:51:29.858368581 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/PAData.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/PAData.java	2013-04-04 13:42:21.303678284 +0100
 @@ -280,7 +280,9 @@
                                      .append(info.getSalt())
                                      .append('\n');
@@ -151,8 +280,8 @@
                      }
                  }
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/util/UntrustedCertificates.java openjdk-boot/jdk/src/share/classes/sun/security/util/UntrustedCertificates.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/util/UntrustedCertificates.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/security/util/UntrustedCertificates.java	2012-11-30 14:51:29.862368643 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/util/UntrustedCertificates.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/util/UntrustedCertificates.java	2013-04-04 13:42:21.307678347 +0100
 @@ -65,7 +65,10 @@
                  throw new RuntimeException("Duplicate untrusted certificate: " +
                      cert.getSubjectX500Principal());
@@ -166,9 +295,9 @@
                          "Incorrect untrusted certificate: " + alias, e);
          }
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/text/bidi/BidiBase.java openjdk-boot/jdk/src/share/classes/sun/text/bidi/BidiBase.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/text/bidi/BidiBase.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/text/bidi/BidiBase.java	2012-11-30 14:51:29.858368581 +0000
-@@ -3479,7 +3479,9 @@
+--- openjdk-boot.orig/jdk/src/share/classes/sun/text/bidi/BidiBase.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/text/bidi/BidiBase.java	2013-04-04 13:42:21.311678410 +0100
+@@ -3478,7 +3478,9 @@
              try {
                  Field f = clazz.getField(name);
                  return f.get(null);
@@ -180,8 +309,8 @@
              }
          }
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/tools/jcmd/JCmd.java openjdk-boot/jdk/src/share/classes/sun/tools/jcmd/JCmd.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/tools/jcmd/JCmd.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/tools/jcmd/JCmd.java	2012-11-30 14:51:29.862368643 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/sun/tools/jcmd/JCmd.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/tools/jcmd/JCmd.java	2013-04-04 13:42:21.311678410 +0100
 @@ -94,7 +94,7 @@
                          && mainClass.indexOf(arg.getProcessSubstring()) != -1) {
                              pids.add(vmd.id());
@@ -226,8 +355,8 @@
  
      private static String getMainClass(VirtualMachineDescriptor vmd)
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/tools/jconsole/Resources.java openjdk-boot/jdk/src/share/classes/sun/tools/jconsole/Resources.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/tools/jconsole/Resources.java	2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/tools/jconsole/Resources.java	2012-11-30 14:51:29.862368643 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/sun/tools/jconsole/Resources.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/tools/jconsole/Resources.java	2013-04-04 13:42:21.315678473 +0100
 @@ -129,7 +129,9 @@
      private static void setFieldValue(Field field, String value) {
          try {
@@ -258,160 +387,17 @@
              // Missing VK is okay
              return 0;
          }
-diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/BoundMethodHandle.java openjdk-boot/jdk/src/share/classes/java/lang/invoke/BoundMethodHandle.java
---- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/BoundMethodHandle.java	2012-11-30 17:41:36.097551748 +0000
-+++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/BoundMethodHandle.java	2012-11-30 17:40:44.604709097 +0000
-@@ -747,7 +747,9 @@
-             Class<?> fieldType = Wrapper.forBasicType(types.charAt(index)).primitiveType();
-             try {
-                 return LOOKUP.findGetter(cbmhClass, fieldName, fieldType);
--            } catch (NoSuchFieldException | IllegalAccessException e) {
-+            } catch (NoSuchFieldException e) {
-+                throw newInternalError(e);
-+            } catch (IllegalAccessException e) {
-                 throw newInternalError(e);
-             }
-         }
-@@ -801,7 +803,13 @@
-         static MethodHandle makeCbmhCtor(Class<? extends BoundMethodHandle> cbmh, String types) {
-             try {
-                 return linkConstructor(LOOKUP.findConstructor(cbmh, MethodType.fromMethodDescriptorString(makeSignature(types, true), null)));
--            } catch (NoSuchMethodException | IllegalAccessException | IllegalArgumentException | TypeNotPresentException e) {
-+            } catch (NoSuchMethodException e) {
-+                throw newInternalError(e);
-+            } catch (IllegalAccessException e) {
-+                throw newInternalError(e);
-+            } catch (IllegalArgumentException e) {
-+                throw newInternalError(e);
-+            } catch (TypeNotPresentException e) {
-                 throw newInternalError(e);
-             }
-         }
-diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/LambdaForm.java openjdk-boot/jdk/src/share/classes/java/lang/invoke/LambdaForm.java
---- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/LambdaForm.java	2012-11-30 17:37:04.389140174 +0000
-+++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/LambdaForm.java	2012-11-30 17:37:48.621857219 +0000
-@@ -456,9 +456,11 @@
-                 traceInterpreter("compileToBytecode", this);
-             isCompiled = true;
-             return vmentry;
--        } catch (Error | Exception ex) {
-+        } catch (Error ex) {
-             throw newInternalError(this.toString(), ex);
--        }
-+        } catch (Exception ex) {
-+            throw newInternalError(this.toString(), ex);
-+	}
-     }
- 
-     private static final ConcurrentHashMap<String,LambdaForm> PREPARED_FORMS;
-@@ -1546,9 +1548,11 @@
-             MemberName zmem = new MemberName(LambdaForm.class, "zero"+bt, MethodType.methodType(wrap.primitiveType()), REF_invokeStatic);
-             try {
-                 zmem = IMPL_NAMES.resolveOrFail(REF_invokeStatic, zmem, null, NoSuchMethodException.class);
--            } catch (IllegalAccessException|NoSuchMethodException ex) {
-+            } catch (IllegalAccessException ex) {
-                 throw newInternalError(ex);
--            }
-+            } catch (NoSuchMethodException ex) {
-+                throw newInternalError(ex);
-+	    }
-             NamedFunction zcon = new NamedFunction(zmem);
-             Name n = new Name(zcon).newIndex(0);
-             assert(n.type == ALL_TYPES.charAt(tn));
-diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/MethodHandleNatives.java openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandleNatives.java
---- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/MethodHandleNatives.java	2012-11-30 17:38:44.434761848 +0000
-+++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandleNatives.java	2012-11-30 17:39:19.443329202 +0000
-@@ -263,7 +263,12 @@
-                     continue;
-                 }
-                 throw new InternalError(err);
--            } catch (NoSuchFieldException | IllegalAccessException ex) {
-+            } catch (NoSuchFieldException ex) {
-+                String err = (name+": JVM has "+vmval+" which Java does not define");
-+                // ignore exotic ops the JVM cares about; we just wont issue them
-+                //System.err.println("warning: "+err);
-+                continue;
-+            } catch (IllegalAccessException ex) {
-                 String err = (name+": JVM has "+vmval+" which Java does not define");
-                 // ignore exotic ops the JVM cares about; we just wont issue them
-                 //System.err.println("warning: "+err);
-diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/rmi/server/ActivationGroupImpl.java openjdk-boot/jdk/src/share/classes/sun/rmi/server/ActivationGroupImpl.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/server/ActivationGroupImpl.java	2013-01-16 03:05:55.869280923 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/rmi/server/ActivationGroupImpl.java	2013-01-16 03:07:23.334672142 +0000
-@@ -296,7 +296,16 @@
-             active.put(id, entry);
-             return entry.mobj;
- 
--        } catch (NoSuchMethodException | NoSuchMethodError e) {
-+        } catch (NoSuchMethodException e) {
-+            /* user forgot to provide activatable constructor?
-+             * or code recompiled and user forgot to provide
-+             *  activatable constructor?
-+             */
-+            throw new ActivationException
-+                ("Activatable object must provide an activation"+
-+                 " constructor", e );
-+
-+        } catch (NoSuchMethodError e) {
-             /* user forgot to provide activatable constructor?
-              * or code recompiled and user forgot to provide
-              *  activatable constructor?
-diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/rmi/server/LoaderHandler.java openjdk-boot/jdk/src/share/classes/sun/rmi/server/LoaderHandler.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/server/LoaderHandler.java	2013-01-16 03:05:55.877281050 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/rmi/server/LoaderHandler.java	2013-01-16 13:56:44.714207763 +0000
-@@ -261,11 +261,14 @@
- 
-                     annotation = urlsToPath(urls);
-                 }
--            } catch (SecurityException | IOException e) {
-+            } catch (SecurityException e) {
-                 /*
-                  * SecurityException: If access was denied to the knowledge of
-                  * the class loader's URLs, fall back to the default behavior.
-                  *
-+		 */
-+            } catch (IOException e) {
-+                /*
-                  * IOException: This shouldn't happen, although it is declared
-                  * to be thrown by openConnection() and getPermission().  If it
-                  * does happen, forget about this class loader's URLs and
-diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/proxy/RMIMasterSocketFactory.java openjdk-boot/jdk/src/share/classes/sun/rmi/transport/proxy/RMIMasterSocketFactory.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/proxy/RMIMasterSocketFactory.java	2013-01-16 03:05:55.885281177 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/rmi/transport/proxy/RMIMasterSocketFactory.java	2013-01-16 03:08:26.639679256 +0000
-@@ -208,7 +208,9 @@
- 
-             return initialSocket;
- 
--        } catch (UnknownHostException | NoRouteToHostException e) {
-+        } catch (UnknownHostException e) {
-+            initialFailure = e;
-+        } catch (NoRouteToHostException e) {
-             initialFailure = e;
-         } catch (SocketException e) {
-             if (eagerHttpFallback) {
-@@ -273,7 +275,9 @@
-                 }
-                 // if connector ever does get socket, it won't be used
-                 connector.notUsed();
--            } catch (UnknownHostException | NoRouteToHostException e) {
-+            } catch (UnknownHostException e) {
-+                initialFailure = e;
-+            } catch (NoRouteToHostException e) {
-                 initialFailure = e;
-             } catch (SocketException e) {
-                 if (eagerHttpFallback) {
-diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/tcp/TCPEndpoint.java openjdk-boot/jdk/src/share/classes/sun/rmi/transport/tcp/TCPEndpoint.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/tcp/TCPEndpoint.java	2013-01-16 03:05:55.893281305 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/rmi/transport/tcp/TCPEndpoint.java	2013-01-16 13:53:13.570765705 +0000
-@@ -623,7 +623,10 @@
-             try {
-                 TCPEndpoint.shedConnectionCaches();
-                 // REMIND: should we retry createSocket?
--            } catch (OutOfMemoryError | Exception mem) {
-+            } catch (OutOfMemoryError mem) {
-+                // don't quit if out of memory
-+                // or shed fails non-catastrophically
-+            } catch (Exception mem) {
-                 // don't quit if out of memory
-                 // or shed fails non-catastrophically
-             }
+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-04-04 18:27:48.018006729 +0100
++++ openjdk-boot/jdk/src/share/classes/java/lang/reflect/Proxy.java	2013-04-04 18:28:12.750398303 +0100
+@@ -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();
--- a/patches/boot/ecj-stringswitch.patch	Thu Mar 28 00:18:00 2013 +0000
+++ b/patches/boot/ecj-stringswitch.patch	Thu Apr 04 22:52:56 2013 +0100
@@ -1,6 +1,6 @@
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/ClassReader.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/ClassReader.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/ClassReader.java	2013-01-14 15:01:29.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/ClassReader.java	2013-01-16 02:09:26.099209245 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/ClassReader.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/ClassReader.java	2013-04-04 13:22:25.036506097 +0100
 @@ -350,19 +350,16 @@
              if (attrCommands != null) {
                  Object lkey = Attribute.keyForLookup(ctype, name);
@@ -32,8 +32,8 @@
              // Find canonical instance of the requested attribute.
              Attribute a = Attribute.lookup(Package.attrDefs, ctype, name);
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java	2013-01-14 15:01:29.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java	2013-01-16 02:09:26.107209374 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java	2013-04-04 13:22:25.048506291 +0100
 @@ -73,16 +73,14 @@
          {
              // Non-standard, undocumented "--unpack" switch enables unpack mode.
@@ -91,8 +91,8 @@
  
          if (logFile != null && !logFile.equals("")) {
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Package.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Package.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Package.java	2013-01-14 15:01:29.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Package.java	2013-01-16 02:09:26.111209439 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Package.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Package.java	2013-04-04 13:22:25.052506355 +0100
 @@ -1116,30 +1116,25 @@
          // what is one of { Debug, Compile, Constant, Exceptions, InnerClasses }
          if (verbose > 0)
@@ -144,8 +144,8 @@
      }
  
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/security/ntlm/NTLM.java openjdk-boot/jdk/src/share/classes/com/sun/security/ntlm/NTLM.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/security/ntlm/NTLM.java	2013-01-14 15:01:29.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/com/sun/security/ntlm/NTLM.java	2013-01-16 02:09:26.111209439 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/security/ntlm/NTLM.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/security/ntlm/NTLM.java	2013-04-04 13:22:25.056506419 +0100
 @@ -64,17 +64,23 @@
  
      protected NTLM(String version) throws NTLMException {
@@ -182,8 +182,8 @@
              fac = SecretKeyFactory.getInstance ("DES");
              cipher = Cipher.getInstance ("DES/ECB/NoPadding");
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/MethodHandleNatives.java openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandleNatives.java
---- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/MethodHandleNatives.java	2013-01-14 15:01:29.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandleNatives.java	2013-01-16 02:15:12.124777065 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/MethodHandleNatives.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandleNatives.java	2013-04-04 13:32:45.886517863 +0100
 @@ -327,12 +327,11 @@
                                       Object[] appendixResult) {
          try {
@@ -202,15 +202,20 @@
              }
          } catch (Throwable ex) {
              if (ex instanceof LinkageError)
-@@ -395,104 +394,99 @@
+@@ -395,111 +394,106 @@
      static boolean isCallerSensitive(MemberName mem) {
-         assert(mem.isInvocable());
+         if (!mem.isInvocable())  return false;  // fields are not caller sensitive
          Class<?> defc = mem.getDeclaringClass();
 -        switch (mem.getName()) {
 -        case "doPrivileged":
+-        case "doPrivilegedWithCombiner":
 +	String memName = mem.getName();
-+	if ("doPrivileged".equals(memName)) {
++	if ("doPrivileged".equals(memName) ||
++	    "doPrivilegedWithCombiner".equals(memName)) {
              return defc == java.security.AccessController.class;
+-        case "checkMemberAccess":
++	} else if ("checkMemberAccess".equals(memName)) {
+             return canBeCalledVirtual(mem, java.lang.SecurityManager.class);
 -        case "getUnsafe":
 -            return defc == sun.misc.Unsafe.class;
 -        case "lookup":
@@ -341,7 +346,7 @@
 -            break;
 -        case "getContextClassLoader":
 +        } else if ("getContextClassLoader".equals(memName)) {
-             return defc == java.lang.Thread.class;
+             return canBeCalledVirtual(mem, java.lang.Thread.class);
 -        case "getPackage":
 -        case "getPackages":
 +        } else if ("getPackage".equals(memName) ||
@@ -367,11 +372,17 @@
 -        case "getCallerClassLoader":
 +	} else if ("getCallerClassLoader".equals(memName)) {
              return defc == java.lang.ClassLoader.class;
+-        case "registerAsParallelCapable":
++        } else if ("registerAsParallelCapable".equals(memName)) {
+             return canBeCalledVirtual(mem, java.lang.ClassLoader.class);
 -        case "getProxyClass":
 -        case "newProxyInstance":
 +        } else if ("getProxyClass".equals(memName) ||
 +		   "newProxyInstance".equals(memName)) {
              return defc == java.lang.reflect.Proxy.class;
+-        case "asInterfaceInstance":
++        } else if ("asInterfaceInstance".equals(memName)) {
+             return defc == java.lang.invoke.MethodHandleProxies.class;
 -        case "getBundle":
 -        case "clearCache":
 +        } else if ("getBundle".equals(memName) ||
@@ -380,9 +391,9 @@
          }
          return false;
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/MethodHandleProxies.java openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandleProxies.java
---- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/MethodHandleProxies.java	2013-01-14 15:01:29.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandleProxies.java	2013-01-16 02:09:26.115209504 +0000
-@@ -219,14 +219,16 @@
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/MethodHandleProxies.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandleProxies.java	2013-04-04 13:22:25.068506613 +0100
+@@ -268,14 +268,16 @@
  
      private static
      boolean isObjectMethod(Method m) {
@@ -403,7 +414,7 @@
              return (m.getReturnType() == boolean.class
                      && m.getParameterTypes().length == 1
                      && m.getParameterTypes()[0] == Object.class);
-@@ -237,12 +239,14 @@
+@@ -286,12 +288,14 @@
      private static
      Object callObjectMethod(Object self, Method m, Object[] args) {
          assert(isObjectMethod(m)) : m;
@@ -423,8 +434,8 @@
          }
          return null;
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/launcher/LauncherHelper.java openjdk-boot/jdk/src/share/classes/sun/launcher/LauncherHelper.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/launcher/LauncherHelper.java	2013-01-14 15:01:29.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/launcher/LauncherHelper.java	2013-01-16 02:09:26.115209504 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/sun/launcher/LauncherHelper.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/launcher/LauncherHelper.java	2013-04-04 13:22:25.068506613 +0100
 @@ -119,24 +119,20 @@
          String optStr = (opts.length > 1 && opts[1] != null)
                  ? opts[1].trim()
@@ -462,8 +473,8 @@
  
      /*
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/util/DisabledAlgorithmConstraints.java openjdk-boot/jdk/src/share/classes/sun/security/util/DisabledAlgorithmConstraints.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/util/DisabledAlgorithmConstraints.java	2013-01-14 15:01:29.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/security/util/DisabledAlgorithmConstraints.java	2013-01-16 02:09:26.119209568 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/util/DisabledAlgorithmConstraints.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/util/DisabledAlgorithmConstraints.java	2013-04-04 13:22:25.080506807 +0100
 @@ -378,19 +378,23 @@
              GE;         // ">="
  
--- a/patches/boot/ecj-trywithresources.patch	Thu Mar 28 00:18:00 2013 +0000
+++ b/patches/boot/ecj-trywithresources.patch	Thu Apr 04 22:52:56 2013 +0100
@@ -1,6 +1,6 @@
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/BandStructure.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/BandStructure.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/BandStructure.java	2012-07-25 18:24:09.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/BandStructure.java	2012-07-26 10:18:53.134130121 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/BandStructure.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/BandStructure.java	2013-04-04 18:02:48.742046012 +0100
 @@ -743,7 +743,9 @@
  
          private void dumpBand() throws IOException {
@@ -54,9 +54,9 @@
  
          public void readDataFrom(InputStream in) throws IOException {
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java	2012-07-26 09:59:59.666758438 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java	2012-07-26 10:18:53.154130456 +0100
-@@ -150,8 +150,13 @@
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java	2013-04-04 13:44:58.870170925 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java	2013-04-04 18:02:48.762046329 +0100
+@@ -151,8 +151,13 @@
                  if ("--config-file=".equals(state)) {
                      String propFile = av.remove(0);
                      Properties fileProps = new Properties();
@@ -71,7 +71,7 @@
                      }
                      if (engProps.get(verboseProp) != null)
                          fileProps.list(System.out);
-@@ -342,9 +347,14 @@
+@@ -343,9 +348,14 @@
                  else
                      fileOut = new FileOutputStream(outfile);
                  fileOut = new BufferedOutputStream(fileOut);
@@ -87,7 +87,7 @@
                  }
                  // At this point, we have a good jarfile (or newfile, if -r)
              }
-@@ -403,7 +413,9 @@
+@@ -407,7 +417,9 @@
          long filelen = new File(jarfile).length();
          if (filelen <= 0)  return "";
          long skiplen = Math.max(0, filelen - tail.length);
@@ -98,7 +98,7 @@
              in.skip(skiplen);
              in.read(tail);
              for (int i = tail.length-4; i >= 0; i--) {
-@@ -417,6 +429,9 @@
+@@ -421,6 +433,9 @@
                  }
              }
              return "";
@@ -109,9 +109,9 @@
      }
  
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/NativeUnpack.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/NativeUnpack.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/NativeUnpack.java	2012-07-25 18:24:09.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/NativeUnpack.java	2012-07-26 10:18:53.154130456 +0100
-@@ -241,9 +241,15 @@
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/NativeUnpack.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/NativeUnpack.java	2013-04-04 18:02:48.766046393 +0100
+@@ -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;
@@ -129,8 +129,8 @@
      }
  
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageReader.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageReader.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageReader.java	2012-07-25 18:24:09.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageReader.java	2012-07-26 10:18:53.158130522 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageReader.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageReader.java	2013-04-04 18:02:48.770046458 +0100
 @@ -540,9 +540,15 @@
              Index index = initCPIndex(tag, cpMap);
  
@@ -174,8 +174,8 @@
          attr_definition_name.doneDisbursing();
          attr_definition_layout.doneDisbursing();
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageWriter.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageWriter.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageWriter.java	2012-07-25 18:24:09.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageWriter.java	2012-07-26 10:18:53.158130522 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageWriter.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageWriter.java	2013-04-04 18:02:48.782046647 +0100
 @@ -458,9 +458,15 @@
                  Utils.log.info("Writing "+cpMap.length+" "+ConstantPool.tagName(tag)+" entries...");
  
@@ -193,7 +193,7 @@
              }
  
              switch (tag) {
-@@ -921,9 +927,10 @@
+@@ -923,9 +929,10 @@
              }
          });
          attrDefsWritten = new Attribute.Layout[numAttrDefs];
@@ -207,7 +207,7 @@
              int[] indexForDebug = Arrays.copyOf(attrIndexLimit, ATTR_CONTEXT_LIMIT);
              for (int i = 0; i < defs.length; i++) {
                  int header = ((Integer)defs[i][0]).intValue();
-@@ -949,6 +956,10 @@
+@@ -951,6 +958,10 @@
                  }
              }
          }
@@ -219,9 +219,9 @@
  
      void writeAttrCounts() throws IOException {
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PropMap.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PropMap.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PropMap.java	2012-07-25 18:24:09.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PropMap.java	2012-07-26 10:18:53.158130522 +0100
-@@ -122,8 +122,9 @@
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PropMap.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PropMap.java	2013-04-04 18:02:48.790046774 +0100
+@@ -123,8 +123,9 @@
          // Do this after the previous props are put in place,
          // to allow override if necessary.
          String propFile = "intrinsic.properties";
@@ -233,7 +233,7 @@
              if (propStr == null) {
                  throw new RuntimeException(propFile + " cannot be loaded");
              }
-@@ -131,6 +132,14 @@
+@@ -132,6 +133,14 @@
          } catch (IOException ee) {
              throw new RuntimeException(ee);
          }
@@ -249,9 +249,9 @@
          for (Map.Entry<Object, Object> e : props.entrySet()) {
              String key = (String) e.getKey();
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/UnpackerImpl.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/UnpackerImpl.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/UnpackerImpl.java	2012-07-25 18:24:09.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/UnpackerImpl.java	2012-07-26 10:18:53.158130522 +0100
-@@ -160,9 +160,15 @@
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/UnpackerImpl.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/UnpackerImpl.java	2013-04-04 18:02:48.794046838 +0100
+@@ -161,9 +161,15 @@
          }
          // Use the stream-based implementation.
          // %%% Reconsider if native unpacker learns to memory-map the file.
@@ -269,8 +269,8 @@
              in.delete();
          }
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Utils.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Utils.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Utils.java	2012-07-25 18:24:09.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Utils.java	2012-07-26 10:18:53.158130522 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Utils.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Utils.java	2013-04-04 18:02:48.798046900 +0100
 @@ -268,18 +268,30 @@
          // 4947205 : Peformance is slow when using pack-effort=0
          out = new BufferedOutputStream(out);
@@ -304,9 +304,30 @@
      }
          // Wrapper to prevent closing of client-supplied stream.
      static private
+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-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandleImpl.java	2013-04-04 18:02:48.882048233 +0100
+@@ -909,10 +909,15 @@
+                             java.net.URLConnection uconn = tClass.getResource(tResource).openConnection();
+                             int len = uconn.getContentLength();
+                             byte[] bytes = new byte[len];
+-                            try (java.io.InputStream str = uconn.getInputStream()) {
++			    java.io.InputStream str = null;
++                            try {
++			        str = uconn.getInputStream();
+                                 int nr = str.read(bytes);
+                                 if (nr != len)  throw new java.io.IOException(tResource);
+-                            }
++                            } finally {
++			      if (str != null)
++				str.close();
++			    }
+                             values[0] = bytes;
+                         } catch (java.io.IOException ex) {
+                             throw newInternalError(ex);
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/Package.java openjdk-boot/jdk/src/share/classes/java/lang/Package.java
---- openjdk-boot.orig/jdk/src/share/classes/java/lang/Package.java	2012-07-25 18:24:09.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/lang/Package.java	2012-07-26 10:18:53.158130522 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/Package.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/lang/Package.java	2013-04-04 18:02:48.798046900 +0100
 @@ -575,12 +575,23 @@
       * Returns the Manifest for the specified JAR file name.
       */
@@ -335,8 +356,8 @@
      }
  
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/nio/channels/SocketChannel.java openjdk-boot/jdk/src/share/classes/java/nio/channels/SocketChannel.java
---- openjdk-boot.orig/jdk/src/share/classes/java/nio/channels/SocketChannel.java	2012-07-25 18:24:09.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/nio/channels/SocketChannel.java	2012-07-26 10:18:53.158130522 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/nio/channels/SocketChannel.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/nio/channels/SocketChannel.java	2013-04-04 18:02:48.802046964 +0100
 @@ -188,7 +188,7 @@
              } catch (Throwable suppressed) {
                  x.addSuppressed(suppressed);
@@ -347,8 +368,8 @@
          assert sc.isConnected();
          return sc;
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/nio/file/CopyMoveHelper.java openjdk-boot/jdk/src/share/classes/java/nio/file/CopyMoveHelper.java
---- openjdk-boot.orig/jdk/src/share/classes/java/nio/file/CopyMoveHelper.java	2012-07-25 18:24:09.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/nio/file/CopyMoveHelper.java	2012-07-26 10:18:53.158130522 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/nio/file/CopyMoveHelper.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/nio/file/CopyMoveHelper.java	2013-04-04 18:02:48.810047091 +0100
 @@ -122,9 +122,15 @@
          if (attrs.isDirectory()) {
              Files.createDirectory(target);
@@ -376,8 +397,8 @@
          }
      }
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/nio/file/Files.java openjdk-boot/jdk/src/share/classes/java/nio/file/Files.java
---- openjdk-boot.orig/jdk/src/share/classes/java/nio/file/Files.java	2012-07-25 18:24:09.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/nio/file/Files.java	2012-07-26 10:18:53.158130522 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/nio/file/Files.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/nio/file/Files.java	2013-04-04 18:02:48.814047155 +0100
 @@ -2839,8 +2839,11 @@
          }
  
@@ -491,8 +512,8 @@
      }
  }
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/Currency.java openjdk-boot/jdk/src/share/classes/java/util/Currency.java
---- openjdk-boot.orig/jdk/src/share/classes/java/util/Currency.java	2012-07-25 18:24:09.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/util/Currency.java	2012-07-26 10:18:53.158130522 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/Currency.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/util/Currency.java	2013-04-04 18:02:48.818047217 +0100
 @@ -233,9 +233,14 @@
                                               "currency.properties");
                      if (propFile.exists()) {
@@ -510,47 +531,28 @@
                          Pattern propertiesPattern =
                              Pattern.compile("([A-Z]{3})\\s*,\\s*(\\d{3})\\s*,\\s*([0-3])");
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/jar/JarFile.java openjdk-boot/jdk/src/share/classes/java/util/jar/JarFile.java
---- openjdk-boot.orig/jdk/src/share/classes/java/util/jar/JarFile.java	2012-07-25 18:24:09.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/util/jar/JarFile.java	2012-07-26 10:18:53.158130522 +0100
-@@ -376,9 +376,15 @@
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/jar/JarFile.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/util/jar/JarFile.java	2013-04-04 18:09:37.416514491 +0100
+@@ -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 {
-+            is = new DataInputStream(super.getInputStream(ze));
-             is.readFully(b, 0, b.length);
-         }
-+        finally {
-+            if (is != null)
-+                is.close();
-+        }
-         return b;
+-        try (InputStream is = super.getInputStream(ze)) {
++	InputStream is = null;
++	try {
++	    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:
+     /**
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/javax/sql/rowset/serial/SerialClob.java openjdk-boot/jdk/src/share/classes/javax/sql/rowset/serial/SerialClob.java
---- openjdk-boot.orig/jdk/src/share/classes/javax/sql/rowset/serial/SerialClob.java	2012-07-25 18:24:09.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/javax/sql/rowset/serial/SerialClob.java	2012-07-26 10:18:53.158130522 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/javax/sql/rowset/serial/SerialClob.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/javax/sql/rowset/serial/SerialClob.java	2013-04-04 18:02:48.830047408 +0100
 @@ -144,8 +144,9 @@
          buf = new char[(int)len];
          int read = 0;
@@ -610,8 +612,8 @@
      }
  
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/javax/sql/rowset/spi/SyncFactory.java openjdk-boot/jdk/src/share/classes/javax/sql/rowset/spi/SyncFactory.java
---- openjdk-boot.orig/jdk/src/share/classes/javax/sql/rowset/spi/SyncFactory.java	2012-07-25 18:24:09.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/javax/sql/rowset/spi/SyncFactory.java	2012-07-26 10:18:53.158130522 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/javax/sql/rowset/spi/SyncFactory.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/javax/sql/rowset/spi/SyncFactory.java	2013-04-04 18:02:48.834047471 +0100
 @@ -367,9 +367,15 @@
                      // Load user's implementation of SyncProvider
                      // here. -Drowset.properties=/abc/def/pqr.txt
@@ -653,9 +655,34 @@
                  }
  
                  parseProperties(properties);
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/launcher/LauncherHelper.java openjdk-boot/jdk/src/share/classes/sun/launcher/LauncherHelper.java
+--- openjdk-boot.orig/jdk/src/share/classes/sun/launcher/LauncherHelper.java	2013-04-04 13:44:58.878171052 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/launcher/LauncherHelper.java	2013-04-04 18:02:48.878048169 +0100
+@@ -555,8 +555,9 @@
+                 if (parent == null) {
+                     parent = new File(".");
+                 }
+-                try (DirectoryStream<Path> dstream =
+-                        Files.newDirectoryStream(parent.toPath(), glob)) {
++                DirectoryStream<Path> dstream = null;
++                try {
++                    dstream = Files.newDirectoryStream(parent.toPath(), glob);
+                     int entries = 0;
+                     for (Path p : dstream) {
+                         out.add(p.normalize().toString());
+@@ -571,6 +572,9 @@
+                         System.err.println("Warning: passing argument as-is " + a);
+                         System.err.print(e);
+                     }
++                } finally {
++                    if (dstream != null)
++                        try { dstream.close(); } catch (IOException e) {}
+                 }
+             } else {
+                 out.add(a.arg);
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/net/www/protocol/jar/URLJarFile.java openjdk-boot/jdk/src/share/classes/sun/net/www/protocol/jar/URLJarFile.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/net/www/protocol/jar/URLJarFile.java	2012-07-25 18:24:09.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/net/www/protocol/jar/URLJarFile.java	2012-07-26 10:18:53.158130522 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/net/www/protocol/jar/URLJarFile.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/net/www/protocol/jar/URLJarFile.java	2013-04-04 18:02:48.834047471 +0100
 @@ -194,7 +194,8 @@
       * Given a URL, retrieves a JAR file, caches it to disk, and creates a
       * cached JAR file object.
@@ -689,8 +716,8 @@
                          }
                      });
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/nio/fs/PollingWatchService.java openjdk-boot/jdk/src/share/classes/sun/nio/fs/PollingWatchService.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/nio/fs/PollingWatchService.java	2012-07-25 18:24:09.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/nio/fs/PollingWatchService.java	2012-07-26 10:18:53.158130522 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/nio/fs/PollingWatchService.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/nio/fs/PollingWatchService.java	2013-04-04 18:02:48.838047534 +0100
 @@ -255,7 +255,9 @@
              this.entries = new HashMap<Path,CacheEntry>();
  
@@ -713,9 +740,151 @@
              }
          }
  
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/print/PSPrinterJob.java openjdk-boot/jdk/src/share/classes/sun/print/PSPrinterJob.java
+--- openjdk-boot.orig/jdk/src/share/classes/sun/print/PSPrinterJob.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/print/PSPrinterJob.java	2013-04-04 18:02:48.886048296 +0100
+@@ -680,25 +680,38 @@
+ 
+         private void handleProcessFailure(final Process failedProcess,
+                 final String[] execCmd, final int result) throws IOException {
+-            try (StringWriter sw = new StringWriter();
+-                    PrintWriter pw = new PrintWriter(sw)) {
++	    StringWriter sw = null;
++	    PrintWriter pw = null;
++            try { 
++		sw = new StringWriter();
++		pw = new PrintWriter(sw);
+                 pw.append("error=").append(Integer.toString(result));
+                 pw.append(" running:");
+                 for (String arg: execCmd) {
+                     pw.append(" '").append(arg).append("'");
+                 }
+-                try (InputStream is = failedProcess.getErrorStream();
+-                        InputStreamReader isr = new InputStreamReader(is);
+-                        BufferedReader br = new BufferedReader(isr)) {
++		InputStream is = null;
++		InputStreamReader isr = null;
++		BufferedReader br = null;
++                try {
++		    is = failedProcess.getErrorStream();
++                    isr = new InputStreamReader(is);
++                    br = new BufferedReader(isr);
+                     while (br.ready()) {
+                         pw.println();
+                         pw.append("\t\t").append(br.readLine());
+                     }
+                 } finally {
+                     pw.flush();
++		    if (br != null) br.close();
++		    if (isr != null) isr.close();
++		    if (is != null) is.close();
+                     throw new IOException(sw.toString());
+                 }
+-            }
++            } finally {
++		if (pw != null) pw.close();
++		if (sw != null) sw.close();
++	    }
+         }
+ 
+         public Object run() {
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/rmi/log/ReliableLog.java openjdk-boot/jdk/src/share/classes/sun/rmi/log/ReliableLog.java
+--- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/log/ReliableLog.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/rmi/log/ReliableLog.java	2013-04-04 18:02:48.894048422 +0100
+@@ -594,10 +594,16 @@
+         } else {
+             name = versionFile;
+         }
+-        try (FileOutputStream fos = new FileOutputStream(fName(name));
+-             DataOutputStream out = new DataOutputStream(fos)) {
++	FileOutputStream fos = null;
++	DataOutputStream out = null;
++        try {
++	    fos = new FileOutputStream(fName(name));
++	    out = new DataOutputStream(fos);
+             writeInt(out, version);
+-        }
++        } finally {
++	    if (out != null) out.close();
++	    if (fos != null) fos.close();
++	}
+     }
+ 
+     /**
+@@ -628,10 +634,13 @@
+      * @exception IOException If an I/O error has occurred.
+      */
+     private int readVersion(String name) throws IOException {
+-        try (DataInputStream in = new DataInputStream
+-                (new FileInputStream(name))) {
++	DataInputStream in = null;
++        try {
++	    in = new DataInputStream(new FileInputStream(name));
+             return in.readInt();
+-        }
++        } finally {
++	    if (in != null) in.close();
++	}
+     }
+ 
+     /**
+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-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/rmi/server/Activation.java	2013-04-04 18:02:48.894048422 +0100
+@@ -1233,13 +1233,16 @@
+                     PipeWriter.plugTogetherPair
+                         (child.getInputStream(), System.out,
+                          child.getErrorStream(), System.err);
+-                    try (MarshalOutputStream out =
+-                            new MarshalOutputStream(child.getOutputStream())) {
++		    MarshalOutputStream out = null;
++                    try {
++			out = new MarshalOutputStream(child.getOutputStream());
+                         out.writeObject(id);
+                         out.writeObject(desc);
+                         out.writeLong(incarnation);
+                         out.flush();
+-                    }
++                    } finally {
++			if (out != null) out.close();
++		    }
+ 
+ 
+                 } catch (IOException e) {
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/proxy/RMIMasterSocketFactory.java openjdk-boot/jdk/src/share/classes/sun/rmi/transport/proxy/RMIMasterSocketFactory.java
+--- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/proxy/RMIMasterSocketFactory.java	2013-04-04 13:44:58.934171940 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/rmi/transport/proxy/RMIMasterSocketFactory.java	2013-04-04 18:02:48.890048359 +0100
+@@ -233,13 +233,14 @@
+                         proxyLog.log(Log.BRIEF,
+                             "trying with factory: " + factory);
+                     }
+-                    try (Socket testSocket =
+-                            factory.createSocket(host, port)) {
++		    Socket testSocket = null;
++                    try {
+                         // For HTTP connections, the output (POST request) must
+                         // be sent before we verify a successful connection.
+                         // So, sacrifice a socket for the sake of testing...
+                         // The following sequence should verify a successful
+                         // HTTP connection if no IOException is thrown.
++			testSocket = factory.createSocket(host, port);
+                         InputStream in = testSocket.getInputStream();
+                         int b = in.read(); // probably -1 for EOF...
+                     } catch (IOException ex) {
+@@ -249,6 +250,10 @@
+ 
+                         continue;
+                     }
++		    finally {
++			if (testSocket != null)
++			    testSocket.close();
++		    }
+                     proxyLog.log(Log.BRIEF, "factory succeeded");
+ 
+                     // factory succeeded, open new socket for caller's use
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/ktab/KeyTab.java openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/ktab/KeyTab.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/ktab/KeyTab.java	2012-07-25 18:24:09.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/ktab/KeyTab.java	2012-07-26 10:18:53.162130589 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/ktab/KeyTab.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/ktab/KeyTab.java	2013-04-04 18:02:48.846047662 +0100
 @@ -92,9 +92,13 @@
          tabName = filename;
          try {
@@ -732,7 +901,7 @@
              }
          } catch (FileNotFoundException e) {
              entries.clear();
-@@ -439,9 +443,13 @@
+@@ -441,9 +445,13 @@
      public synchronized static KeyTab create(String name)
          throws IOException, RealmException {
  
@@ -748,7 +917,7 @@
          }
          return new KeyTab(name);
      }
-@@ -450,12 +458,16 @@
+@@ -452,12 +460,16 @@
       * Saves the file at the directory.
       */
      public synchronized void save() throws IOException {
@@ -767,7 +936,7 @@
          }
      }
  
-@@ -519,9 +531,13 @@
+@@ -521,9 +533,13 @@
       * @exception IOException.
       */
      public synchronized void createVersion(File file) throws IOException {
@@ -784,8 +953,8 @@
      }
  }
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/provider/SeedGenerator.java openjdk-boot/jdk/src/share/classes/sun/security/provider/SeedGenerator.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/provider/SeedGenerator.java	2012-07-25 18:24:09.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/provider/SeedGenerator.java	2012-07-26 10:18:53.162130589 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/provider/SeedGenerator.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/provider/SeedGenerator.java	2013-04-04 18:02:48.850047725 +0100
 @@ -179,7 +179,9 @@
                          // The temporary dir
                          File f = new File(p.getProperty("java.io.tmpdir"));
@@ -809,8 +978,8 @@
                      } catch (Exception ex) {
                          md.update((byte)ex.hashCode());
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/tools/KeyTool.java openjdk-boot/jdk/src/share/classes/sun/security/tools/KeyTool.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/tools/KeyTool.java	2012-07-25 18:24:09.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/tools/KeyTool.java	2012-07-26 10:18:53.162130589 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/tools/KeyTool.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/tools/KeyTool.java	2013-04-04 18:02:48.858047851 +0100
 @@ -1149,9 +1149,14 @@
                  } else {
                      ByteArrayOutputStream bout = new ByteArrayOutputStream();
@@ -829,8 +998,8 @@
              }
          }
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/util/UntrustedCertificates.java openjdk-boot/jdk/src/share/classes/sun/security/util/UntrustedCertificates.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/util/UntrustedCertificates.java	2012-07-26 09:59:59.750759909 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/util/UntrustedCertificates.java	2012-07-26 10:18:53.162130589 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/util/UntrustedCertificates.java	2013-04-04 13:44:58.934171940 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/util/UntrustedCertificates.java	2013-04-04 18:02:48.862047915 +0100
 @@ -56,8 +56,9 @@
  
      private static void add(String alias, String pemCert) {
@@ -864,8 +1033,8 @@
  
      static {
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/tools/jcmd/Arguments.java openjdk-boot/jdk/src/share/classes/sun/tools/jcmd/Arguments.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/tools/jcmd/Arguments.java	2012-07-25 18:24:09.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/tools/jcmd/Arguments.java	2012-07-26 10:18:53.162130589 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/tools/jcmd/Arguments.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/tools/jcmd/Arguments.java	2013-04-04 18:02:48.862047915 +0100
 @@ -99,14 +99,19 @@
      }
  
@@ -895,8 +1064,8 @@
  
      public static void usage() {
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/tools/jcmd/JCmd.java openjdk-boot/jdk/src/share/classes/sun/tools/jcmd/JCmd.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/tools/jcmd/JCmd.java	2012-07-26 09:59:59.750759909 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/tools/jcmd/JCmd.java	2012-07-26 10:18:53.162130589 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/tools/jcmd/JCmd.java	2013-04-04 13:44:58.934171940 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/tools/jcmd/JCmd.java	2013-04-04 18:02:48.866047979 +0100
 @@ -116,7 +116,7 @@
                              e.printStackTrace();
                          }
@@ -939,8 +1108,8 @@
  
      private static String getMainClass(VirtualMachineDescriptor vmd)
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/util/calendar/LocalGregorianCalendar.java openjdk-boot/jdk/src/share/classes/sun/util/calendar/LocalGregorianCalendar.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/util/calendar/LocalGregorianCalendar.java	2012-07-25 18:24:09.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/util/calendar/LocalGregorianCalendar.java	2012-07-26 10:18:53.162130589 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/util/calendar/LocalGregorianCalendar.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/util/calendar/LocalGregorianCalendar.java	2013-04-04 18:02:48.870048042 +0100
 @@ -127,9 +127,15 @@
              calendarProps = (Properties) AccessController.doPrivileged(new PrivilegedExceptionAction() {
                  public Object run() throws IOException {
@@ -959,8 +1128,8 @@
                  }
              });
 diff -Nru openjdk-boot.orig/jdk/src/share/demo/jfc/Font2DTest/RangeMenu.java openjdk-boot/jdk/src/share/demo/jfc/Font2DTest/RangeMenu.java
---- openjdk-boot.orig/jdk/src/share/demo/jfc/Font2DTest/RangeMenu.java	2012-07-25 18:24:09.000000000 +0100
-+++ openjdk-boot/jdk/src/share/demo/jfc/Font2DTest/RangeMenu.java	2012-07-26 10:18:53.162130589 +0100
+--- openjdk-boot.orig/jdk/src/share/demo/jfc/Font2DTest/RangeMenu.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/demo/jfc/Font2DTest/RangeMenu.java	2013-04-04 18:02:48.870048042 +0100
 @@ -200,7 +200,7 @@
      }
  
@@ -971,8 +1140,8 @@
          Character.UnicodeBlock currentBlock = Character.UnicodeBlock.of(0);
          for (int cp = 0x000001; cp < 0x110000; cp++ ) {
 diff -Nru openjdk-boot.orig/jdk/src/solaris/classes/java/util/prefs/FileSystemPreferences.java openjdk-boot/jdk/src/solaris/classes/java/util/prefs/FileSystemPreferences.java
---- openjdk-boot.orig/jdk/src/solaris/classes/java/util/prefs/FileSystemPreferences.java	2012-07-25 18:24:09.000000000 +0100
-+++ openjdk-boot/jdk/src/solaris/classes/java/util/prefs/FileSystemPreferences.java	2012-07-26 10:18:53.162130589 +0100
+--- openjdk-boot.orig/jdk/src/solaris/classes/java/util/prefs/FileSystemPreferences.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/solaris/classes/java/util/prefs/FileSystemPreferences.java	2013-04-04 18:02:48.874048105 +0100
 @@ -569,11 +569,11 @@
                  public Void run() throws BackingStoreException {
                      Map<String, String> m = new TreeMap<>();
@@ -1036,8 +1205,8 @@
                  }
              });
 diff -Nru openjdk-boot.orig/jdk/src/solaris/classes/sun/nio/fs/UnixFileStore.java openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/UnixFileStore.java
---- openjdk-boot.orig/jdk/src/solaris/classes/sun/nio/fs/UnixFileStore.java	2012-07-25 18:24:09.000000000 +0100
-+++ openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/UnixFileStore.java	2012-07-26 10:18:53.162130589 +0100
+--- openjdk-boot.orig/jdk/src/solaris/classes/sun/nio/fs/UnixFileStore.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/UnixFileStore.java	2013-04-04 18:02:48.874048105 +0100
 @@ -255,9 +255,16 @@
          String fstypes = System.getProperty("java.home") + "/lib/fstypes.properties";
          Path file = Paths.get(fstypes);
@@ -1056,103 +1225,9 @@
          } catch (IOException x) {
          }
          return result;
-diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/launcher/LauncherHelper.java openjdk-boot/jdk/src/share/classes/sun/launcher/LauncherHelper.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/launcher/LauncherHelper.java	2012-09-19 03:56:50.376373385 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/launcher/LauncherHelper.java	2012-09-19 04:02:15.841559851 +0100
-@@ -555,8 +555,9 @@
-                 if (parent == null) {
-                     parent = new File(".");
-                 }
--                try (DirectoryStream<Path> dstream =
--                        Files.newDirectoryStream(parent.toPath(), glob)) {
-+                DirectoryStream<Path> dstream = null;
-+                try {
-+                    dstream = Files.newDirectoryStream(parent.toPath(), glob);
-                     int entries = 0;
-                     for (Path p : dstream) {
-                         out.add(p.normalize().toString());
-@@ -571,6 +572,9 @@
-                         System.err.println("Warning: passing argument as-is " + a);
-                         System.err.print(e);
-                     }
-+                } finally {
-+                    if (dstream != null)
-+                        try { dstream.close(); } catch (IOException e) {}
-                 }
-             } else {
-                 out.add(a.arg);
-diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/MethodHandleImpl.java openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandleImpl.java
---- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/MethodHandleImpl.java	2012-11-30 17:35:03.823185224 +0000
-+++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandleImpl.java	2012-11-30 17:35:55.920030051 +0000
-@@ -927,10 +927,15 @@
-                             java.net.URLConnection uconn = tClass.getResource(tResource).openConnection();
-                             int len = uconn.getContentLength();
-                             byte[] bytes = new byte[len];
--                            try (java.io.InputStream str = uconn.getInputStream()) {
-+			    java.io.InputStream str = null;
-+                            try {
-+			        str = uconn.getInputStream();
-                                 int nr = str.read(bytes);
-                                 if (nr != len)  throw new java.io.IOException(tResource);
--                            }
-+                            } finally {
-+			      if (str != null)
-+				str.close();
-+			    }
-                             values[0] = bytes;
-                         } catch (java.io.IOException ex) {
-                             throw newInternalError(ex);
-diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/print/PSPrinterJob.java openjdk-boot/jdk/src/share/classes/sun/print/PSPrinterJob.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/print/PSPrinterJob.java	2012-12-04 05:13:31.292848926 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/print/PSPrinterJob.java	2012-12-04 05:18:24.261609680 +0000
-@@ -680,25 +680,38 @@
- 
-         private void handleProcessFailure(final Process failedProcess,
-                 final String[] execCmd, final int result) throws IOException {
--            try (StringWriter sw = new StringWriter();
--                    PrintWriter pw = new PrintWriter(sw)) {
-+	    StringWriter sw = null;
-+	    PrintWriter pw = null;
-+            try { 
-+		sw = new StringWriter();
-+		pw = new PrintWriter(sw);
-                 pw.append("error=").append(Integer.toString(result));
-                 pw.append(" running:");
-                 for (String arg: execCmd) {
-                     pw.append(" '").append(arg).append("'");
-                 }
--                try (InputStream is = failedProcess.getErrorStream();
--                        InputStreamReader isr = new InputStreamReader(is);
--                        BufferedReader br = new BufferedReader(isr)) {
-+		InputStream is = null;
-+		InputStreamReader isr = null;
-+		BufferedReader br = null;
-+                try {
-+		    is = failedProcess.getErrorStream();
-+                    isr = new InputStreamReader(is);
-+                    br = new BufferedReader(isr);
-                     while (br.ready()) {
-                         pw.println();
-                         pw.append("\t\t").append(br.readLine());
-                     }
-                 } finally {
-                     pw.flush();
-+		    if (br != null) br.close();
-+		    if (isr != null) isr.close();
-+		    if (is != null) is.close();
-                     throw new IOException(sw.toString());
-                 }
--            }
-+            } finally {
-+		if (pw != null) pw.close();
-+		if (sw != null) sw.close();
-+	    }
-         }
- 
-         public Object run() {
 diff -Nru openjdk-boot.orig/jdk/src/solaris/classes/sun/print/UnixPrintJob.java openjdk-boot/jdk/src/solaris/classes/sun/print/UnixPrintJob.java
---- openjdk-boot.orig/jdk/src/solaris/classes/sun/print/UnixPrintJob.java	2012-12-04 05:12:45.884111471 +0000
-+++ openjdk-boot/jdk/src/solaris/classes/sun/print/UnixPrintJob.java	2012-12-04 05:18:59.906188886 +0000
+--- openjdk-boot.orig/jdk/src/solaris/classes/sun/print/UnixPrintJob.java	2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/solaris/classes/sun/print/UnixPrintJob.java	2013-04-04 18:02:48.886048296 +0100
 @@ -960,25 +960,38 @@
  
          private void handleProcessFailure(final Process failedProcess,
@@ -1198,97 +1273,3 @@
          }
  
          public Object run() {
-diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/proxy/RMIMasterSocketFactory.java openjdk-boot/jdk/src/share/classes/sun/rmi/transport/proxy/RMIMasterSocketFactory.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/proxy/RMIMasterSocketFactory.java	2013-01-16 03:08:26.639679256 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/rmi/transport/proxy/RMIMasterSocketFactory.java	2013-01-16 13:59:47.925194291 +0000
-@@ -233,13 +233,14 @@
-                         proxyLog.log(Log.BRIEF,
-                             "trying with factory: " + factory);
-                     }
--                    try (Socket testSocket =
--                            factory.createSocket(host, port)) {
-+		    Socket testSocket = null;
-+                    try {
-                         // For HTTP connections, the output (POST request) must
-                         // be sent before we verify a successful connection.
-                         // So, sacrifice a socket for the sake of testing...
-                         // The following sequence should verify a successful
-                         // HTTP connection if no IOException is thrown.
-+			testSocket = factory.createSocket(host, port);
-                         InputStream in = testSocket.getInputStream();
-                         int b = in.read(); // probably -1 for EOF...
-                     } catch (IOException ex) {
-@@ -249,6 +250,10 @@
- 
-                         continue;
-                     }
-+		    finally {
-+			if (testSocket != null)
-+			    testSocket.close();
-+		    }
-                     proxyLog.log(Log.BRIEF, "factory succeeded");
- 
-                     // factory succeeded, open new socket for caller's use
-diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/rmi/log/ReliableLog.java openjdk-boot/jdk/src/share/classes/sun/rmi/log/ReliableLog.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/log/ReliableLog.java	2013-01-16 23:38:17.177227257 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/rmi/log/ReliableLog.java	2013-01-16 23:41:03.015896389 +0000
-@@ -594,10 +594,16 @@
-         } else {
-             name = versionFile;
-         }
--        try (FileOutputStream fos = new FileOutputStream(fName(name));
--             DataOutputStream out = new DataOutputStream(fos)) {
-+	FileOutputStream fos = null;
-+	DataOutputStream out = null;
-+        try {
-+	    fos = new FileOutputStream(fName(name));
-+	    out = new DataOutputStream(fos);
-             writeInt(out, version);
--        }
-+        } finally {
-+	    if (out != null) out.close();
-+	    if (fos != null) fos.close();
-+	}
-     }
- 
-     /**
-@@ -628,10 +634,13 @@
-      * @exception IOException If an I/O error has occurred.
-      */
-     private int readVersion(String name) throws IOException {
--        try (DataInputStream in = new DataInputStream
--                (new FileInputStream(name))) {
-+	DataInputStream in = null;
-+        try {
-+	    in = new DataInputStream(new FileInputStream(name));
-             return in.readInt();
--        }
-+        } finally {
-+	    if (in != null) in.close();
-+	}
-     }
- 
-     /**
-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-01-16 23:37:20.528316758 +0000
-+++ openjdk-boot/jdk/src/share/classes/sun/rmi/server/Activation.java	2013-01-16 23:41:48.704634678 +0000
-@@ -1233,13 +1233,16 @@
-                     PipeWriter.plugTogetherPair
-                         (child.getInputStream(), System.out,
-                          child.getErrorStream(), System.err);
--                    try (MarshalOutputStream out =
--                            new MarshalOutputStream(child.getOutputStream())) {
-+		    MarshalOutputStream out = null;
-+                    try {
-+			out = new MarshalOutputStream(child.getOutputStream());
-                         out.writeObject(id);
-                         out.writeObject(desc);
-                         out.writeLong(incarnation);
-                         out.flush();
--                    }
-+                    } finally {
-+			if (out != null) out.close();
-+		    }
- 
- 
-                 } catch (IOException e) {
--- a/patches/boot/xsltproc.patch	Thu Mar 28 00:18:00 2013 +0000
+++ b/patches/boot/xsltproc.patch	Thu Apr 04 22:52:56 2013 +0100
@@ -1,15 +1,6 @@
 diff -r 591c7dc0b2ee make/linux/makefiles/jvmti.make
 --- openjdk-boot/hotspot/make/linux/makefiles/jvmti.make	Thu May 19 13:27:44 2011 +0200
 +++ openjdk-boot/hotspot/make/linux/makefiles/jvmti.make	Wed May 25 20:01:25 2011 +0100
-@@ -58,8 +58,6 @@
- 
- JvmtiGeneratedFiles = $(JvmtiGeneratedNames:%=$(JvmtiOutDir)/%)
- 
--XSLT = $(QUIETLY) $(REMOTE) $(RUN.JAVA) -classpath $(JvmtiOutDir) jvmtiGen
--
- .PHONY: all jvmtidocs clean cleanall
- 
- # #########################################################################
 @@ -76,34 +74,34 @@
  
  $(JvmtiOutDir)/jvmtiEnter.cpp: $(both) $(JvmtiSrcDir)/jvmtiEnter.xsl
@@ -52,3 +43,15 @@
  
  # #########################################################################
  
+diff -Nru openjdk-boot.orig/hotspot/make/linux/makefiles/trace.make openjdk-boot/hotspot/make/linux/makefiles/trace.make
+--- openjdk-boot.orig/hotspot/make/linux/makefiles/trace.make	2013-04-04 18:37:50.547524781 +0100
++++ openjdk-boot/hotspot/make/linux/makefiles/trace.make	2013-04-04 18:39:42.497290041 +0100
+@@ -82,7 +82,7 @@
+ 
+ GENERATE_CODE= \
+   $(QUIETLY) echo Generating $@; \
+-  $(XSLT) -IN $(word 1,$^) -XSL $(word 2,$^) -OUT $@; \
++  $(XSLT) --xinclude -o $@ $(word 2,$^) $(word 1,$^) ; \
+   test -f $@
+ 
+ $(TraceOutDir)/traceEventIds.hpp: $(TraceSrcDir)/trace.xml $(TraceSrcDir)/traceEventIds.xsl $(XML_DEPS)
--- a/patches/systemtap_gc.patch	Thu Mar 28 00:18:00 2013 +0000
+++ b/patches/systemtap_gc.patch	Thu Apr 04 22:52:56 2013 +0100
@@ -1,6 +1,6 @@
 diff -Nru openjdk.orig/hotspot/src/share/vm/compiler/oopMap.cpp openjdk/hotspot/src/share/vm/compiler/oopMap.cpp
---- openjdk.orig/hotspot/src/share/vm/compiler/oopMap.cpp	2012-11-30 12:17:17.000000000 +0000
-+++ openjdk/hotspot/src/share/vm/compiler/oopMap.cpp	2012-11-30 14:47:23.074518179 +0000
+--- openjdk.orig/hotspot/src/share/vm/compiler/oopMap.cpp	2013-04-03 14:17:10.000000000 +0100
++++ openjdk/hotspot/src/share/vm/compiler/oopMap.cpp	2013-04-04 13:07:33.894232787 +0100
 @@ -33,9 +33,13 @@
  #include "memory/resourceArea.hpp"
  #include "runtime/frame.inline.hpp"
@@ -26,9 +26,9 @@
      // Delete entry
      delete entry;
 diff -Nru openjdk.orig/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp openjdk/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp
---- openjdk.orig/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp	2012-11-30 12:17:17.000000000 +0000
-+++ openjdk/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp	2012-11-30 14:47:23.082518302 +0000
-@@ -55,6 +55,12 @@
+--- openjdk.orig/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp	2013-04-03 14:17:10.000000000 +0100
++++ openjdk/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp	2013-04-04 13:07:33.902232915 +0100
+@@ -59,6 +59,12 @@
  #include "runtime/vmThread.hpp"
  #include "services/memoryService.hpp"
  #include "services/runtimeService.hpp"
@@ -41,7 +41,7 @@
  
  // statics
  CMSCollector* ConcurrentMarkSweepGeneration::_collector = NULL;
-@@ -1639,7 +1645,13 @@
+@@ -1646,7 +1652,13 @@
                                              size_t size,
                                              bool   tlab)
  {
@@ -56,9 +56,9 @@
  
  void CMSCollector::collect(bool   full,
 diff -Nru openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/g1MarkSweep.cpp openjdk/hotspot/src/share/vm/gc_implementation/g1/g1MarkSweep.cpp
---- openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/g1MarkSweep.cpp	2012-11-30 12:17:17.000000000 +0000
-+++ openjdk/hotspot/src/share/vm/gc_implementation/g1/g1MarkSweep.cpp	2012-11-30 14:47:23.082518302 +0000
-@@ -46,8 +46,13 @@
+--- openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/g1MarkSweep.cpp	2013-04-03 14:17:10.000000000 +0100
++++ openjdk/hotspot/src/share/vm/gc_implementation/g1/g1MarkSweep.cpp	2013-04-04 13:07:33.910233043 +0100
+@@ -50,8 +50,13 @@
  #include "runtime/thread.hpp"
  #include "runtime/vmThread.hpp"
  #include "utilities/copy.hpp"
@@ -72,7 +72,7 @@
  class HeapRegion;
  
  void G1MarkSweep::invoke_at_safepoint(ReferenceProcessor* rp,
-@@ -85,6 +90,9 @@
+@@ -89,6 +94,9 @@
    // The marking doesn't preserve the marks of biased objects.
    BiasedLocking::preserve_marks();
  
@@ -82,7 +82,7 @@
    mark_sweep_phase1(marked_for_unloading, clear_all_softrefs);
  
    mark_sweep_phase2();
-@@ -104,6 +112,9 @@
+@@ -108,6 +116,9 @@
    GenRemSet* rs = sh->rem_set();
    rs->invalidate(sh->perm_gen()->used_region(), true /*whole_heap*/);
  
@@ -93,9 +93,9 @@
    // CHF: cheating for now!!!
    //  Universe::set_heap_capacity_at_last_gc(Universe::heap()->capacity());
 diff -Nru openjdk.orig/hotspot/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.cpp openjdk/hotspot/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.cpp
---- openjdk.orig/hotspot/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.cpp	2012-11-30 12:17:17.000000000 +0000
-+++ openjdk/hotspot/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.cpp	2012-11-30 14:48:05.819184778 +0000
-@@ -41,8 +41,14 @@
+--- openjdk.orig/hotspot/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.cpp	2013-04-03 14:17:10.000000000 +0100
++++ openjdk/hotspot/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.cpp	2013-04-04 13:07:33.922233234 +0100
+@@ -43,8 +43,14 @@
  #include "runtime/java.hpp"
  #include "runtime/vmThread.hpp"
  #include "services/memTracker.hpp"
@@ -110,7 +110,7 @@
  PSYoungGen*  ParallelScavengeHeap::_young_gen = NULL;
  PSOldGen*    ParallelScavengeHeap::_old_gen = NULL;
  PSPermGen*   ParallelScavengeHeap::_perm_gen = NULL;
-@@ -809,7 +815,13 @@
+@@ -811,7 +817,13 @@
    }
  
    VM_ParallelGCSystemGC op(gc_count, full_gc_count, cause);
@@ -125,9 +125,9 @@
  
  // This interface assumes that it's being called by the
 diff -Nru openjdk.orig/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp openjdk/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp
---- openjdk.orig/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp	2012-11-30 12:17:17.000000000 +0000
-+++ openjdk/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp	2012-11-30 14:48:33.123610660 +0000
-@@ -54,11 +54,18 @@
+--- openjdk.orig/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp	2013-04-03 14:17:10.000000000 +0100
++++ openjdk/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp	2013-04-04 13:07:33.930233362 +0100
+@@ -58,11 +58,18 @@
  #include "services/management.hpp"
  #include "services/memoryService.hpp"
  #include "services/memTracker.hpp"
@@ -146,7 +146,7 @@
  // All sizes are in HeapWords.
  const size_t ParallelCompactData::Log2RegionSize  = 9; // 512 words
  const size_t ParallelCompactData::RegionSize      = (size_t)1 << Log2RegionSize;
-@@ -436,6 +443,9 @@
+@@ -440,6 +447,9 @@
  
  void ParallelCompactData::clear()
  {
@@ -156,7 +156,7 @@
    memset(_region_data, 0, _region_vspace->committed_size());
  }
  
-@@ -1973,6 +1983,9 @@
+@@ -1980,6 +1990,9 @@
           "should be in vm thread");
  
    ParallelScavengeHeap* heap = gc_heap();
@@ -166,7 +166,7 @@
    GCCause::Cause gc_cause = heap->gc_cause();
    assert(!heap->is_gc_active(), "not reentrant");
  
-@@ -3372,6 +3385,9 @@
+@@ -3396,6 +3409,9 @@
    // past the end of the partial object entering the region (if any).
    HeapWord* const dest_addr = sd.partial_obj_end(dp_region);
    HeapWord* const new_top = _space_info[space_id].new_top();
@@ -177,9 +177,9 @@
    const size_t words = pointer_delta(new_top, dest_addr);
  
 diff -Nru openjdk.orig/hotspot/src/share/vm/gc_implementation/parallelScavenge/psScavenge.cpp openjdk/hotspot/src/share/vm/gc_implementation/parallelScavenge/psScavenge.cpp
---- openjdk.orig/hotspot/src/share/vm/gc_implementation/parallelScavenge/psScavenge.cpp	2012-11-30 12:17:17.000000000 +0000
-+++ openjdk/hotspot/src/share/vm/gc_implementation/parallelScavenge/psScavenge.cpp	2012-11-30 14:47:23.082518302 +0000
-@@ -51,8 +51,17 @@
+--- openjdk.orig/hotspot/src/share/vm/gc_implementation/parallelScavenge/psScavenge.cpp	2013-04-03 14:17:10.000000000 +0100
++++ openjdk/hotspot/src/share/vm/gc_implementation/parallelScavenge/psScavenge.cpp	2013-04-04 13:07:33.938233490 +0100
+@@ -55,8 +55,17 @@
  #include "runtime/vmThread.hpp"
  #include "runtime/vm_operations.hpp"
  #include "services/memoryService.hpp"
@@ -197,7 +197,7 @@
  
  HeapWord*                  PSScavenge::_to_space_top_before_gc = NULL;
  int                        PSScavenge::_consecutive_skipped_scavenges = 0;
-@@ -226,7 +235,13 @@
+@@ -231,7 +240,13 @@
    PSAdaptiveSizePolicy* policy = heap->size_policy();
    IsGCActiveMark mark;
  
@@ -211,7 +211,7 @@
    const bool need_full_gc = !scavenge_done ||
      policy->should_full_GC(heap->old_gen()->free_in_bytes());
    bool full_gc_done = false;
-@@ -243,9 +258,21 @@
+@@ -248,9 +263,21 @@
      const bool clear_all_softrefs = cp->should_clear_all_soft_refs();
  
      if (UseParallelOldGC) {
@@ -234,9 +234,9 @@
    }
  
 diff -Nru openjdk.orig/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp openjdk/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp
---- openjdk.orig/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp	2012-11-30 12:17:17.000000000 +0000
-+++ openjdk/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp	2012-11-30 14:47:23.082518302 +0000
-@@ -49,6 +49,12 @@
+--- openjdk.orig/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp	2013-04-03 14:17:10.000000000 +0100
++++ openjdk/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp	2013-04-04 13:07:33.954233746 +0100
+@@ -54,6 +54,12 @@
  #include "utilities/copy.hpp"
  #include "utilities/globalDefinitions.hpp"
  #include "utilities/workgroup.hpp"
@@ -249,7 +249,7 @@
  
  #ifdef _MSC_VER
  #pragma warning( push )
-@@ -884,6 +890,9 @@
+@@ -919,6 +925,9 @@
                                 bool   clear_all_soft_refs,
                                 size_t size,
                                 bool   is_tlab) {
@@ -257,9 +257,9 @@
 +  HS_DTRACE_PROBE4(hotspot, gc__collection__parnew__begin, full, clear_all_soft_refs, size, is_tlab);
 +#endif  /* !USDT2 */
    assert(full || size > 0, "otherwise we don't want to collect");
+ 
    GenCollectedHeap* gch = GenCollectedHeap::heap();
-   assert(gch->kind() == CollectedHeap::GenCollectedHeap,
-@@ -1038,6 +1047,10 @@
+@@ -1070,6 +1079,10 @@
      gch->print_heap_change(gch_prev_used);
    }
  
@@ -271,9 +271,9 @@
      TASKQUEUE_STATS_ONLY(thread_state_set.print_termination_stats());
      TASKQUEUE_STATS_ONLY(thread_state_set.print_taskqueue_stats());
 diff -Nru openjdk.orig/hotspot/src/share/vm/memory/defNewGeneration.cpp openjdk/hotspot/src/share/vm/memory/defNewGeneration.cpp
---- openjdk.orig/hotspot/src/share/vm/memory/defNewGeneration.cpp	2012-11-30 12:17:17.000000000 +0000
-+++ openjdk/hotspot/src/share/vm/memory/defNewGeneration.cpp	2012-11-30 14:47:23.082518302 +0000
-@@ -38,6 +38,7 @@
+--- openjdk.orig/hotspot/src/share/vm/memory/defNewGeneration.cpp	2013-04-03 14:17:10.000000000 +0100
++++ openjdk/hotspot/src/share/vm/memory/defNewGeneration.cpp	2013-04-04 13:09:36.164185907 +0100
+@@ -42,6 +42,7 @@
  #include "oops/oop.inline.hpp"
  #include "runtime/java.hpp"
  #include "utilities/copy.hpp"
@@ -281,7 +281,7 @@
  #include "utilities/stack.inline.hpp"
  #ifdef TARGET_OS_FAMILY_linux
  # include "thread_linux.inline.hpp"
-@@ -51,7 +52,10 @@
+@@ -55,7 +56,10 @@
  #ifdef TARGET_OS_FAMILY_bsd
  # include "thread_bsd.inline.hpp"
  #endif
@@ -293,7 +293,7 @@
  //
  // DefNewGeneration functions.
  
-@@ -528,6 +532,9 @@
+@@ -534,6 +538,9 @@
                                 bool   clear_all_soft_refs,
                                 size_t size,
                                 bool   is_tlab) {
@@ -301,23 +301,23 @@
 +  HS_DTRACE_PROBE4(hotspot, gc__collection__defnew__begin, full, clear_all_soft_refs, size, is_tlab);
 +#endif  /* !USDT2 */
    assert(full || size > 0, "otherwise we don't want to collect");
+ 
    GenCollectedHeap* gch = GenCollectedHeap::heap();
-   _next_gen = gch->next_gen(this);
-@@ -661,6 +668,10 @@
-   // does not guarantee monotonicity.
+@@ -679,6 +686,10 @@
    jlong now = os::javaTimeNanos() / NANOSECS_PER_MILLISEC;
    update_time_of_last_gc(now);
+ 
 +#ifndef USDT2
 +  HS_DTRACE_PROBE4(hotspot, gc__collection__defnew__end, full, clear_all_soft_refs, size, is_tlab);
 +#endif  /* !USDT2 */
 +
- }
+   gch->trace_heap_after_gc(&gc_tracer);
  
- class RemoveForwardPointerClosure: public ObjectClosure {
+   _gc_timer->register_gc_end(os::elapsed_counter());
 diff -Nru openjdk.orig/hotspot/src/share/vm/memory/generation.cpp openjdk/hotspot/src/share/vm/memory/generation.cpp
---- openjdk.orig/hotspot/src/share/vm/memory/generation.cpp	2012-11-30 12:17:17.000000000 +0000
-+++ openjdk/hotspot/src/share/vm/memory/generation.cpp	2012-11-30 14:47:23.082518302 +0000
-@@ -39,8 +39,14 @@
+--- openjdk.orig/hotspot/src/share/vm/memory/generation.cpp	2013-04-03 14:17:10.000000000 +0100
++++ openjdk/hotspot/src/share/vm/memory/generation.cpp	2013-04-04 13:09:11.707795116 +0100
+@@ -41,8 +41,14 @@
  #include "oops/oop.inline.hpp"
  #include "runtime/java.hpp"
  #include "utilities/copy.hpp"
@@ -332,10 +332,10 @@
  Generation::Generation(ReservedSpace rs, size_t initial_size, int level) :
    _level(level),
    _ref_processor(NULL) {
-@@ -470,7 +476,13 @@
-   // refs discovery is over the entire heap, not just this generation
-   ReferenceProcessorSpanMutator
-     x(ref_processor(), GenCollectedHeap::heap()->reserved_region());
+@@ -481,7 +487,13 @@
+   SerialOldTracer* gc_tracer = GenMarkSweep::gc_tracer();
+   gc_tracer->report_gc_start(gch->gc_cause(), gc_timer->gc_start());
+ 
 +#ifndef USDT2
 +  HS_DTRACE_PROBE4(hotspot, gc__collection__contig__begin, full, clear_all_soft_refs, size, is_tlab);
 +#endif  /* !USDT2 */
@@ -343,12 +343,12 @@
 +#ifndef USDT2
 +  HS_DTRACE_PROBE4(hotspot, gc__collection__contig__end, full, clear_all_soft_refs, size, is_tlab);
 +#endif  /* !USDT2 */
-   SpecializationStats::print();
- }
+ 
+   gc_timer->register_gc_end(os::elapsed_counter());
  
 diff -Nru openjdk.orig/hotspot/src/share/vm/memory/tenuredGeneration.cpp openjdk/hotspot/src/share/vm/memory/tenuredGeneration.cpp
---- openjdk.orig/hotspot/src/share/vm/memory/tenuredGeneration.cpp	2012-11-30 12:17:17.000000000 +0000
-+++ openjdk/hotspot/src/share/vm/memory/tenuredGeneration.cpp	2012-11-30 14:47:23.082518302 +0000
+--- openjdk.orig/hotspot/src/share/vm/memory/tenuredGeneration.cpp	2013-04-03 14:17:10.000000000 +0100
++++ openjdk/hotspot/src/share/vm/memory/tenuredGeneration.cpp	2013-04-04 13:07:33.974234065 +0100
 @@ -33,6 +33,12 @@
  #include "memory/tenuredGeneration.hpp"
  #include "oops/oop.inline.hpp"
--- a/patches/zero_libffi.patch	Thu Mar 28 00:18:00 2013 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,37 +0,0 @@
-diff --git a/make/linux/makefiles/gcc.make b/make/linux/makefiles/gcc.make
---- openjdk/hotspot/make/linux/makefiles/gcc.make
-+++ openjdk/hotspot/make/linux/makefiles/gcc.make
-@@ -75,9 +75,6 @@
- VM_PICFLAG/AOUT   =
- VM_PICFLAG        = $(VM_PICFLAG/$(LINK_INTO))
- 
--ifeq ($(JVM_VARIANT_ZERO), true)
--CFLAGS += $(LIBFFI_CFLAGS)
--endif
- ifeq ($(JVM_VARIANT_ZEROSHARK), true)
- CFLAGS += $(LIBFFI_CFLAGS)
- CFLAGS += $(LLVM_CFLAGS)
-diff --git a/make/linux/makefiles/vm.make b/make/linux/makefiles/vm.make
---- openjdk/hotspot/make/linux/makefiles/vm.make
-+++ openjdk/hotspot/make/linux/makefiles/vm.make
-@@ -284,9 +284,6 @@
- 
-   LIBS_VM                  += $(LIBS)
- endif
--ifeq ($(JVM_VARIANT_ZERO), true)
--  LIBS_VM += $(LIBFFI_LIBS)
--endif
- ifeq ($(JVM_VARIANT_ZEROSHARK), true)
-   LIBS_VM   += $(LIBFFI_LIBS) $(LLVM_LIBS)
-   LFLAGS_VM += $(LLVM_LDFLAGS)
-diff --git a/make/linux/makefiles/zero.make b/make/linux/makefiles/zero.make
---- openjdk/hotspot/make/linux/makefiles/zero.make
-+++ openjdk/hotspot/make/linux/makefiles/zero.make
-@@ -30,3 +30,7 @@
- 
- # Install libjvm.so, etc in in server directory.
- VM_SUBDIR = server
-+
-+# Make sure libffi is included
-+CFLAGS += $(LIBFFI_CFLAGS)
-+LIBS_VM += $(LIBFFI_LIBS)