changeset 2910:df0f259a2fcc icedtea-2.7.0pre10

Bump to icedtea-2.7.0pre10. Upstream changes: - Bump to icedtea-2.7.0pre10 - S6253144: Long narrowing conversion should describe the algorithm used and implied "risks" - S6328537: Improve javadocs for Socket class by adding references to SocketOptions - S6624200: Regression test fails: test/closed/javax/swing/JMenuItem/4654927/bug4654927.java - S6882559: new JEditorPane("text/plain","") fails for null context class loader - S6978886: javadoc shows stacktrace after print error resulting from disk full - S6995421: Eliminate the static dependency to sun.security.ec.ECKeyFactory - S6996372: synchronizing handshaking hash - S7027045: (doc) java/awt/Window.java has several typos in javadoc - S7054969: Null-check-in-finally pattern in java/security documentation - S7059542: JNDI name operations should be locale independent - S7072353: JNDI libraries do not build with javac -Xlint:all -Werror - S7075563: Broken link in "javax.swing.SwingWorker" - S7077672: jdk8_tl nightly fail in step-2 build on 8/10/11 - S7088502: Security libraries don't build with javac -Werror - S7090158: Networking Libraries don't build with javac -Werror - S7092447: Clarify the default locale used in each locale sensitive operation - S7093640: Enable client-side TLS 1.2 by default - S7103570: AtomicIntegerFieldUpdater does not work when SecurityManager is installed - S7117360: Warnings in java.util.concurrent.atomic package - S7117465: Warning cleanup for IMF classes - S7125055: ContentHandler.getContent API changed in error - S7145960: sun/security/mscapi/ShortRSAKey1024.sh failing on windows - S7172012: Make test-in-build an option (Queens) - S7187051: ShortRSAKeynnn.sh tests should do cleanup before start test - S7187144: JavaDoc for ScriptEngineFactory.getProgram() contains an error - S8000418: javadoc should used a standard "generated by javadoc" string - S8000626: Implement dead key detection for KeyEvent on Linux - S8000666: javadoc should write directly to Writer instead of composing strings - S8000673: remove dead code from HtmlWriter and subtypes - S8000897: VM crash in CompileBroker - S8000970: break out auxiliary classes that will prevent multi-core compilation of the JDK - S8001669: javadoc internal DocletAbortException should set cause when appropriate - S8003890: corelibs test scripts should pass TESTVMOPTS - S8005629: javac warnings compiling java.awt.EventDispatchThread and sun.awt.X11.XIconWindow - S8008949: javadoc stopped copying doc-files - S8010297: Missing isLoggable() checks in logging code - S8010782: clean up source files containing carriage return characters - S8011402: Move blacklisting certificate logic from hard code to data - S8011547: Update XML Signature implementation to Apache Santuario 1.5.4 - S8012288: XML DSig API allows wrong tag names and extra elements in SignedInfo - S8014431: cleanup warnings indicated by the -Wunused-value compiler option on linux - S8015265: revise the fix for 8007037 - S8016217: More javadoc warnings - S8016491: PPC64 (part 2): Clean up PPC defines. - S8016586: PPC64 (part 3): basic changes for PPC64 - S8016696: PPC64 (part 4): add relocation for trampoline stubs - S8016747: Replace deprecated PlatformLogger isLoggable(int) with isLoggable(Level) - S8017313: PPC64 (part 6): stack handling improvements - S8017317: PPC64 (part 7): cppInterpreter: implement support for biased locking - S8017325: Cleanup of the javadoc <code> tag in java.security.cert - S8017326: Cleanup of the javadoc <code> tag in java.security.spec - S8019517: PPC64 (part 102): cppInterpreter: implement G1 support - S8019518: PPC64 (part 103): cppInterpreter: implement support for compressed Oops - S8019519: PPC64 (part 105): C interpreter: implement support for jvmti early return. - S8019772: Fix doclint issues in javax.crypto and javax.security subpackages - S8019929: PPC64 (part 107): Extend ELF-decoder to support PPC64 function descriptor tables - S8019973: PPC64 (part 11): Fix IA64 preprocessor conditionals on AIX. - S8020121: PPC64: fix build in cppInterpreter after 8019519 - S8020190: Fatal: Bug in native code: jfieldID must match object - S8020557: javadoc cleanup in javax.security - S8020688: Broken links in documentation at http://docs.oracle.com/javase/6/docs/api/index. - S8020708: NLS mnemonics missing in SwingSet2/JInternalFrame demo - S8021108: Clean up doclint warnings and errors in java.text package - S8021417: Fix doclint issues in java.util.concurrent - S8021833: javadoc cleanup in java.net - S8022120: JCK test api/javax_xml/crypto/dsig/TransformService/index_ParamMethods fails - S8022175: Fix doclint warnings in javax.print - S8022406: Fix doclint issues in java.beans - S8022746: List of spelling errors in API doc - S8024344: PPC64 (part 112): C argument in register AND stack slot. - S8024468: PPC64 (part 201): cppInterpreter: implement bytecode profiling - S8024469: PPC64 (part 202): cppInterpreter: support for OSR. - S8024756: method grouping tabs are not selectable - S8024779: [macosx] SwingNode crashes on exit - S8024854: PPC64: Basic changes and files to build the class library on AIX - S8024900: PPC64: Enable new build on AIX (jdk part) - S8025085: [javadoc] some errors in javax/swing - S8025218: [javadoc] some errors in java/awt classes - S8025249: [javadoc] fix some javadoc errors in javax/swing/ - S8025409: Fix javadoc comments errors and warning reported by doclint report - S8026021: more fix of javadoc errors and warnings reported by doclint, see the description - S8026119: Regression test DHEKeySizing.java failing intermittently - S8026741: jdk8 l10n resource file translation update 5 - S8029957: PPC64 (part 213): cppInterpreter: memory ordering for object initialization - S8033168: PPC64: gcc 4.8 warning in output_c.cpp - S8034797: AIX: Fix os::naked_short_sleep() in os_aix.cpp after 8028280 - S8035396: Introduce accessor for tmp_oop in frame. - S8035647: PPC64: Support for elf v2 abi. - S8036767: PPC64: Support for little endian execution model - S8036976: PPC64: implement the template interpreter - S8037099: [macosx] Remove all references to GC from native OBJ-C code - S8037915: PPC64/AIX: Several smaller fixes - S8038184: XMLSignature throws StringIndexOutOfBoundsException if ID attribute value is empty String - S8038349: Signing XML with DSA throws Exception when key is larger than 1024 bits - S8042309: Some bugfixes for the ppc64 port - S8048147: Privilege tests with JAAS Subject.doAs - S8048357: PKCS basic tests - S8049171: Additional tests for jarsigner's warnings - S8049244: XML Signature performance issue caused by unbuffered signature data - S8049432: New tests for TLS property jdk.tls.client.protocols - S8050893: (smartcardio) Invert reset argument in tests in sun/security/smartcardio - S8050942: PPC64: implement template interpreter for ppc64le - S8050972: Concurrency problem in PcDesc cache - S8056122: Upgrade JDK to use LittleCMS 2.6 - S8057934: Upgrade to LittleCMS 2.6 breaks AIX build - S8059177: jdk8u40 l10n resource file translation update 1 - S8059212: Modify sun/security/smartcardio manual regression tests so that they do not just fail if no cardreader found - S8067364: Printing to Postscript doesn't support dieresis - S8068279: (typo in the spec) javax.script.ScriptEngineFactory.getLanguageName - S8068491: Update the protocol for references of docs.oracle.com to HTTPS. - S8069038: javax/net/ssl/TLS/TLSClientPropertyTest.java needs to be updated for JDK-8061210 - S8069590: AIX port of "8050807: Better performing performance data handling" - S8075118: JVM stuck in infinite loop during verification - S8075584: test for 8067364 depends on hardwired text advance - S8076369: Introduce the jdk.tls.client.protocols system property for JDK 7u - S8076486: [TESTBUG] javax/security/auth/Subject/doAs/NestedActions.java fails if extra VM options are given - S8077953: [TEST_BUG] com/sun/management/OperatingSystemMXBean/TestTotalSwap.java Compilation failed after JDK-8077387 - S8078482: ppc: pass thread to throw_AbstractMethodError - S8078823, PR2809: javax/net/ssl/ciphersuites/DisabledAlgorithms.java fails intermittently - S8080190: PPC64: Fix wrong rotate instructions in the .ad file - S8080628: No mnemonics on Open and Save buttons in JFileChooser - S8083601: jdk8u60 l10n resource file translation update 2 - S8138725: Add options for Javadoc generation - S8139258: PPC64LE: argument passing problem when passing 15 floats in native call - S8139421: PPC64LE: MacroAssembler::bxx64_patchable kill register R12 - S8139565: Restrict certificates with DSA keys less than 1024 bits - S8140353: Improve signature checking - S8140422: Add mechanism to allow non default root CAs to be not subject to algorithm restrictions - S8140530: Creating a VolatileImage with size 0,0 results in no longer working g2d.drawString - S8140587: Atomic*FieldUpdaters should use Class.isInstance instead of direct class check - S8142926: OutputAnalyzer's shouldXXX() calls return this - S8143134: L10n resource file translation update - S8143959: Certificates requiring blacklisting - S8145984: [macosx] sun.lwawt.macosx.CAccessible leaks - S8147077: IllegalArgumentException thrown by api/java_awt/Component/FlipBufferStrategy/indexTGF_General - S8148127: IllegalArgumentException thrown by JCK test api/java_awt/Component/FlipBufferStrategy/indexTGF_General in opengl pipeline - S8148487: PPC64: Better byte behavior - S8148516: Improve the default strength of EC in JDK - S8148516, PR2809: Improve the default strength of EC in JDK [test/javax/net/ssl/ciphersuites/DisabledAlgorithms.java update] - S8149029: Secure validation of XML based digital signature always enabled when checking wrapping attacks - S8150611: Security problem on sun.misc.resources.Messages* - S8151893: Add security property to configure XML Signature secure validation mode - S8151921: Improved page resolution - S8151934: Resolve class resolution - S8155760: Implement Serialization Filtering - S8155968: Update command line options - S8155973: Tighten jar checks - S8156802: Better constraint checking - S8157176: Improved classfile parsing - S8157653: [Parfait] Uninitialised variable in awt_Font.cpp - S8157739: Classloader Consistency Checking - S8157749: Improve handling of DNS error replies - S8157753: Audio replay enhancement - S8157759: LCMS Transform Sampling Enhancement - S8157764: Better handling of interpolation plugins - S8158260: PPC64: unaligned Unsafe.getInt can lead to the generation of illegal instructions - S8158302: Handle contextual glyph substitutions - S8158406: Limited Parameter Processing - S8158734: JEditorPane.createEditorKitForContentType throws NPE after 6882559 - S8158993: Service Menu services - S8158997: JNDI Protocols Switch - S8159495: Fix index offsets - S8159503: Amend Annotation Actions - S8159507: RuntimeVisibleAnnotation validation - S8159511: Stack map validation - S8159515: Improve indy validation - S8159519: Reformat JDWP messages - S8159684: (tz) Support tzdata2016f - S8160090: Better signature handling in pack200 - S8160094: Improve pack200 layout - S8160098: Clean up color profiles - S8160591: Improve internal array handling - S8160838: Better HTTP service - S8160934: isnan() is not available on older MSVC compilers - S8161218: Better bytecode loading - S8161228: URL objects with custom protocol handlers have port changed after deserializing - S8161571: Verifying ECDSA signatures permits trailing bytes - S8161743: Provide proper login context - S8162411: Service Menu services 2 - S8162419: closed/com/oracle/jfr/runtime/TestVMInfoEvent.sh failing after JDK-8155968 - S8162511: 8u111 L10n resource file updates - S8162577: Standardize logging levels - S8162792: Remove constraint DSA keySize < 1024 from jdk.jar.disabledAlgorithms in jdk8 - S8162973: Better component components - S8163304: jarsigner -verbose -verify should print the algorithms used to sign the jar - S8164143: Improve components for menu items - S8164147: Improve streaming socket output - S8164452: 8u111 L10n resource file update - msgdrop 20 - S8164908: ReflectionFactory support for IIOP and custom serialization - S8165071: Expand TLS support - S8165230: RMIConnection addNotificationListeners failing with specific inputs - S8165344: Update concurrency support - S8165807: PPC64: Backport PPC64 port to OpenJDK 7 - S8165816: jarsigner -verify shows jar unsigned if it was signed with a weak algorithm - S8166381: Back out changes to the java.security file to not disable MD5 - S8166393: disabledAlgorithms property should not be strictly parsed - S8166591: [macos 10.12] Trackpad scrolling of text on OS X 10.12 Sierra is very fast (Trackpad, Retina only) - S8166739: Improve extensibility of ObjectInputFilter information passed to the filter - S8166875: (tz) Support tzdata2016g - S8166878: Connection reset during TLS handshake - S8166988: Improve image processing performance - S8167104: Additional class construction refinements - S8167144: Fix aix after 8022507: SIGSEGV at ParMarkBitMap::verify_clear() - S8167198: Changes to make AIX compile after the merge - S8167223: URL handling improvements - S8167335: Fix build on Linux with 64kb default page size - S8167356: Follow up fix for jdk8 backport of 8164143. Changes for CMenuComponent.m were missed - S8167459: Add debug output for indicating if a chosen ciphersuite was legacy - S8167472: Chrome interop regression with JDK-8148516 - S8167591: Add MD5 to signed JAR restrictions - S8168705: Better ObjectIdentifier validation - S8168714: Tighten ECDSA validation - S8168724: ECDSA signing improvments - S8168728: DSA signing improvments - S8168861: AnchorCertificates uses hardcoded password for cacerts keystore - S8168993: JDK8u121 L10n resource file update - S8169191: (tz) Support tzdata2016i - S8169688: Backout (remove) MD5 from jdk.jar.disabledAlgorithms for January CPU - S8169911: Enhanced tests for jarsigner -verbose -verify after JDK-8163304 - S8170131: Certificates not being blocked by jdk.tls.disabledAlgorithms property - S8170268: 8u121 L10n resource file update - msgdrop 20 - S8173622: Backport of 7180907 is incomplete - S8173849: Fix use of java.util.Base64 in test cases - S8173854: [TEST] Update DHEKeySizing test case following 8076328 & 8081760 ChangeLog: 2017-04-07 Andrew John Hughes <gnu_andrew@member.fsf.org> Bump to icedtea-2.7.0pre10. * Makefile.am: (JDK_UPDATE_VERSION): Bump to 131. (BUILD_VERSION): Reset to b00. (CORBA_CHANGESET): Update to icedtea-2.7.0pre10. (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. (install-data-local): Install blacklisted.certs. * NEWS: Updated. * configure.ac: Bump to 2.7.0pre10. * hotspot.map.in: Update to icedtea-2.7.0pre10. * patches/boot/ecj-diamond.patch, Regenerated. Add new cases in com.sun.jndi.cosnaming.CNCtx, com.sun.jndi.cosnaming.CNNameParser, com.sun.jndi.cosnaming.IiopUrl, com.sun.jndi.dns.DnsContextFactory, com.sun.jndi.dns.DnsName, com.sun.jndi.dns.NameNode, com.sun.jndi.dns.ResourceRecords, com.sun.jndi.ldap.EventSupport, com.sun.jndi.ldap.LdapClient, com.sun.jndi.ldap.LdapCtxFactory, com.sun.jndi.ldap.LdapCtx, com.sun.jndi.ldap.LdapName, com.sun.jndi.ldap.LdapResult, com.sun.jndi.ldap.LdapSchemaParser, com.sun.jndi.ldap.NamingEventNotifier, com.sun.jndi.ldap.Obj, com.sun.jndi.ldap.pool.Connections, com.sun.jndi.ldap.pool.Pool, com.sun.jndi.ldap.sasl.LdapSasl, com.sun.jndi.toolkit.ctx.Continuation, com.sun.jndi.toolkit.dir.HierMemDirCtx, com.sun.jndi.toolkit.dir.SearchFilter, com.sun.jndi.toolkit.url.GenericURLContext, com.sun.naming.internal.FactoryEnumeration, com.sun.naming.internal.ResourceManager, com.sun.naming.internal.VersionHelper, java.net.SocketPermission, java.net.URLConnection, java.net.URL, java.util.logging.LogRecord, javax.naming.directory.BasicAttribute, javax.naming.directory.BasicAttributes, javax.naming.ldap.InitialLdapContext, javax.naming.ldap.LdapName, javax.naming.ldap.Rdn, javax.naming.ldap.Rdn, javax.naming.ldap.Rfc2253Parser, javax.naming.NamingImpl, javax.naming.Reference, javax.naming.spi.DirectoryManager, javax.naming.spi.NamingManager, org.jcp.xml.dsig.internal.dom.Policy, sun.awt.im.ExecutableInputMethodManager, sun.awt.im.InputContext, sun.misc.ObjectInputFilter, sun.net.TransferProtocolClient, sun.net.www.protocol.http.AuthenticationHeader, sun.net.www.protocol.http.HttpURLConnection. sun.security.ssl.ExtensionType, sun.security.ssl.SupportedEllipticCurvesExtension, sun.security.ssl.SupportedEllipticPointFormatsExtension, sun.security.tools.jarsigner.Main, sun.security.util.UntrustedCertificates, sun.security.util.AnchorCertificates, sun.security.util.DisabledAlgorithmConstraints and sun.security.x509.X509CertImpl. * patches/boot/ecj-multicatch.patch: Regenerated. Add new cases in com.sun.naming.internal.ResourceManager, sun.net.www.protocol.http.HttpURLConnection, sun.reflect.ReflectionFactory, sun.security.x509.X509CertImpl, com.sun.net.httpserver.spi.HttpServerProvider, sun.net.ftp.FtpClientProvider, com.sun.jndi.ldap.AbstractLdapNamingEnumeration, com.sun.jndi.ldap.Connection and com.sun.jndi.ldap.LdapCtx. Drop case in sun.security.util.UntrustedCertificates. * patches/boot/ecj-stringswitch.patch: Regenerated. Add new cases in com.sun.jndi.ldap.LdapCtx and org.jcp.xml.dsig.internal.dom.Policy. * patches/boot/ecj-trywithresources.patch: Regenerated. Updated case in sun.security.util.UntrustedCertificates. Add new cases in com.sun.jndi.ldap.Obj, sun.security.util.AnchorCertificates and sun.security.tools.jarsigner.Main. * patches/boot/ecj-underscored_literals.patch: Move case from sun.security.ssl.ServerHandshaker to sun.security.util.Parsing. * patches/pr2124.patch, Extend following changes made in 8148516. * patches/rh1022017.patch: Adapt to changes made in 8148516.
author Andrew John Hughes <gnu_andrew@member.fsf.org>
date Fri, 14 Apr 2017 07:14:20 +0100
parents d0a40015c820
children e737d0cfc7b8
files ChangeLog Makefile.am NEWS configure.ac hotspot.map.in patches/boot/ecj-diamond.patch patches/boot/ecj-multicatch.patch patches/boot/ecj-stringswitch.patch patches/boot/ecj-trywithresources.patch patches/boot/ecj-underscored_literals.patch patches/pr2124.patch patches/rh1022017.patch
diffstat 12 files changed, 3862 insertions(+), 1989 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Tue Apr 04 03:29:16 2017 +0100
+++ b/ChangeLog	Fri Apr 14 07:14:20 2017 +0100
@@ -1,3 +1,114 @@
+2017-04-07  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+	Bump to icedtea-2.7.0pre10.
+	* Makefile.am:
+	(JDK_UPDATE_VERSION): Bump to 131.
+	(BUILD_VERSION): Reset to b00.
+	(CORBA_CHANGESET): Update to icedtea-2.7.0pre10.
+	(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.
+	(install-data-local): Install blacklisted.certs.
+	* NEWS: Updated.
+	* configure.ac: Bump to 2.7.0pre10.
+	* hotspot.map.in: Update to icedtea-2.7.0pre10.
+	* patches/boot/ecj-diamond.patch,
+	Regenerated. Add new cases in
+	com.sun.jndi.cosnaming.CNCtx,
+	com.sun.jndi.cosnaming.CNNameParser,
+	com.sun.jndi.cosnaming.IiopUrl,
+	com.sun.jndi.dns.DnsContextFactory,
+	com.sun.jndi.dns.DnsName,
+	com.sun.jndi.dns.NameNode,
+	com.sun.jndi.dns.ResourceRecords,
+	com.sun.jndi.ldap.EventSupport,
+	com.sun.jndi.ldap.LdapClient,
+	com.sun.jndi.ldap.LdapCtxFactory,
+	com.sun.jndi.ldap.LdapCtx,
+	com.sun.jndi.ldap.LdapName,
+	com.sun.jndi.ldap.LdapResult,
+	com.sun.jndi.ldap.LdapSchemaParser,
+	com.sun.jndi.ldap.NamingEventNotifier,
+	com.sun.jndi.ldap.Obj,
+	com.sun.jndi.ldap.pool.Connections,
+	com.sun.jndi.ldap.pool.Pool,
+	com.sun.jndi.ldap.sasl.LdapSasl,
+	com.sun.jndi.toolkit.ctx.Continuation,
+	com.sun.jndi.toolkit.dir.HierMemDirCtx,
+	com.sun.jndi.toolkit.dir.SearchFilter,
+	com.sun.jndi.toolkit.url.GenericURLContext,
+	com.sun.naming.internal.FactoryEnumeration,
+	com.sun.naming.internal.ResourceManager,
+	com.sun.naming.internal.VersionHelper,
+	java.net.SocketPermission,
+	java.net.URLConnection,
+	java.net.URL,
+	java.util.logging.LogRecord,
+	javax.naming.directory.BasicAttribute,
+	javax.naming.directory.BasicAttributes,
+	javax.naming.ldap.InitialLdapContext,
+	javax.naming.ldap.LdapName,
+	javax.naming.ldap.Rdn,
+	javax.naming.ldap.Rdn,
+	javax.naming.ldap.Rfc2253Parser,
+	javax.naming.NamingImpl,
+	javax.naming.Reference,
+	javax.naming.spi.DirectoryManager,
+	javax.naming.spi.NamingManager,
+	org.jcp.xml.dsig.internal.dom.Policy,
+	sun.awt.im.ExecutableInputMethodManager,
+	sun.awt.im.InputContext,
+	sun.misc.ObjectInputFilter,
+	sun.net.TransferProtocolClient,
+	sun.net.www.protocol.http.AuthenticationHeader,
+	sun.net.www.protocol.http.HttpURLConnection.
+	sun.security.ssl.ExtensionType,
+	sun.security.ssl.SupportedEllipticCurvesExtension,
+	sun.security.ssl.SupportedEllipticPointFormatsExtension,
+	sun.security.tools.jarsigner.Main,
+	sun.security.util.UntrustedCertificates,
+	sun.security.util.AnchorCertificates,
+	sun.security.util.DisabledAlgorithmConstraints and
+	sun.security.x509.X509CertImpl.
+	* patches/boot/ecj-multicatch.patch:
+	Regenerated. Add new cases in
+	com.sun.naming.internal.ResourceManager,
+	sun.net.www.protocol.http.HttpURLConnection,
+	sun.reflect.ReflectionFactory,
+	sun.security.x509.X509CertImpl,
+	com.sun.net.httpserver.spi.HttpServerProvider,
+	sun.net.ftp.FtpClientProvider,
+	com.sun.jndi.ldap.AbstractLdapNamingEnumeration,
+	com.sun.jndi.ldap.Connection and
+	com.sun.jndi.ldap.LdapCtx.
+	Drop case in sun.security.util.UntrustedCertificates.
+	* patches/boot/ecj-stringswitch.patch:
+	Regenerated. Add new cases in
+	com.sun.jndi.ldap.LdapCtx and
+	org.jcp.xml.dsig.internal.dom.Policy.
+	* patches/boot/ecj-trywithresources.patch:
+	Regenerated. Updated case in
+	sun.security.util.UntrustedCertificates.
+	Add new cases in
+	com.sun.jndi.ldap.Obj,
+	sun.security.util.AnchorCertificates and
+	sun.security.tools.jarsigner.Main.
+	* patches/boot/ecj-underscored_literals.patch:
+	Move case from sun.security.ssl.ServerHandshaker
+	to sun.security.util.Parsing.
+	* patches/pr2124.patch,
+	Extend following changes made in 8148516.
+	* patches/rh1022017.patch:
+	Adapt to changes made in 8148516.
+
 2017-04-03  Andrew John Hughes  <gnu_andrew@member.fsf.org>
 
 	PR3349: Architectures unsupported by SystemTap
--- a/Makefile.am	Tue Apr 04 03:29:16 2017 +0100
+++ b/Makefile.am	Fri Apr 14 07:14:20 2017 +0100
@@ -1,22 +1,22 @@
 # Dependencies
 
-JDK_UPDATE_VERSION = 111
-BUILD_VERSION = b01
+JDK_UPDATE_VERSION = 131
+BUILD_VERSION = b00
 COMBINED_VERSION = $(JDK_UPDATE_VERSION)-$(BUILD_VERSION)
 
-CORBA_CHANGESET = 34cc7c768cc0
-JAXP_CHANGESET = 7f680da239ad
-JAXWS_CHANGESET = 5d6370bdcd06
-JDK_CHANGESET = 2f95b16f0065
-LANGTOOLS_CHANGESET = 03fc0f1fced1
-OPENJDK_CHANGESET = 7c45a1a0378b
-
-CORBA_SHA256SUM = 0b71c691df6e849acd053241ec77b8eb5d5403714285db5fde5e1efd767c3b9e
-JAXP_SHA256SUM = 0b75e2591f9c3b4300d1dbbce9fe1d86b9d3cf11bc6083687d84741ae5334569
-JAXWS_SHA256SUM = cbde1ec8a1cc8be6f3c9291bd7fd609daa5d827d87fd4f62f286544946b37770
-JDK_SHA256SUM = 955f2533639a2039a631c1affe3a366b402090bd5972e349c6ffe2616c003e64
-LANGTOOLS_SHA256SUM = 8be139ef7e43ebb489441efb86c02e4b136221c7514032f8db7b4be1d41aafa3
-OPENJDK_SHA256SUM = ff0fbb8983dd3a9f9c91116dbfdd406fe3bf3cdb4eb2307bd3074b98af427ddb
+CORBA_CHANGESET = d28d6461f8b8
+JAXP_CHANGESET = 30630c7ce6bb
+JAXWS_CHANGESET = 27d0b96548ab
+JDK_CHANGESET = d6392d3c3e8d
+LANGTOOLS_CHANGESET = f6551a412274
+OPENJDK_CHANGESET = 2f2744eb059a
+
+CORBA_SHA256SUM = 318fbd999c062e21904787d5668225e11812648e8e66fce8035254b754aec741
+JAXP_SHA256SUM = 20de824fa7159053b9a4e1d1b410398933f20eeadf418489102ae927c2f9e5b5
+JAXWS_SHA256SUM = 01da4c324a192cd6421de6ec655c822e3f7cfb4e7b2347ee19d84ff297299a3c
+JDK_SHA256SUM = 4fe596ddc1e875c84bbc7b147f4d8798e1a0223ede690c3f0ab1b36821355f42
+LANGTOOLS_SHA256SUM = 5a4dfad4f7d192c4677e0312aa345a1efbc64cd19a0aa24bbf2218d16d8fd05f
+OPENJDK_SHA256SUM = 631e0d01aeeeb4f4ae5b29c9e14d3c55aaf5592f92c8a4510999b0a6855e17dd
 
 DROP_URL = http://icedtea.classpath.org/download/drops
 
@@ -3329,6 +3329,8 @@
 	  $(DESTDIR)${prefix}/jre/lib/security
 	$(INSTALL_DATA) $(BUILD_SDK_DIR)/jre/lib/security/nss.cfg \
 	  $(DESTDIR)${prefix}/jre/lib/security
+	$(INSTALL_DATA) $(BUILD_SDK_DIR)/jre/lib/security/blacklisted.certs \
+	  $(DESTDIR)${prefix}/jre/lib/security
 	for files in $(BUILD_SDK_DIR)/jre/lib/security/*.jar; do \
 	  $(call install_file,$${files},$(DESTDIR)${prefix}/jre/lib/security,$(INSTALL_DATA)) ; \
 	done
--- a/NEWS	Tue Apr 04 03:29:16 2017 +0100
+++ b/NEWS	Fri Apr 14 07:14:20 2017 +0100
@@ -19,6 +19,8 @@
   - PR3347: jstack.stp should support AArch64
 * Backports
   - S8076221, PR2809, RH1302385: Disable RC4 cipher suites
+  - S8078823, PR2809: javax/net/ssl/ciphersuites/DisabledAlgorithms.java fails intermittently
+  - S8148516, PR2809: Improve the default strength of EC in JDK [test/javax/net/ssl/ciphersuites/DisabledAlgorithms.java update]
 * Bug fixes
   - PR3162: Remove reference to AbstractPlainDatagramSocketImpl.c, removed in 8072466
   - PR3349: Architectures unsupported by SystemTap tapsets throw a parse error
@@ -745,7 +747,6 @@
 * JamVM
   - PR2500: Add executable stack markings to callNative.S on JamVM
 * AArch64 port
-  - Changes to make aix compile after the merge
   - S8025613, PR2437: clang: remove -Wno-unused-value
   - S8035938: Memory leak in JvmtiEnv::GetConstantPool
   - S8058113: Execution of OnOutOfMemoryError command hangs on linux-sparc
@@ -1196,10 +1197,10 @@
   - S8079203: AARCH64: Need to cater for different partner implementations
   - S8080586: aarch64: hotspot test compiler/codegen/7184394/TestAESMain.java fails
 * PPC & AIX port
-  - Changes to make aix compile after the merge
   - S8069590: AIX port of "8050807: Better performing performance data handling"
   - S8078482, PR2307, RH1201393: ppc: pass thread to throw_AbstractMethodError
   - S8080190: PPC64: Fix wrong rotate instructions in the .ad file
+  - S8167198: Changes to make AIX compile after the merge
 
 New in release 2.5.5 (2015-04-14):
 
@@ -1683,7 +1684,7 @@
 * PPC & AIX port
   - Adapt AIX port to 5049299: (process) Use posix_spawn, not fork, on S10 to avoid swap exhaustion
   - Adapt aix to 8022507
-  - Fix aix after 8022507: SIGSEGV at ParMarkBitMap::verify_clear()
+  - S8167144: Fix aix after 8022507: SIGSEGV at ParMarkBitMap::verify_clear()
   - S8050942: PPC64: implement template interpreter for ppc64le
   - S8050972: Concurrency problem in PcDesc cache
 
--- a/configure.ac	Tue Apr 04 03:29:16 2017 +0100
+++ b/configure.ac	Fri Apr 14 07:14:20 2017 +0100
@@ -1,4 +1,4 @@
-AC_INIT([icedtea], [2.7.0pre09], [distro-pkg-dev@openjdk.java.net])
+AC_INIT([icedtea], [2.7.0pre10], [distro-pkg-dev@openjdk.java.net])
 AM_INIT_AUTOMAKE([1.9 tar-pax foreign])
 AM_MAINTAINER_MODE([enable])
 AC_CONFIG_FILES([Makefile])
--- a/hotspot.map.in	Tue Apr 04 03:29:16 2017 +0100
+++ b/hotspot.map.in	Fri Apr 14 07:14:20 2017 +0100
@@ -1,2 +1,2 @@
 # version type(drop/hg) url changeset sha256sum
-default drop http://icedtea.classpath.org/download/drops/icedtea7/@ICEDTEA_RELEASE@ 9a1457cc02ae 0f37b16e50161097cf17542d2d9684b88d7e90a34ace5bca9af6c687739783b5
+default drop http://icedtea.classpath.org/download/drops/icedtea7/@ICEDTEA_RELEASE@ 4eea81cf6f63 998ffd4f0c7236db232c02624ea060647d5f618ddf67c1371af50f07a1d35073
--- a/patches/boot/ecj-diamond.patch	Tue Apr 04 03:29:16 2017 +0100
+++ b/patches/boot/ecj-diamond.patch	Fri Apr 14 07:14:20 2017 +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	2016-09-07 06:06:54.000000000 +0100
-+++ openjdk-boot/corba/src/share/classes/com/sun/corba/se/impl/encoding/CachedCodeBase.java	2016-09-21 06:38:08.152139860 +0100
+--- openjdk-boot.orig/corba/src/share/classes/com/sun/corba/se/impl/encoding/CachedCodeBase.java	2017-03-30 18:03:44.000000000 +0100
++++ openjdk-boot/corba/src/share/classes/com/sun/corba/se/impl/encoding/CachedCodeBase.java	2017-04-04 20:01:42.659619744 +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/io/OutputStreamHook.java openjdk-boot/corba/src/share/classes/com/sun/corba/se/impl/io/OutputStreamHook.java
---- openjdk-boot.orig/corba/src/share/classes/com/sun/corba/se/impl/io/OutputStreamHook.java	2016-09-07 06:06:54.000000000 +0100
-+++ openjdk-boot/corba/src/share/classes/com/sun/corba/se/impl/io/OutputStreamHook.java	2016-09-21 06:38:08.152139860 +0100
+--- openjdk-boot.orig/corba/src/share/classes/com/sun/corba/se/impl/io/OutputStreamHook.java	2017-03-30 18:03:44.000000000 +0100
++++ openjdk-boot/corba/src/share/classes/com/sun/corba/se/impl/io/OutputStreamHook.java	2017-04-04 20:01:42.659619744 +0100
 @@ -50,7 +50,7 @@
       */
      private class HookPutFields extends ObjectOutputStream.PutField
@@ -23,8 +23,8 @@
          /**
           * Put the value of the named boolean field into the persistent field.
 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	2016-09-07 06:06:54.000000000 +0100
-+++ openjdk-boot/corba/src/share/classes/com/sun/corba/se/impl/orb/ORBImpl.java	2016-09-21 06:38:08.152139860 +0100
+--- openjdk-boot.orig/corba/src/share/classes/com/sun/corba/se/impl/orb/ORBImpl.java	2017-03-30 18:03:44.000000000 +0100
++++ openjdk-boot/corba/src/share/classes/com/sun/corba/se/impl/orb/ORBImpl.java	2017-04-04 20:01:42.659619744 +0100
 @@ -1315,7 +1315,7 @@
      protected void shutdownServants(boolean wait_for_completion) {
          Set<ObjectAdapterFactory> oaset;
@@ -35,8 +35,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	2016-09-07 06:06:54.000000000 +0100
-+++ openjdk-boot/corba/src/share/classes/com/sun/corba/se/impl/orbutil/threadpool/ThreadPoolImpl.java	2016-09-21 06:38:08.152139860 +0100
+--- openjdk-boot.orig/corba/src/share/classes/com/sun/corba/se/impl/orbutil/threadpool/ThreadPoolImpl.java	2017-03-30 18:03:44.000000000 +0100
++++ openjdk-boot/corba/src/share/classes/com/sun/corba/se/impl/orbutil/threadpool/ThreadPoolImpl.java	2017-04-04 20:01:42.659619744 +0100
 @@ -108,7 +108,7 @@
      private ThreadGroup threadGroup;
  
@@ -56,8 +56,8 @@
  
          for (WorkerThread wt : copy) {
 diff -Nru openjdk-boot.orig/jaxp/src/com/sun/org/apache/xalan/internal/lib/ExsltSets.java openjdk-boot/jaxp/src/com/sun/org/apache/xalan/internal/lib/ExsltSets.java
---- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xalan/internal/lib/ExsltSets.java	2016-09-22 04:46:16.819711160 +0100
-+++ openjdk-boot/jaxp/src/com/sun/org/apache/xalan/internal/lib/ExsltSets.java	2016-09-22 17:56:43.942660332 +0100
+--- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xalan/internal/lib/ExsltSets.java	2017-03-30 18:03:44.000000000 +0100
++++ openjdk-boot/jaxp/src/com/sun/org/apache/xalan/internal/lib/ExsltSets.java	2017-04-04 20:01:42.663619678 +0100
 @@ -192,7 +192,7 @@
      NodeSet dist = new NodeSet();
      dist.setShouldCacheNodes(true);
@@ -68,8 +68,8 @@
      for (int i = 0; i < nl.getLength(); i++)
      {
 diff -Nru openjdk-boot.orig/jaxp/src/com/sun/org/apache/xalan/internal/xslt/EnvironmentCheck.java openjdk-boot/jaxp/src/com/sun/org/apache/xalan/internal/xslt/EnvironmentCheck.java
---- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xalan/internal/xslt/EnvironmentCheck.java	2016-09-22 04:46:16.987708418 +0100
-+++ openjdk-boot/jaxp/src/com/sun/org/apache/xalan/internal/xslt/EnvironmentCheck.java	2016-09-23 05:30:11.423894063 +0100
+--- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xalan/internal/xslt/EnvironmentCheck.java	2017-03-30 18:03:44.000000000 +0100
++++ openjdk-boot/jaxp/src/com/sun/org/apache/xalan/internal/xslt/EnvironmentCheck.java	2017-04-04 20:01:42.663619678 +0100
 @@ -220,7 +220,7 @@
    public Map<String, Object> getEnvironmentHash()
    {
@@ -205,8 +205,8 @@
      jarVersions.put(new Long(440237), "xalan.jar from xalan-j_1_2");
      jarVersions.put(new Long(436094), "xalan.jar from xalan-j_1_2_1");
 diff -Nru openjdk-boot.orig/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/CastExpr.java openjdk-boot/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/CastExpr.java
---- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/CastExpr.java	2016-09-22 04:46:16.831710964 +0100
-+++ openjdk-boot/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/CastExpr.java	2016-09-22 12:44:07.539848777 +0100
+--- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/CastExpr.java	2017-03-30 18:03:44.000000000 +0100
++++ openjdk-boot/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/CastExpr.java	2017-04-04 20:01:42.663619678 +0100
 @@ -51,7 +51,7 @@
      /**
       * Legal conversions between internal types.
@@ -217,8 +217,8 @@
      static {
          // Possible type conversions between internal types
 diff -Nru openjdk-boot.orig/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/FunctionCall.java openjdk-boot/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/FunctionCall.java
---- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/FunctionCall.java	2016-09-22 04:46:16.839710834 +0100
-+++ openjdk-boot/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/FunctionCall.java	2016-09-22 04:47:06.102907210 +0100
+--- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/FunctionCall.java	2017-03-30 18:03:44.000000000 +0100
++++ openjdk-boot/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/FunctionCall.java	2017-04-04 20:01:42.663619678 +0100
 @@ -139,7 +139,7 @@
      private boolean       _isStatic = false;
  
@@ -242,8 +242,8 @@
          // Possible conversions between Java and internal types
          java2Internal.put(Boolean.TYPE, Type.Boolean);
 diff -Nru openjdk-boot.orig/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/LiteralElement.java openjdk-boot/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/LiteralElement.java
---- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/LiteralElement.java	2016-09-22 04:46:16.851710638 +0100
-+++ openjdk-boot/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/LiteralElement.java	2016-09-22 04:51:35.906506403 +0100
+--- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/LiteralElement.java	2017-03-30 18:03:44.000000000 +0100
++++ openjdk-boot/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/LiteralElement.java	2017-04-04 20:01:42.663619678 +0100
 @@ -107,7 +107,7 @@
  
          // Check if we have any declared namespaces
@@ -290,8 +290,8 @@
                               SyntaxTreeNode n = _attributeElements.get(k);
                               if (n instanceof LiteralAttribute) {
 diff -Nru openjdk-boot.orig/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Mode.java openjdk-boot/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Mode.java
---- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Mode.java	2016-09-22 04:46:16.855710572 +0100
-+++ openjdk-boot/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Mode.java	2016-09-22 04:48:24.093635013 +0100
+--- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Mode.java	2017-03-30 18:03:44.000000000 +0100
++++ openjdk-boot/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Mode.java	2017-04-04 20:01:42.663619678 +0100
 @@ -129,22 +129,22 @@
      /**
       * A mapping between templates and test sequences.
@@ -344,8 +344,8 @@
          _rootPattern = null;
  
 diff -Nru openjdk-boot.orig/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Parser.java openjdk-boot/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Parser.java
---- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Parser.java	2016-09-22 04:46:16.867710376 +0100
-+++ openjdk-boot/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Parser.java	2016-09-23 05:30:28.235619413 +0100
+--- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Parser.java	2017-03-30 18:03:44.000000000 +0100
++++ openjdk-boot/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Parser.java	2017-04-04 20:01:42.663619678 +0100
 @@ -81,7 +81,7 @@
      private Map<String, String>   _instructionClasses; // Maps instructions to classes
      private Map<String, String[]> _instructionAttrs;  // reqd and opt attrs
@@ -391,8 +391,8 @@
          _prefixMapping.put(prefix, uri);
      }
 diff -Nru openjdk-boot.orig/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Stylesheet.java openjdk-boot/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Stylesheet.java
---- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Stylesheet.java	2016-09-22 04:46:16.875710246 +0100
-+++ openjdk-boot/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Stylesheet.java	2016-09-22 17:23:50.842684141 +0100
+--- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Stylesheet.java	2017-03-30 18:03:44.000000000 +0100
++++ openjdk-boot/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Stylesheet.java	2017-04-04 20:01:42.663619678 +0100
 @@ -121,7 +121,7 @@
      /**
       * Mapping between mode names and Mode instances.
@@ -421,8 +421,8 @@
      /**
       * A reference to the SourceLoader set by the user (a URIResolver
 diff -Nru openjdk-boot.orig/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/SymbolTable.java openjdk-boot/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/SymbolTable.java
---- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/SymbolTable.java	2016-09-22 04:46:16.887710050 +0100
-+++ openjdk-boot/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/SymbolTable.java	2016-09-22 16:57:12.420640421 +0100
+--- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/SymbolTable.java	2017-03-30 18:03:44.000000000 +0100
++++ openjdk-boot/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/SymbolTable.java	2017-04-04 20:01:42.663619678 +0100
 @@ -38,8 +38,8 @@
  final class SymbolTable {
  
@@ -505,8 +505,8 @@
          // Register the namespace URI
          Integer refcnt = _excludedURI.get(uri);
 diff -Nru openjdk-boot.orig/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/SyntaxTreeNode.java openjdk-boot/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/SyntaxTreeNode.java
---- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/SyntaxTreeNode.java	2016-09-22 04:46:16.895709920 +0100
-+++ openjdk-boot/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/SyntaxTreeNode.java	2016-09-22 17:24:17.898245601 +0100
+--- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/SyntaxTreeNode.java	2017-03-30 18:03:44.000000000 +0100
++++ openjdk-boot/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/SyntaxTreeNode.java	2017-04-04 20:01:42.663619678 +0100
 @@ -70,7 +70,7 @@
      protected SyntaxTreeNode _parent;          // Parent node
      private Stylesheet       _stylesheet;      // Stylesheet ancestor node
@@ -535,8 +535,8 @@
                  locals.add(varOrParamName);
              }
 diff -Nru openjdk-boot.orig/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/MethodGenerator.java openjdk-boot/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/MethodGenerator.java
---- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/MethodGenerator.java	2016-09-22 04:46:16.899709854 +0100
-+++ openjdk-boot/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/MethodGenerator.java	2016-09-22 17:56:33.974822323 +0100
+--- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/MethodGenerator.java	2017-03-30 18:03:44.000000000 +0100
++++ openjdk-boot/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/MethodGenerator.java	2017-04-04 20:01:42.663619678 +0100
 @@ -127,7 +127,7 @@
                   * times. Note that patterns whose kernels are "*", "node()"
                   * and "@*" can between shared by test sequences.
@@ -547,8 +547,8 @@
  
      public MethodGenerator(int access_flags, Type return_type,
 diff -Nru openjdk-boot.orig/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/MultiHashtable.java openjdk-boot/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/MultiHashtable.java
---- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/MultiHashtable.java	2016-09-22 04:46:16.907709724 +0100
-+++ openjdk-boot/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/MultiHashtable.java	2016-09-22 17:41:38.345369184 +0100
+--- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/MultiHashtable.java	2017-03-30 18:03:44.000000000 +0100
++++ openjdk-boot/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/MultiHashtable.java	2017-04-04 20:01:42.663619678 +0100
 @@ -37,7 +37,7 @@
  public final class MultiHashtable<K,V> {
      static final long serialVersionUID = -6151608290510033572L;
@@ -568,8 +568,8 @@
              }
              set.add(value);
 diff -Nru openjdk-boot.orig/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/XSLTC.java openjdk-boot/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/XSLTC.java
---- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/XSLTC.java	2016-09-07 06:06:32.000000000 +0100
-+++ openjdk-boot/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/XSLTC.java	2016-09-21 17:37:42.018664738 +0100
+--- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/XSLTC.java	2017-03-30 18:03:44.000000000 +0100
++++ openjdk-boot/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/XSLTC.java	2017-04-04 20:01:42.663619678 +0100
 @@ -170,7 +170,7 @@
          _parser = new Parser(this, useServicesMechanism);
          _featureManager = featureManager;
@@ -598,8 +598,8 @@
          _parser.init();
          //_variableSerial     = 1;
 diff -Nru openjdk-boot.orig/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/DocumentCache.java openjdk-boot/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/DocumentCache.java
---- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/DocumentCache.java	2016-09-22 04:46:16.915709594 +0100
-+++ openjdk-boot/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/DocumentCache.java	2016-09-22 17:56:17.375092088 +0100
+--- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/DocumentCache.java	2017-03-30 18:03:44.000000000 +0100
++++ openjdk-boot/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/DocumentCache.java	2017-04-04 20:01:42.663619678 +0100
 @@ -169,7 +169,7 @@
          _count = 0;
          _current = 0;
@@ -610,8 +610,8 @@
  
          try {
 diff -Nru openjdk-boot.orig/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/DOMWSFilter.java openjdk-boot/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/DOMWSFilter.java
---- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/DOMWSFilter.java	2016-09-22 04:46:16.923709462 +0100
-+++ openjdk-boot/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/DOMWSFilter.java	2016-09-22 17:55:58.887392533 +0100
+--- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/DOMWSFilter.java	2017-03-30 18:03:44.000000000 +0100
++++ openjdk-boot/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/DOMWSFilter.java	2017-04-04 20:01:42.663619678 +0100
 @@ -60,7 +60,7 @@
       */
      public DOMWSFilter(AbstractTranslet translet) {
@@ -622,8 +622,8 @@
          if (translet instanceof StripFilter) {
              m_filter = (StripFilter) translet;
 diff -Nru openjdk-boot.orig/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/KeyIndex.java openjdk-boot/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/KeyIndex.java
---- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/KeyIndex.java	2016-09-22 04:46:16.935709266 +0100
-+++ openjdk-boot/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/KeyIndex.java	2016-09-22 17:23:13.607287658 +0100
+--- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/KeyIndex.java	2017-03-30 18:03:44.000000000 +0100
++++ openjdk-boot/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/KeyIndex.java	2017-04-04 20:01:42.663619678 +0100
 @@ -59,7 +59,7 @@
      /**
       * A mapping from a document node to the mapping between values and nodesets
@@ -652,8 +652,8 @@
                  } else {
                      nodes = index.get(id);
 diff -Nru openjdk-boot.orig/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/MultiDOM.java openjdk-boot/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/MultiDOM.java
---- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/MultiDOM.java	2016-09-22 04:46:16.943709136 +0100
-+++ openjdk-boot/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/MultiDOM.java	2016-09-22 17:55:49.959537619 +0100
+--- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/MultiDOM.java	2017-03-30 18:03:44.000000000 +0100
++++ openjdk-boot/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/MultiDOM.java	2017-04-04 20:01:42.663619678 +0100
 @@ -56,7 +56,7 @@
      private int _free;
      private int _size;
@@ -664,8 +664,8 @@
      private final class AxisIterator extends DTMAxisIteratorBase {
          // constitutive data
 diff -Nru openjdk-boot.orig/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/SAXImpl.java openjdk-boot/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/SAXImpl.java
---- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/SAXImpl.java	2016-09-22 04:46:16.951709007 +0100
-+++ openjdk-boot/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/SAXImpl.java	2016-09-22 17:41:23.265613935 +0100
+--- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/SAXImpl.java	2017-03-30 18:03:44.000000000 +0100
++++ openjdk-boot/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/SAXImpl.java	2017-04-04 20:01:42.663619678 +0100
 @@ -114,7 +114,7 @@
      private int _namesSize = -1;
  
@@ -685,8 +685,8 @@
      }
  
 diff -Nru openjdk-boot.orig/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/AbstractTranslet.java openjdk-boot/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/AbstractTranslet.java
---- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/AbstractTranslet.java	2016-09-22 04:46:16.955708940 +0100
-+++ openjdk-boot/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/AbstractTranslet.java	2016-09-22 17:21:54.012577628 +0100
+--- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/AbstractTranslet.java	2017-03-30 18:03:44.000000000 +0100
++++ openjdk-boot/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/AbstractTranslet.java	2017-04-04 20:01:42.667619613 +0100
 @@ -279,7 +279,7 @@
       */
      public void addDecimalFormat(String name, DecimalFormatSymbols symbols) {
@@ -715,8 +715,8 @@
      }
  
 diff -Nru openjdk-boot.orig/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/DOM2SAX.java openjdk-boot/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/DOM2SAX.java
---- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/DOM2SAX.java	2016-09-22 04:46:16.963708811 +0100
-+++ openjdk-boot/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/DOM2SAX.java	2016-09-22 17:55:40.051698630 +0100
+--- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/DOM2SAX.java	2017-03-30 18:03:44.000000000 +0100
++++ openjdk-boot/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/DOM2SAX.java	2017-04-04 20:01:42.667619613 +0100
 @@ -58,7 +58,7 @@
      private ContentHandler _sax = null;
      private LexicalHandler _lex = null;
@@ -727,8 +727,8 @@
      public DOM2SAX(Node root) {
          _dom = root;
 diff -Nru openjdk-boot.orig/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/TemplatesImpl.java openjdk-boot/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/TemplatesImpl.java
---- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/TemplatesImpl.java	2016-09-22 04:46:16.971708680 +0100
-+++ openjdk-boot/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/TemplatesImpl.java	2016-09-22 17:55:15.716094102 +0100
+--- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/TemplatesImpl.java	2017-03-30 18:03:44.000000000 +0100
++++ openjdk-boot/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/TemplatesImpl.java	2017-04-04 20:01:42.667619613 +0100
 @@ -407,7 +407,7 @@
              _class = new Class[classCount];
  
@@ -739,8 +739,8 @@
  
              for (int i = 0; i < classCount; i++) {
 diff -Nru openjdk-boot.orig/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/TransformerImpl.java openjdk-boot/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/TransformerImpl.java
---- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/TransformerImpl.java	2016-09-22 04:46:16.979708550 +0100
-+++ openjdk-boot/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/TransformerImpl.java	2016-09-22 17:54:56.276410008 +0100
+--- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/TransformerImpl.java	2017-03-30 18:03:44.000000000 +0100
++++ openjdk-boot/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/TransformerImpl.java	2017-04-04 20:01:42.667619613 +0100
 @@ -1189,7 +1189,7 @@
  
          if (_isIdentity) {
@@ -751,8 +751,8 @@
              _parameters.put(name, value);
          }
 diff -Nru openjdk-boot.orig/jaxp/src/com/sun/org/apache/xerces/internal/dom/CoreDocumentImpl.java openjdk-boot/jaxp/src/com/sun/org/apache/xerces/internal/dom/CoreDocumentImpl.java
---- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xerces/internal/dom/CoreDocumentImpl.java	2016-09-22 04:46:16.995708289 +0100
-+++ openjdk-boot/jaxp/src/com/sun/org/apache/xerces/internal/dom/CoreDocumentImpl.java	2016-09-23 05:31:45.770356027 +0100
+--- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xerces/internal/dom/CoreDocumentImpl.java	2017-03-30 18:03:44.000000000 +0100
++++ openjdk-boot/jaxp/src/com/sun/org/apache/xerces/internal/dom/CoreDocumentImpl.java	2017-04-04 20:01:42.667619613 +0100
 @@ -393,7 +393,7 @@
  
              if (identifiers != null) {
@@ -854,8 +854,8 @@
      }
  } // class CoreDocumentImpl
 diff -Nru openjdk-boot.orig/jaxp/src/com/sun/org/apache/xerces/internal/dom/DeferredDocumentImpl.java openjdk-boot/jaxp/src/com/sun/org/apache/xerces/internal/dom/DeferredDocumentImpl.java
---- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xerces/internal/dom/DeferredDocumentImpl.java	2016-09-22 04:46:17.007708093 +0100
-+++ openjdk-boot/jaxp/src/com/sun/org/apache/xerces/internal/dom/DeferredDocumentImpl.java	2016-09-23 05:32:13.085910939 +0100
+--- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xerces/internal/dom/DeferredDocumentImpl.java	2017-03-30 18:03:44.000000000 +0100
++++ openjdk-boot/jaxp/src/com/sun/org/apache/xerces/internal/dom/DeferredDocumentImpl.java	2017-04-04 20:01:42.667619613 +0100
 @@ -2059,7 +2059,7 @@
  
          // create Map
@@ -866,8 +866,8 @@
  
          // save ID and its associated element
 diff -Nru openjdk-boot.orig/jaxp/src/com/sun/org/apache/xerces/internal/dom/DocumentImpl.java openjdk-boot/jaxp/src/com/sun/org/apache/xerces/internal/dom/DocumentImpl.java
---- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xerces/internal/dom/DocumentImpl.java	2016-09-22 04:46:17.015707963 +0100
-+++ openjdk-boot/jaxp/src/com/sun/org/apache/xerces/internal/dom/DocumentImpl.java	2016-09-22 17:10:52.927297510 +0100
+--- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xerces/internal/dom/DocumentImpl.java	2017-03-30 18:03:44.000000000 +0100
++++ openjdk-boot/jaxp/src/com/sun/org/apache/xerces/internal/dom/DocumentImpl.java	2017-04-04 20:01:42.667619613 +0100
 @@ -249,7 +249,7 @@
                                                       filter,
                                                       entityReferenceExpansion);
@@ -959,8 +959,8 @@
          }
      }
 diff -Nru openjdk-boot.orig/jaxp/src/com/sun/org/apache/xerces/internal/dom/DocumentTypeImpl.java openjdk-boot/jaxp/src/com/sun/org/apache/xerces/internal/dom/DocumentTypeImpl.java
---- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xerces/internal/dom/DocumentTypeImpl.java	2016-09-22 04:46:17.023707832 +0100
-+++ openjdk-boot/jaxp/src/com/sun/org/apache/xerces/internal/dom/DocumentTypeImpl.java	2016-09-22 17:21:12.669247609 +0100
+--- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xerces/internal/dom/DocumentTypeImpl.java	2017-03-30 18:03:44.000000000 +0100
++++ openjdk-boot/jaxp/src/com/sun/org/apache/xerces/internal/dom/DocumentTypeImpl.java	2017-04-04 20:01:42.667619613 +0100
 @@ -478,7 +478,7 @@
      public Object setUserData(String key,
      Object data, UserDataHandler handler) {
@@ -988,8 +988,8 @@
      }
  } // class DocumentTypeImpl
 diff -Nru openjdk-boot.orig/jaxp/src/com/sun/org/apache/xerces/internal/dom/LCount.java openjdk-boot/jaxp/src/com/sun/org/apache/xerces/internal/dom/LCount.java
---- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xerces/internal/dom/LCount.java	2016-09-22 04:46:17.031707700 +0100
-+++ openjdk-boot/jaxp/src/com/sun/org/apache/xerces/internal/dom/LCount.java	2016-09-22 17:53:28.789831674 +0100
+--- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xerces/internal/dom/LCount.java	2017-03-30 18:03:44.000000000 +0100
++++ openjdk-boot/jaxp/src/com/sun/org/apache/xerces/internal/dom/LCount.java	2017-04-04 20:01:42.667619613 +0100
 @@ -37,7 +37,7 @@
  
  class LCount
@@ -1000,8 +1000,8 @@
  
      static LCount lookup(String evtName)
 diff -Nru openjdk-boot.orig/jaxp/src/com/sun/org/apache/xerces/internal/impl/dtd/DTDGrammarBucket.java openjdk-boot/jaxp/src/com/sun/org/apache/xerces/internal/impl/dtd/DTDGrammarBucket.java
---- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xerces/internal/impl/dtd/DTDGrammarBucket.java	2016-09-22 04:46:17.039707571 +0100
-+++ openjdk-boot/jaxp/src/com/sun/org/apache/xerces/internal/impl/dtd/DTDGrammarBucket.java	2016-09-22 17:53:17.318018087 +0100
+--- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xerces/internal/impl/dtd/DTDGrammarBucket.java	2017-03-30 18:03:44.000000000 +0100
++++ openjdk-boot/jaxp/src/com/sun/org/apache/xerces/internal/impl/dtd/DTDGrammarBucket.java	2017-04-04 20:01:42.667619613 +0100
 @@ -62,7 +62,7 @@
  
      /** Default constructor. */
@@ -1012,8 +1012,8 @@
  
      //
 diff -Nru openjdk-boot.orig/jaxp/src/com/sun/org/apache/xerces/internal/impl/dtd/DTDGrammar.java openjdk-boot/jaxp/src/com/sun/org/apache/xerces/internal/impl/dtd/DTDGrammar.java
---- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xerces/internal/impl/dtd/DTDGrammar.java	2016-09-22 04:46:17.047707441 +0100
-+++ openjdk-boot/jaxp/src/com/sun/org/apache/xerces/internal/impl/dtd/DTDGrammar.java	2016-09-22 17:19:52.022554392 +0100
+--- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xerces/internal/impl/dtd/DTDGrammar.java	2017-03-30 18:03:44.000000000 +0100
++++ openjdk-boot/jaxp/src/com/sun/org/apache/xerces/internal/impl/dtd/DTDGrammar.java	2017-04-04 20:01:42.667619613 +0100
 @@ -210,13 +210,13 @@
      // other information
  
@@ -1041,8 +1041,8 @@
      /** Children content model operation stack. */
      private short[] fOpStack = null;
 diff -Nru openjdk-boot.orig/jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/dtd/DTDDVFactoryImpl.java openjdk-boot/jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/dtd/DTDDVFactoryImpl.java
---- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/dtd/DTDDVFactoryImpl.java	2016-09-22 04:46:17.059707245 +0100
-+++ openjdk-boot/jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/dtd/DTDDVFactoryImpl.java	2016-09-22 17:53:00.842285812 +0100
+--- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/dtd/DTDDVFactoryImpl.java	2017-03-30 18:03:44.000000000 +0100
++++ openjdk-boot/jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/dtd/DTDDVFactoryImpl.java	2017-04-04 20:01:42.667619613 +0100
 @@ -38,7 +38,7 @@
  
      static final Map<String, DatatypeValidator> fBuiltInTypes;
@@ -1062,8 +1062,8 @@
  
  }// DTDDVFactoryImpl
 diff -Nru openjdk-boot.orig/jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/dtd/XML11DTDDVFactoryImpl.java openjdk-boot/jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/dtd/XML11DTDDVFactoryImpl.java
---- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/dtd/XML11DTDDVFactoryImpl.java	2016-09-22 04:46:17.067707115 +0100
-+++ openjdk-boot/jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/dtd/XML11DTDDVFactoryImpl.java	2016-09-22 17:40:39.778319730 +0100
+--- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/dtd/XML11DTDDVFactoryImpl.java	2017-03-30 18:03:44.000000000 +0100
++++ openjdk-boot/jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/dtd/XML11DTDDVFactoryImpl.java	2017-04-04 20:01:42.667619613 +0100
 @@ -37,7 +37,7 @@
  
      static Map<String, DatatypeValidator> XML11BUILTINTYPES;
@@ -1083,8 +1083,8 @@
          return toReturn;
      }
 diff -Nru openjdk-boot.orig/jaxp/src/com/sun/org/apache/xerces/internal/impl/XMLEntityManager.java openjdk-boot/jaxp/src/com/sun/org/apache/xerces/internal/impl/XMLEntityManager.java
---- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xerces/internal/impl/XMLEntityManager.java	2016-09-22 04:46:17.079706919 +0100
-+++ openjdk-boot/jaxp/src/com/sun/org/apache/xerces/internal/impl/XMLEntityManager.java	2016-09-22 17:52:28.890805002 +0100
+--- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xerces/internal/impl/XMLEntityManager.java	2017-03-30 18:03:44.000000000 +0100
++++ openjdk-boot/jaxp/src/com/sun/org/apache/xerces/internal/impl/XMLEntityManager.java	2017-04-04 20:01:42.667619613 +0100
 @@ -364,7 +364,7 @@
      // entities
  
@@ -1095,8 +1095,8 @@
      /** Entity stack. */
      protected Stack fEntityStack = new Stack();
 diff -Nru openjdk-boot.orig/jaxp/src/com/sun/org/apache/xerces/internal/impl/XMLErrorReporter.java openjdk-boot/jaxp/src/com/sun/org/apache/xerces/internal/impl/XMLErrorReporter.java
---- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xerces/internal/impl/XMLErrorReporter.java	2016-09-22 04:46:17.083706853 +0100
-+++ openjdk-boot/jaxp/src/com/sun/org/apache/xerces/internal/impl/XMLErrorReporter.java	2016-09-22 17:52:43.794562827 +0100
+--- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xerces/internal/impl/XMLErrorReporter.java	2017-03-30 18:03:44.000000000 +0100
++++ openjdk-boot/jaxp/src/com/sun/org/apache/xerces/internal/impl/XMLErrorReporter.java	2017-04-04 20:01:42.667619613 +0100
 @@ -192,7 +192,7 @@
          //       caller to specify the location of the error being
          //       reported. -Ac
@@ -1107,8 +1107,8 @@
      } // <init>()
  
 diff -Nru openjdk-boot.orig/jaxp/src/com/sun/org/apache/xerces/internal/impl/xpath/regex/ParserForXMLSchema.java openjdk-boot/jaxp/src/com/sun/org/apache/xerces/internal/impl/xpath/regex/ParserForXMLSchema.java
---- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xerces/internal/impl/xpath/regex/ParserForXMLSchema.java	2016-09-22 04:46:17.091706723 +0100
-+++ openjdk-boot/jaxp/src/com/sun/org/apache/xerces/internal/impl/xpath/regex/ParserForXMLSchema.java	2016-09-22 17:40:14.814724872 +0100
+--- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xerces/internal/impl/xpath/regex/ParserForXMLSchema.java	2017-03-30 18:03:44.000000000 +0100
++++ openjdk-boot/jaxp/src/com/sun/org/apache/xerces/internal/impl/xpath/regex/ParserForXMLSchema.java	2017-04-04 20:01:42.667619613 +0100
 @@ -374,8 +374,8 @@
      static private Map<String, Token> ranges2 = null;
      static synchronized protected RangeToken getRange(String name, boolean positive) {
@@ -1121,8 +1121,8 @@
              Token tok = Token.createRange();
              setupRange(tok, SPACES);
 diff -Nru openjdk-boot.orig/jaxp/src/com/sun/org/apache/xerces/internal/impl/xpath/regex/Token.java openjdk-boot/jaxp/src/com/sun/org/apache/xerces/internal/impl/xpath/regex/Token.java
---- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xerces/internal/impl/xpath/regex/Token.java	2016-09-22 04:46:17.099706593 +0100
-+++ openjdk-boot/jaxp/src/com/sun/org/apache/xerces/internal/impl/xpath/regex/Token.java	2016-09-22 17:15:52.546433848 +0100
+--- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xerces/internal/impl/xpath/regex/Token.java	2017-03-30 18:03:44.000000000 +0100
++++ openjdk-boot/jaxp/src/com/sun/org/apache/xerces/internal/impl/xpath/regex/Token.java	2017-04-04 20:01:42.667619613 +0100
 @@ -593,8 +593,8 @@
      }
  
@@ -1171,8 +1171,8 @@
      }
  }
 diff -Nru openjdk-boot.orig/jaxp/src/com/sun/org/apache/xerces/internal/impl/xpath/XPath.java openjdk-boot/jaxp/src/com/sun/org/apache/xerces/internal/impl/xpath/XPath.java
---- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xerces/internal/impl/xpath/XPath.java	2016-09-22 04:46:17.107706461 +0100
-+++ openjdk-boot/jaxp/src/com/sun/org/apache/xerces/internal/impl/xpath/XPath.java	2016-09-22 17:39:59.230977780 +0100
+--- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xerces/internal/impl/xpath/XPath.java	2017-03-30 18:03:44.000000000 +0100
++++ openjdk-boot/jaxp/src/com/sun/org/apache/xerces/internal/impl/xpath/XPath.java	2017-04-04 20:01:42.671619548 +0100
 @@ -859,10 +859,10 @@
          private SymbolTable fSymbolTable;
  
@@ -1187,8 +1187,8 @@
          /**
           * Current position in the token list.
 diff -Nru openjdk-boot.orig/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/SubstitutionGroupHandler.java openjdk-boot/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/SubstitutionGroupHandler.java
---- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/SubstitutionGroupHandler.java	2016-09-22 04:46:17.115706331 +0100
-+++ openjdk-boot/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/SubstitutionGroupHandler.java	2016-09-22 17:39:42.775244834 +0100
+--- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/SubstitutionGroupHandler.java	2017-03-30 18:03:44.000000000 +0100
++++ openjdk-boot/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/SubstitutionGroupHandler.java	2017-04-04 20:01:42.671619548 +0100
 @@ -176,10 +176,10 @@
      // - a Vector, which contains all elements that has this element as their
      //   substitution group affilication
@@ -1203,8 +1203,8 @@
      /**
       * clear the internal registry of substitutionGroup information
 diff -Nru openjdk-boot.orig/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDHandler.java openjdk-boot/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDHandler.java
---- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDHandler.java	2016-09-22 04:46:17.123706201 +0100
-+++ openjdk-boot/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDHandler.java	2016-09-22 17:52:13.083061864 +0100
+--- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDHandler.java	2017-03-30 18:03:44.000000000 +0100
++++ openjdk-boot/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDHandler.java	2017-04-04 20:01:42.671619548 +0100
 @@ -467,7 +467,7 @@
  
      // Constructors
@@ -1215,8 +1215,8 @@
      }
  
 diff -Nru openjdk-boot.orig/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/XMLSchemaValidator.java openjdk-boot/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/XMLSchemaValidator.java
---- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/XMLSchemaValidator.java	2016-09-22 04:46:17.135706005 +0100
-+++ openjdk-boot/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/XMLSchemaValidator.java	2016-09-22 17:19:18.235101828 +0100
+--- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/XMLSchemaValidator.java	2017-03-30 18:03:44.000000000 +0100
++++ openjdk-boot/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/XMLSchemaValidator.java	2017-04-04 20:01:42.671619548 +0100
 @@ -489,7 +489,8 @@
  
      /** Schema Grammar Description passed,  to give a chance to application to supply the Grammar */
@@ -1249,8 +1249,8 @@
          //
          // Constructors
 diff -Nru openjdk-boot.orig/jaxp/src/com/sun/org/apache/xerces/internal/jaxp/DocumentBuilderFactoryImpl.java openjdk-boot/jaxp/src/com/sun/org/apache/xerces/internal/jaxp/DocumentBuilderFactoryImpl.java
---- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xerces/internal/jaxp/DocumentBuilderFactoryImpl.java	2016-09-22 04:46:17.147705809 +0100
-+++ openjdk-boot/jaxp/src/com/sun/org/apache/xerces/internal/jaxp/DocumentBuilderFactoryImpl.java	2016-09-22 17:34:31.424296664 +0100
+--- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xerces/internal/jaxp/DocumentBuilderFactoryImpl.java	2017-03-30 18:03:44.000000000 +0100
++++ openjdk-boot/jaxp/src/com/sun/org/apache/xerces/internal/jaxp/DocumentBuilderFactoryImpl.java	2017-04-04 20:01:42.671619548 +0100
 @@ -102,7 +102,7 @@
  
          // Create the Map if none existed before
@@ -1270,8 +1270,8 @@
          // If this is the secure processing feature, save it then return.
          if (name.equals(XMLConstants.FEATURE_SECURE_PROCESSING)) {
 diff -Nru openjdk-boot.orig/jaxp/src/com/sun/org/apache/xerces/internal/jaxp/SAXParserFactoryImpl.java openjdk-boot/jaxp/src/com/sun/org/apache/xerces/internal/jaxp/SAXParserFactoryImpl.java
---- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xerces/internal/jaxp/SAXParserFactoryImpl.java	2016-09-22 04:46:17.151705743 +0100
-+++ openjdk-boot/jaxp/src/com/sun/org/apache/xerces/internal/jaxp/SAXParserFactoryImpl.java	2016-09-22 17:51:44.163531776 +0100
+--- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xerces/internal/jaxp/SAXParserFactoryImpl.java	2017-03-30 18:03:44.000000000 +0100
++++ openjdk-boot/jaxp/src/com/sun/org/apache/xerces/internal/jaxp/SAXParserFactoryImpl.java	2017-04-04 20:01:42.671619548 +0100
 @@ -186,7 +186,7 @@
  
      private void putInFeatures(String name, boolean value){
@@ -1282,8 +1282,8 @@
          features.put(name, value ? Boolean.TRUE : Boolean.FALSE);
      }
 diff -Nru openjdk-boot.orig/jaxp/src/com/sun/org/apache/xerces/internal/parsers/XMLGrammarPreparser.java openjdk-boot/jaxp/src/com/sun/org/apache/xerces/internal/parsers/XMLGrammarPreparser.java
---- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xerces/internal/parsers/XMLGrammarPreparser.java	2016-09-22 04:46:17.159705613 +0100
-+++ openjdk-boot/jaxp/src/com/sun/org/apache/xerces/internal/parsers/XMLGrammarPreparser.java	2016-09-22 17:34:01.424783321 +0100
+--- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xerces/internal/parsers/XMLGrammarPreparser.java	2017-03-30 18:03:44.000000000 +0100
++++ openjdk-boot/jaxp/src/com/sun/org/apache/xerces/internal/parsers/XMLGrammarPreparser.java	2017-04-04 20:01:42.671619548 +0100
 @@ -85,7 +85,7 @@
      private static final Map<String, String> KNOWN_LOADERS;
  
@@ -1303,8 +1303,8 @@
          setLocale(Locale.getDefault());
          fEntityResolver = new XMLEntityManager();
 diff -Nru openjdk-boot.orig/jaxp/src/com/sun/org/apache/xerces/internal/util/AugmentationsImpl.java openjdk-boot/jaxp/src/com/sun/org/apache/xerces/internal/util/AugmentationsImpl.java
---- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xerces/internal/util/AugmentationsImpl.java	2016-09-22 04:46:17.163705547 +0100
-+++ openjdk-boot/jaxp/src/com/sun/org/apache/xerces/internal/util/AugmentationsImpl.java	2016-09-22 17:51:15.775993036 +0100
+--- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xerces/internal/util/AugmentationsImpl.java	2017-03-30 18:03:44.000000000 +0100
++++ openjdk-boot/jaxp/src/com/sun/org/apache/xerces/internal/util/AugmentationsImpl.java	2017-04-04 20:01:42.671619548 +0100
 @@ -241,7 +241,7 @@
      }
  
@@ -1315,8 +1315,8 @@
          public Object getItem(Object key) {
              return fAugmentations.get(key);
 diff -Nru openjdk-boot.orig/jaxp/src/com/sun/org/apache/xerces/internal/util/DOMErrorHandlerWrapper.java openjdk-boot/jaxp/src/com/sun/org/apache/xerces/internal/util/DOMErrorHandlerWrapper.java
---- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xerces/internal/util/DOMErrorHandlerWrapper.java	2016-09-22 04:46:17.171705417 +0100
-+++ openjdk-boot/jaxp/src/com/sun/org/apache/xerces/internal/util/DOMErrorHandlerWrapper.java	2016-09-22 17:51:05.584158638 +0100
+--- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xerces/internal/util/DOMErrorHandlerWrapper.java	2017-03-30 18:03:44.000000000 +0100
++++ openjdk-boot/jaxp/src/com/sun/org/apache/xerces/internal/util/DOMErrorHandlerWrapper.java	2017-04-04 20:01:42.671619548 +0100
 @@ -294,7 +294,7 @@
  
              // REVISIT: do well-formedness issues involving XML declaration <?xml ... ?> need to be added to hash table (no XML declaration node in DOM, but Document includes xmlEncoding, xmlStandalone, xmlVersion, etc.
@@ -1327,8 +1327,8 @@
              aDOMErrorTypeTable.put(new XMLErrorCode(XMLMessageFormatter.XML_DOMAIN, "InvalidCharInContent"), "wf-invalid-character");
              aDOMErrorTypeTable.put(new XMLErrorCode(XMLMessageFormatter.XML_DOMAIN, "TwoColonsInQName"), "wf-invalid-character-in-node-name");
 diff -Nru openjdk-boot.orig/jaxp/src/com/sun/org/apache/xerces/internal/util/EncodingMap.java openjdk-boot/jaxp/src/com/sun/org/apache/xerces/internal/util/EncodingMap.java
---- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xerces/internal/util/EncodingMap.java	2016-09-22 04:46:17.175705353 +0100
-+++ openjdk-boot/jaxp/src/com/sun/org/apache/xerces/internal/util/EncodingMap.java	2016-09-22 17:33:32.737248677 +0100
+--- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xerces/internal/util/EncodingMap.java	2017-03-30 18:03:44.000000000 +0100
++++ openjdk-boot/jaxp/src/com/sun/org/apache/xerces/internal/util/EncodingMap.java	2017-04-04 20:01:42.671619548 +0100
 @@ -489,8 +489,8 @@
      //
  
@@ -1341,8 +1341,8 @@
          // add IANA to Java encoding mappings.
          aIANA2JavaMap.put("BIG5",            "Big5");
 diff -Nru openjdk-boot.orig/jaxp/src/com/sun/org/apache/xerces/internal/utils/XMLLimitAnalyzer.java openjdk-boot/jaxp/src/com/sun/org/apache/xerces/internal/utils/XMLLimitAnalyzer.java
---- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xerces/internal/utils/XMLLimitAnalyzer.java	2016-09-22 04:46:17.187705157 +0100
-+++ openjdk-boot/jaxp/src/com/sun/org/apache/xerces/internal/utils/XMLLimitAnalyzer.java	2016-09-22 17:50:48.960428747 +0100
+--- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xerces/internal/utils/XMLLimitAnalyzer.java	2017-03-30 18:03:44.000000000 +0100
++++ openjdk-boot/jaxp/src/com/sun/org/apache/xerces/internal/utils/XMLLimitAnalyzer.java	2017-04-04 20:01:42.671619548 +0100
 @@ -144,7 +144,7 @@
  
          Map<String, Integer> cache;
@@ -1353,8 +1353,8 @@
          } else {
              cache = caches[index];
 diff -Nru openjdk-boot.orig/jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/CustomStringPool.java openjdk-boot/jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/CustomStringPool.java
---- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/CustomStringPool.java	2016-09-22 04:46:17.199704961 +0100
-+++ openjdk-boot/jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/CustomStringPool.java	2016-09-22 17:50:19.216912026 +0100
+--- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/CustomStringPool.java	2017-03-30 18:03:44.000000000 +0100
++++ openjdk-boot/jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/CustomStringPool.java	2017-04-04 20:01:42.671619548 +0100
 @@ -47,7 +47,7 @@
   */
  public class CustomStringPool extends DTMStringPool {
@@ -1365,8 +1365,8 @@
  
      public CustomStringPool() {
 diff -Nru openjdk-boot.orig/jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/sax2dtm/SAX2DTM.java openjdk-boot/jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/sax2dtm/SAX2DTM.java
---- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/sax2dtm/SAX2DTM.java	2016-09-22 04:46:17.211704765 +0100
-+++ openjdk-boot/jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/sax2dtm/SAX2DTM.java	2016-09-22 17:50:09.513069694 +0100
+--- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/sax2dtm/SAX2DTM.java	2017-03-30 18:03:44.000000000 +0100
++++ openjdk-boot/jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/sax2dtm/SAX2DTM.java	2017-04-04 20:01:42.671619548 +0100
 @@ -162,7 +162,7 @@
     * This table holds the ID string to node associations, for
     * XML IDs.
@@ -1377,8 +1377,8 @@
    /**
     * fixed dom-style names.
 diff -Nru openjdk-boot.orig/jaxp/src/com/sun/org/apache/xml/internal/resolver/CatalogEntry.java openjdk-boot/jaxp/src/com/sun/org/apache/xml/internal/resolver/CatalogEntry.java
---- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xml/internal/resolver/CatalogEntry.java	2016-09-22 04:46:17.219704635 +0100
-+++ openjdk-boot/jaxp/src/com/sun/org/apache/xml/internal/resolver/CatalogEntry.java	2016-09-22 17:49:56.073288063 +0100
+--- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xml/internal/resolver/CatalogEntry.java	2017-03-30 18:03:44.000000000 +0100
++++ openjdk-boot/jaxp/src/com/sun/org/apache/xml/internal/resolver/CatalogEntry.java	2017-04-04 20:01:42.671619548 +0100
 @@ -59,7 +59,7 @@
     * (e.g., 'BASE' or 'SYSTEM') to their type (1, 2, etc.).
     * Names are case sensitive.
@@ -1389,8 +1389,8 @@
    /** The entryTypes vector maps catalog entry types to the
        number of arguments they're required to have. */
 diff -Nru openjdk-boot.orig/jaxp/src/com/sun/org/apache/xml/internal/resolver/Catalog.java openjdk-boot/jaxp/src/com/sun/org/apache/xml/internal/resolver/Catalog.java
---- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xml/internal/resolver/Catalog.java	2016-09-22 04:46:17.227704503 +0100
-+++ openjdk-boot/jaxp/src/com/sun/org/apache/xml/internal/resolver/Catalog.java	2016-09-22 17:49:46.081450408 +0100
+--- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xml/internal/resolver/Catalog.java	2017-03-30 18:03:44.000000000 +0100
++++ openjdk-boot/jaxp/src/com/sun/org/apache/xml/internal/resolver/Catalog.java	2017-04-04 20:01:42.671619548 +0100
 @@ -341,7 +341,7 @@
     * vector. This allows the Catalog to quickly locate the reader
     * for a particular MIME type.</p>
@@ -1401,8 +1401,8 @@
    /**
     * A vector of CatalogReaders.
 diff -Nru openjdk-boot.orig/jaxp/src/com/sun/org/apache/xml/internal/resolver/helpers/BootstrapResolver.java openjdk-boot/jaxp/src/com/sun/org/apache/xml/internal/resolver/helpers/BootstrapResolver.java
---- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xml/internal/resolver/helpers/BootstrapResolver.java	2016-09-22 04:46:17.231704439 +0100
-+++ openjdk-boot/jaxp/src/com/sun/org/apache/xml/internal/resolver/helpers/BootstrapResolver.java	2016-09-22 17:20:17.438142580 +0100
+--- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xml/internal/resolver/helpers/BootstrapResolver.java	2017-03-30 18:03:44.000000000 +0100
++++ openjdk-boot/jaxp/src/com/sun/org/apache/xml/internal/resolver/helpers/BootstrapResolver.java	2017-04-04 20:01:42.671619548 +0100
 @@ -63,13 +63,13 @@
    public static final String xmlCatalogSysId = "http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd";
  
@@ -1421,8 +1421,8 @@
    /** Constructor. */
    public BootstrapResolver() {
 diff -Nru openjdk-boot.orig/jaxp/src/com/sun/org/apache/xml/internal/resolver/readers/DOMCatalogReader.java openjdk-boot/jaxp/src/com/sun/org/apache/xml/internal/resolver/readers/DOMCatalogReader.java
---- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xml/internal/resolver/readers/DOMCatalogReader.java	2016-09-22 04:46:17.239704307 +0100
-+++ openjdk-boot/jaxp/src/com/sun/org/apache/xml/internal/resolver/readers/DOMCatalogReader.java	2016-09-22 17:49:25.113791083 +0100
+--- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xml/internal/resolver/readers/DOMCatalogReader.java	2017-03-30 18:03:44.000000000 +0100
++++ openjdk-boot/jaxp/src/com/sun/org/apache/xml/internal/resolver/readers/DOMCatalogReader.java	2017-04-04 20:01:42.671619548 +0100
 @@ -78,7 +78,7 @@
     * or "{namespaceuri}elementname". The former is used if the
     * namespace URI is null.</p>
@@ -1433,8 +1433,8 @@
    /**
     * Add a new parser to the reader.
 diff -Nru openjdk-boot.orig/jaxp/src/com/sun/org/apache/xml/internal/resolver/readers/SAXCatalogReader.java openjdk-boot/jaxp/src/com/sun/org/apache/xml/internal/resolver/readers/SAXCatalogReader.java
---- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xml/internal/resolver/readers/SAXCatalogReader.java	2016-09-22 04:46:17.251704113 +0100
-+++ openjdk-boot/jaxp/src/com/sun/org/apache/xml/internal/resolver/readers/SAXCatalogReader.java	2016-09-22 17:49:34.489638748 +0100
+--- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xml/internal/resolver/readers/SAXCatalogReader.java	2017-03-30 18:03:44.000000000 +0100
++++ openjdk-boot/jaxp/src/com/sun/org/apache/xml/internal/resolver/readers/SAXCatalogReader.java	2017-04-04 20:01:42.671619548 +0100
 @@ -89,7 +89,7 @@
       * or "{namespaceuri}elementname". The former is used if the
       * namespace URI is null.</p>
@@ -1445,8 +1445,8 @@
    /** The parser in use for the current catalog. */
    private SAXCatalogParser saxParser = null;
 diff -Nru openjdk-boot.orig/jaxp/src/com/sun/org/apache/xml/internal/serialize/BaseMarkupSerializer.java openjdk-boot/jaxp/src/com/sun/org/apache/xml/internal/serialize/BaseMarkupSerializer.java
---- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xml/internal/serialize/BaseMarkupSerializer.java	2016-09-22 04:46:17.255704047 +0100
-+++ openjdk-boot/jaxp/src/com/sun/org/apache/xml/internal/serialize/BaseMarkupSerializer.java	2016-09-22 17:43:08.375907861 +0100
+--- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xml/internal/serialize/BaseMarkupSerializer.java	2017-03-30 18:03:44.000000000 +0100
++++ openjdk-boot/jaxp/src/com/sun/org/apache/xml/internal/serialize/BaseMarkupSerializer.java	2017-04-04 20:01:42.675619482 +0100
 @@ -820,7 +820,7 @@
          throws SAXException
      {
@@ -1457,8 +1457,8 @@
      }
  
 diff -Nru openjdk-boot.orig/jaxp/src/com/sun/org/apache/xml/internal/serialize/HTMLdtd.java openjdk-boot/jaxp/src/com/sun/org/apache/xml/internal/serialize/HTMLdtd.java
---- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xml/internal/serialize/HTMLdtd.java	2016-09-22 04:46:17.263703917 +0100
-+++ openjdk-boot/jaxp/src/com/sun/org/apache/xml/internal/serialize/HTMLdtd.java	2016-09-22 17:17:12.737134942 +0100
+--- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xml/internal/serialize/HTMLdtd.java	2017-03-30 18:03:44.000000000 +0100
++++ openjdk-boot/jaxp/src/com/sun/org/apache/xml/internal/serialize/HTMLdtd.java	2017-04-04 20:01:42.675619482 +0100
 @@ -371,8 +371,8 @@
          if ( _byName != null )
              return;
@@ -1489,8 +1489,8 @@
          defineBoolean( "BUTTON", "disabled" );
          defineBoolean( "DIR", "compact" );
 diff -Nru openjdk-boot.orig/jaxp/src/com/sun/org/apache/xml/internal/serializer/AttributesImplSerializer.java openjdk-boot/jaxp/src/com/sun/org/apache/xml/internal/serializer/AttributesImplSerializer.java
---- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xml/internal/serializer/AttributesImplSerializer.java	2016-09-22 04:46:17.271703785 +0100
-+++ openjdk-boot/jaxp/src/com/sun/org/apache/xml/internal/serializer/AttributesImplSerializer.java	2016-09-22 17:42:43.616309759 +0100
+--- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xml/internal/serializer/AttributesImplSerializer.java	2017-03-30 18:03:44.000000000 +0100
++++ openjdk-boot/jaxp/src/com/sun/org/apache/xml/internal/serializer/AttributesImplSerializer.java	2017-04-04 20:01:42.675619482 +0100
 @@ -48,7 +48,7 @@
       * The keys to the hashtable to find the index are either
       * "prefix:localName"  or "{uri}localName".
@@ -1501,8 +1501,8 @@
      private final StringBuffer m_buff = new StringBuffer();
  
 diff -Nru openjdk-boot.orig/jaxp/src/com/sun/org/apache/xml/internal/serializer/Encodings.java openjdk-boot/jaxp/src/com/sun/org/apache/xml/internal/serializer/Encodings.java
---- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xml/internal/serializer/Encodings.java	2016-09-21 06:14:42.755430296 +0100
-+++ openjdk-boot/jaxp/src/com/sun/org/apache/xml/internal/serializer/Encodings.java	2016-09-21 06:38:08.152139860 +0100
+--- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xml/internal/serializer/Encodings.java	2017-04-04 19:17:25.478923995 +0100
++++ openjdk-boot/jaxp/src/com/sun/org/apache/xml/internal/serializer/Encodings.java	2017-04-04 20:01:42.675619482 +0100
 @@ -297,8 +297,8 @@
      //
      private final static class EncodingInfos {
@@ -1524,8 +1524,8 @@
                      final String javaName = (String) keys.nextElement();
                      final String[] mimes = parseMimeTypes(props.getProperty(javaName));
 diff -Nru openjdk-boot.orig/jaxp/src/com/sun/org/apache/xml/internal/utils/DOMHelper.java openjdk-boot/jaxp/src/com/sun/org/apache/xml/internal/utils/DOMHelper.java
---- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xml/internal/utils/DOMHelper.java	2016-09-22 04:46:17.279703656 +0100
-+++ openjdk-boot/jaxp/src/com/sun/org/apache/xml/internal/utils/DOMHelper.java	2016-09-22 17:42:30.992514664 +0100
+--- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xml/internal/utils/DOMHelper.java	2017-03-30 18:03:44.000000000 +0100
++++ openjdk-boot/jaxp/src/com/sun/org/apache/xml/internal/utils/DOMHelper.java	2017-04-04 20:01:42.675619482 +0100
 @@ -563,7 +563,7 @@
    /**
     * An experiment for the moment.
@@ -1536,8 +1536,8 @@
    /** Object to put into the m_NSInfos table that tells that a node has not been
     *  processed, but has xmlns namespace decls.  */
 diff -Nru openjdk-boot.orig/jaxp/src/com/sun/org/apache/xml/internal/utils/ElemDesc.java openjdk-boot/jaxp/src/com/sun/org/apache/xml/internal/utils/ElemDesc.java
---- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xml/internal/utils/ElemDesc.java	2016-09-22 04:46:17.287703526 +0100
-+++ openjdk-boot/jaxp/src/com/sun/org/apache/xml/internal/utils/ElemDesc.java	2016-09-22 17:42:20.992676976 +0100
+--- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xml/internal/utils/ElemDesc.java	2017-03-30 18:03:44.000000000 +0100
++++ openjdk-boot/jaxp/src/com/sun/org/apache/xml/internal/utils/ElemDesc.java	2017-04-04 20:01:42.675619482 +0100
 @@ -159,7 +159,7 @@
    {
  
@@ -1548,8 +1548,8 @@
      m_attrs.put(name, flags);
    }
 diff -Nru openjdk-boot.orig/jaxp/src/com/sun/org/apache/xpath/internal/compiler/Keywords.java openjdk-boot/jaxp/src/com/sun/org/apache/xpath/internal/compiler/Keywords.java
---- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xpath/internal/compiler/Keywords.java	2016-09-22 04:46:17.295703395 +0100
-+++ openjdk-boot/jaxp/src/com/sun/org/apache/xpath/internal/compiler/Keywords.java	2016-09-22 17:16:24.129922288 +0100
+--- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xpath/internal/compiler/Keywords.java	2017-03-30 18:03:44.000000000 +0100
++++ openjdk-boot/jaxp/src/com/sun/org/apache/xpath/internal/compiler/Keywords.java	2017-04-04 20:01:42.675619482 +0100
 @@ -333,10 +333,10 @@
      public static final String FUNC_DOCLOCATION_STRING = "document-location";
  
@@ -1566,8 +1566,8 @@
          axisnames.put(FROM_ANCESTORS_STRING, OpCodes.FROM_ANCESTORS);
          axisnames.put(FROM_ANCESTORS_OR_SELF_STRING, OpCodes.FROM_ANCESTORS_OR_SELF);
 diff -Nru openjdk-boot.orig/jaxp/src/com/sun/xml/internal/stream/dtd/nonvalidating/DTDGrammar.java openjdk-boot/jaxp/src/com/sun/xml/internal/stream/dtd/nonvalidating/DTDGrammar.java
---- openjdk-boot.orig/jaxp/src/com/sun/xml/internal/stream/dtd/nonvalidating/DTDGrammar.java	2016-09-22 04:46:17.319703003 +0100
-+++ openjdk-boot/jaxp/src/com/sun/xml/internal/stream/dtd/nonvalidating/DTDGrammar.java	2016-09-22 17:33:11.401594764 +0100
+--- openjdk-boot.orig/jaxp/src/com/sun/xml/internal/stream/dtd/nonvalidating/DTDGrammar.java	2017-03-30 18:03:44.000000000 +0100
++++ openjdk-boot/jaxp/src/com/sun/xml/internal/stream/dtd/nonvalidating/DTDGrammar.java	2017-04-04 20:01:42.675619482 +0100
 @@ -140,7 +140,7 @@
      private int fAttributeDeclNextAttributeDeclIndex[][] = new int[INITIAL_CHUNK_COUNT][];
  
@@ -1587,8 +1587,8 @@
      /** Default constructor. */
      public DTDGrammar(SymbolTable symbolTable) {
 diff -Nru openjdk-boot.orig/jaxp/src/com/sun/xml/internal/stream/XMLEntityStorage.java openjdk-boot/jaxp/src/com/sun/xml/internal/stream/XMLEntityStorage.java
---- openjdk-boot.orig/jaxp/src/com/sun/xml/internal/stream/XMLEntityStorage.java	2016-09-22 04:46:17.327702874 +0100
-+++ openjdk-boot/jaxp/src/com/sun/xml/internal/stream/XMLEntityStorage.java	2016-09-22 17:41:59.905019253 +0100
+--- openjdk-boot.orig/jaxp/src/com/sun/xml/internal/stream/XMLEntityStorage.java	2017-03-30 18:03:44.000000000 +0100
++++ openjdk-boot/jaxp/src/com/sun/xml/internal/stream/XMLEntityStorage.java	2017-04-04 20:01:42.675619482 +0100
 @@ -63,7 +63,7 @@
      protected boolean fWarnDuplicateEntityDef;
  
@@ -1599,8 +1599,8 @@
      protected Entity.ScannedEntity fCurrentEntity ;
  
 diff -Nru openjdk-boot.orig/jaxp/src/org/xml/sax/helpers/NamespaceSupport.java openjdk-boot/jaxp/src/org/xml/sax/helpers/NamespaceSupport.java
---- openjdk-boot.orig/jaxp/src/org/xml/sax/helpers/NamespaceSupport.java	2016-09-22 04:46:17.335702743 +0100
-+++ openjdk-boot/jaxp/src/org/xml/sax/helpers/NamespaceSupport.java	2016-09-22 04:53:28.408671584 +0100
+--- openjdk-boot.orig/jaxp/src/org/xml/sax/helpers/NamespaceSupport.java	2017-03-30 18:03:44.000000000 +0100
++++ openjdk-boot/jaxp/src/org/xml/sax/helpers/NamespaceSupport.java	2017-04-04 20:01:42.675619482 +0100
 @@ -465,7 +465,7 @@
       */
      public Enumeration getPrefixes (String uri)
@@ -1671,8 +1671,8 @@
          }
  
 diff -Nru openjdk-boot.orig/jdk/src/macosx/bundle/appbundler/src/com/oracle/appbundler/AppBundlerTask.java openjdk-boot/jdk/src/macosx/bundle/appbundler/src/com/oracle/appbundler/AppBundlerTask.java
---- openjdk-boot.orig/jdk/src/macosx/bundle/appbundler/src/com/oracle/appbundler/AppBundlerTask.java	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/macosx/bundle/appbundler/src/com/oracle/appbundler/AppBundlerTask.java	2016-09-21 06:38:08.152139860 +0100
+--- openjdk-boot.orig/jdk/src/macosx/bundle/appbundler/src/com/oracle/appbundler/AppBundlerTask.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/macosx/bundle/appbundler/src/com/oracle/appbundler/AppBundlerTask.java	2017-04-04 20:01:42.675619482 +0100
 @@ -68,10 +68,10 @@
      // JVM info properties
      private File runtime = null;
@@ -1689,8 +1689,8 @@
      public static final String EXECUTABLE_NAME = "JavaAppLauncher";
      public static final String DEFAULT_ICON_NAME = "GenericApp.icns";
 diff -Nru openjdk-boot.orig/jdk/src/macosx/classes/com/apple/laf/AquaPainter.java openjdk-boot/jdk/src/macosx/classes/com/apple/laf/AquaPainter.java
---- openjdk-boot.orig/jdk/src/macosx/classes/com/apple/laf/AquaPainter.java	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/macosx/classes/com/apple/laf/AquaPainter.java	2016-09-21 06:38:08.152139860 +0100
+--- openjdk-boot.orig/jdk/src/macosx/classes/com/apple/laf/AquaPainter.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/macosx/classes/com/apple/laf/AquaPainter.java	2017-04-04 20:01:42.675619482 +0100
 @@ -41,7 +41,7 @@
  
  abstract class AquaPainter <T extends JRSUIState> {
@@ -1719,8 +1719,8 @@
  
          @Override
 diff -Nru openjdk-boot.orig/jdk/src/macosx/classes/com/apple/laf/AquaUtils.java openjdk-boot/jdk/src/macosx/classes/com/apple/laf/AquaUtils.java
---- openjdk-boot.orig/jdk/src/macosx/classes/com/apple/laf/AquaUtils.java	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/macosx/classes/com/apple/laf/AquaUtils.java	2016-09-21 06:38:08.152139860 +0100
+--- openjdk-boot.orig/jdk/src/macosx/classes/com/apple/laf/AquaUtils.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/macosx/classes/com/apple/laf/AquaUtils.java	2017-04-04 20:01:42.675619482 +0100
 @@ -210,7 +210,7 @@
          private Map<K, V> refs;
  
@@ -1731,8 +1731,8 @@
              final V cachedValue = refs.get(key);
              if (cachedValue != null) return cachedValue;
 diff -Nru openjdk-boot.orig/jdk/src/macosx/classes/com/apple/laf/ImageCache.java openjdk-boot/jdk/src/macosx/classes/com/apple/laf/ImageCache.java
---- openjdk-boot.orig/jdk/src/macosx/classes/com/apple/laf/ImageCache.java	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/macosx/classes/com/apple/laf/ImageCache.java	2016-09-21 06:38:08.152139860 +0100
+--- openjdk-boot.orig/jdk/src/macosx/classes/com/apple/laf/ImageCache.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/macosx/classes/com/apple/laf/ImageCache.java	2017-04-04 20:01:42.675619482 +0100
 @@ -41,7 +41,7 @@
   */
  final class ImageCache {
@@ -1752,8 +1752,8 @@
      // Singleton Instance
      private static final RecyclableSingleton<ImageCache> instance = new RecyclableSingleton<ImageCache>() {
 diff -Nru openjdk-boot.orig/jdk/src/macosx/classes/sun/awt/CGraphicsEnvironment.java openjdk-boot/jdk/src/macosx/classes/sun/awt/CGraphicsEnvironment.java
---- openjdk-boot.orig/jdk/src/macosx/classes/sun/awt/CGraphicsEnvironment.java	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/macosx/classes/sun/awt/CGraphicsEnvironment.java	2016-09-21 06:38:08.152139860 +0100
+--- openjdk-boot.orig/jdk/src/macosx/classes/sun/awt/CGraphicsEnvironment.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/macosx/classes/sun/awt/CGraphicsEnvironment.java	2017-04-04 20:01:42.675619482 +0100
 @@ -88,7 +88,7 @@
      private native void deregisterDisplayReconfiguration(long context);
  
@@ -1773,8 +1773,8 @@
  
              int mainID = getMainDisplayID();
 diff -Nru openjdk-boot.orig/jdk/src/macosx/classes/sun/nio/ch/KQueueSelectorImpl.java openjdk-boot/jdk/src/macosx/classes/sun/nio/ch/KQueueSelectorImpl.java
---- openjdk-boot.orig/jdk/src/macosx/classes/sun/nio/ch/KQueueSelectorImpl.java	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/macosx/classes/sun/nio/ch/KQueueSelectorImpl.java	2016-09-21 06:38:08.152139860 +0100
+--- openjdk-boot.orig/jdk/src/macosx/classes/sun/nio/ch/KQueueSelectorImpl.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/macosx/classes/sun/nio/ch/KQueueSelectorImpl.java	2017-04-04 20:01:42.675619482 +0100
 @@ -86,7 +86,7 @@
          fd1 = (int)fds;
          kqueueWrapper = new KQueueArrayWrapper();
@@ -1785,8 +1785,8 @@
      }
  
 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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/beans/decoder/DocumentHandler.java	2016-09-21 06:38:08.152139860 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/beans/decoder/DocumentHandler.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/beans/decoder/DocumentHandler.java	2017-04-04 20:01:42.675619482 +0100
 @@ -63,9 +63,10 @@
   */
  public final class DocumentHandler extends DefaultHandler {
@@ -1802,8 +1802,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/beans/TypeResolver.java	2016-09-21 06:38:08.152139860 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/beans/TypeResolver.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/beans/TypeResolver.java	2017-04-04 20:01:42.675619482 +0100
 @@ -46,7 +46,7 @@
   */
  public final class TypeResolver {
@@ -1823,8 +1823,8 @@
                      CACHE.put(actual, map);
                  }
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/beans/util/Cache.java openjdk-boot/jdk/src/share/classes/com/sun/beans/util/Cache.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/beans/util/Cache.java	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/beans/util/Cache.java	2016-09-21 06:38:08.156139792 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/beans/util/Cache.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/beans/util/Cache.java	2017-04-04 20:01:42.675619482 +0100
 @@ -45,7 +45,7 @@
      private final Kind keyKind; // a reference kind for the cache keys
      private final Kind valueKind; // a reference kind for the cache values
@@ -1871,8 +1871,8 @@
          };
  
 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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Attribute.java	2016-09-21 06:38:08.156139792 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Attribute.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Attribute.java	2017-04-04 20:01:42.675619482 +0100
 @@ -103,9 +103,9 @@
          return this.def.compareTo(that.def);
      }
@@ -1944,8 +1944,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	2016-09-21 06:14:42.819429236 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/BandStructure.java	2016-09-23 14:34:37.507505288 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/BandStructure.java	2017-04-04 19:17:25.750919638 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/BandStructure.java	2017-04-04 20:01:42.675619482 +0100
 @@ -257,7 +257,7 @@
          assert(basicCodings[_meta_default] == null);
          assert(basicCodings[_meta_canon_min] != null);
@@ -2015,8 +2015,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	2016-09-21 06:14:42.647432085 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/ClassReader.java	2016-09-21 06:38:08.156139792 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/ClassReader.java	2017-04-04 19:17:25.422924892 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/ClassReader.java	2017-04-04 20:01:42.675619482 +0100
 @@ -466,7 +466,7 @@
  
      void readInnerClasses(Class cls) throws IOException {
@@ -2027,8 +2027,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/CodingChooser.java	2016-09-21 06:38:08.156139792 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/CodingChooser.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/CodingChooser.java	2017-04-04 20:01:42.679619417 +0100
 @@ -743,9 +743,9 @@
          // Steps 1/2/3 are interdependent, and may be iterated.
          // Steps 4 and 5 may be decided independently afterward.
@@ -2065,8 +2065,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Coding.java	2016-09-21 06:38:08.156139792 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Coding.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Coding.java	2017-04-04 20:01:42.679619417 +0100
 @@ -402,7 +402,7 @@
      private static Map<Coding, Coding> codeMap;
  
@@ -2077,8 +2077,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/ConstantPool.java	2016-09-21 06:38:08.156139792 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/ConstantPool.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/ConstantPool.java	2017-04-04 20:01:42.679619417 +0100
 @@ -917,7 +917,7 @@
      public static
      Index[] partition(Index ix, int[] keys) {
@@ -2107,8 +2107,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	2016-09-21 06:14:42.819429236 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java	2016-09-21 06:38:08.156139792 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java	2017-04-04 19:17:25.754919573 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java	2017-04-04 20:01:42.679619417 +0100
 @@ -61,7 +61,7 @@
                  ResourceBundle.getBundle("com.sun.java.util.jar.pack.DriverResource");
  
@@ -2146,8 +2146,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/FixedList.java	2016-09-21 06:38:08.156139792 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/FixedList.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/FixedList.java	2017-04-04 20:01:42.683619352 +0100
 @@ -45,7 +45,7 @@
      private final ArrayList<E> flist;
  
@@ -2158,8 +2158,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/Fixups.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Fixups.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Fixups.java	2016-09-23 14:35:12.990927560 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Fixups.java	2016-09-23 14:35:35.306564229 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Fixups.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Fixups.java	2017-04-04 20:01:42.683619352 +0100
 @@ -126,11 +126,11 @@
      public void setBytes(byte[] newBytes) {
          if (bytes == newBytes)  return;
@@ -2184,8 +2184,8 @@
  
      static final int LOC_SHIFT = 1;
 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	2016-09-21 06:14:42.647432085 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Package.java	2016-09-21 15:07:04.335617782 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Package.java	2017-04-04 19:17:25.426924828 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Package.java	2017-04-04 20:01:42.683619352 +0100
 @@ -112,7 +112,7 @@
      public static final Attribute.Layout attrSourceFileSpecial;
      public static final Map<Attribute.Layout, Attribute> attrDefs;
@@ -2350,8 +2350,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	2016-09-21 06:14:42.819429236 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageReader.java	2016-09-21 06:46:27.043853818 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageReader.java	2017-04-04 19:17:25.754919573 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageReader.java	2017-04-04 20:01:42.683619352 +0100
 @@ -686,7 +686,7 @@
          cp_Signature_classes.expectLength(getIntTotal(numSigClasses));
          cp_Signature_classes.readFrom(in);
@@ -2465,10 +2465,10 @@
              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	2016-09-21 06:14:42.819429236 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageWriter.java	2016-09-21 06:46:09.860139005 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageWriter.java	2017-04-04 19:17:25.754919573 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageWriter.java	2017-04-04 20:05:29.767912609 +0100
 @@ -116,7 +116,7 @@
-     int[][]     attrCounts;       // count attr. occurences
+     int[][]     attrCounts;       // count attr. occurrences
  
      void setup() {
 -        requiredEntries = new HashSet<>();
@@ -2523,8 +2523,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackerImpl.java	2016-09-21 06:38:08.164139659 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PackerImpl.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackerImpl.java	2017-04-04 20:01:42.687619286 +0100
 @@ -181,8 +181,8 @@
          final Map<Attribute.Layout, Attribute> attrDefs;
          final Map<Attribute.Layout, String> attrCommands;
@@ -2555,8 +2555,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PopulationCoding.java	2016-09-21 06:38:08.164139659 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PopulationCoding.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PopulationCoding.java	2017-04-04 20:01:42.687619286 +0100
 @@ -309,7 +309,7 @@
          // As each new value is added, we assert that the value
          // was not already in the set.
@@ -2567,8 +2567,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	2016-09-21 06:14:42.819429236 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PropMap.java	2016-09-21 06:44:57.729336272 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PropMap.java	2017-04-04 19:17:25.754919573 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PropMap.java	2017-04-04 20:01:42.687619286 +0100
 @@ -47,8 +47,9 @@
   */
  
@@ -2591,8 +2591,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/TLGlobals.java	2016-09-21 06:38:08.164139659 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/TLGlobals.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/TLGlobals.java	2017-04-04 20:01:42.687619286 +0100
 @@ -58,12 +58,12 @@
      private final Map<String, MemberEntry> memberEntries;
  
@@ -2613,8 +2613,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	2016-09-21 06:14:42.819429236 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/UnpackerImpl.java	2016-09-21 06:38:08.164139659 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/UnpackerImpl.java	2017-04-04 19:17:25.754919573 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/UnpackerImpl.java	2017-04-04 20:01:42.687619286 +0100
 @@ -232,7 +232,7 @@
              props.setProperty(java.util.jar.Pack200.Unpacker.PROGRESS,"50");
              pkg.ensureAllClassFiles();
@@ -2625,8 +2625,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	2016-09-21 06:14:42.819429236 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Utils.java	2016-09-21 06:38:08.164139659 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Utils.java	2017-04-04 19:17:25.754919573 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Utils.java	2017-04-04 20:01:42.687619286 +0100
 @@ -132,7 +132,7 @@
      // Keep a TLS point to the global data and environment.
      // This makes it simpler to supply environmental options
@@ -2637,8 +2637,8 @@
      // convenience methods to access the TL globals
      static TLGlobals getTLGlobals() {
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/jmx/remote/security/SubjectDelegator.java openjdk-boot/jdk/src/share/classes/com/sun/jmx/remote/security/SubjectDelegator.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/jmx/remote/security/SubjectDelegator.java	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/jmx/remote/security/SubjectDelegator.java	2016-09-21 06:38:08.164139659 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/jmx/remote/security/SubjectDelegator.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/jmx/remote/security/SubjectDelegator.java	2017-04-04 20:01:42.687619286 +0100
 @@ -56,7 +56,7 @@
          // principal in the delegated subject
          //
@@ -2648,9 +2648,508 @@
          for(Principal p : ps) {
              final String pname = p.getClass().getName() + "." + p.getName();
              permissions.add(new SubjectDelegationPermission(pname));
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/jndi/cosnaming/CNCtx.java openjdk-boot/jdk/src/share/classes/com/sun/jndi/cosnaming/CNCtx.java
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/jndi/cosnaming/CNCtx.java	2017-04-06 04:53:19.384497876 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/jndi/cosnaming/CNCtx.java	2017-04-06 04:54:22.691484356 +0100
+@@ -1093,7 +1093,7 @@
+     @SuppressWarnings("unchecked")
+     public  Hashtable<String, java.lang.Object> getEnvironment() throws NamingException {
+         if (_env == null) {
+-            return new Hashtable<>(5, 0.75f);
++            return new Hashtable<String, java.lang.Object>(5, 0.75f);
+         } else {
+             return (Hashtable<String, java.lang.Object>)_env.clone();
+         }
+@@ -1122,7 +1122,7 @@
+         java.lang.Object propValue)
+         throws NamingException {
+             if (_env == null) {
+-                _env = new Hashtable<>(7, 0.75f);
++                _env = new Hashtable<String, java.lang.Object>(7, 0.75f);
+             } else {
+                 // copy-on-write
+                 _env = (Hashtable<String, java.lang.Object>)_env.clone();
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/jndi/cosnaming/CNNameParser.java openjdk-boot/jdk/src/share/classes/com/sun/jndi/cosnaming/CNNameParser.java
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/jndi/cosnaming/CNNameParser.java	2017-04-06 04:53:19.392497748 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/jndi/cosnaming/CNNameParser.java	2017-04-06 04:53:56.667900993 +0100
+@@ -132,7 +132,7 @@
+         throws InvalidNameException {
+ 
+         int len = str.length();
+-        Vector<String> components = new Vector<>(10);
++        Vector<String> components = new Vector<String>(10);
+         char[] id = new char[len];
+         char[] kind = new char[len];
+         int idCount, kindCount;
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/jndi/cosnaming/IiopUrl.java openjdk-boot/jdk/src/share/classes/com/sun/jndi/cosnaming/IiopUrl.java
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/jndi/cosnaming/IiopUrl.java	2017-04-06 04:53:19.404497556 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/jndi/cosnaming/IiopUrl.java	2017-04-06 04:53:49.948008576 +0100
+@@ -185,7 +185,7 @@
+         } else {
+             stringName = UrlUtil.decode(url.substring(addrEnd+1));
+         }
+-        addresses = new Vector<>(3);
++        addresses = new Vector<Address>(3);
+         if (oldFormat) {
+             // Only one host:port part, not multiple
+             addresses.addElement(
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/jndi/dns/DnsContextFactory.java openjdk-boot/jdk/src/share/classes/com/sun/jndi/dns/DnsContextFactory.java
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/jndi/dns/DnsContextFactory.java	2017-04-06 04:56:21.401583647 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/jndi/dns/DnsContextFactory.java	2017-04-06 04:57:37.036372493 +0100
+@@ -59,7 +59,7 @@
+ 
+     public Context getInitialContext(Hashtable<?,?> env) throws NamingException {
+         if (env == null) {
+-            env = new Hashtable<>(5);
++            env = new Hashtable<Object,Object>(5);
+         }
+         return urlToContext(getInitCtxUrl(env), env);
+     }
+@@ -228,7 +228,7 @@
+         if (security == null || input == null || input.isEmpty()) {
+             return input;
+         } else {
+-            List<String> output = new ArrayList<>();
++            List<String> output = new ArrayList<String>();
+             for (String platformServer: input) {
+                 int colon = platformServer.indexOf(':',
+                         platformServer.indexOf(']') + 1);
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/jndi/dns/DnsName.java openjdk-boot/jdk/src/share/classes/com/sun/jndi/dns/DnsName.java
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/jndi/dns/DnsName.java	2017-04-06 04:56:21.409583519 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/jndi/dns/DnsName.java	2017-04-06 04:57:20.636635115 +0100
+@@ -110,7 +110,7 @@
+     // The labels of this domain name, as a list of strings.  Index 0
+     // corresponds to the leftmost (least significant) label:  note that
+     // this is the reverse of the ordering used by the Name interface.
+-    private ArrayList<String> labels = new ArrayList<>();
++    private ArrayList<String> labels = new ArrayList<String>();
+ 
+     // The number of octets needed to carry this domain name in a DNS
+     // packet.  Equal to the sum of the lengths of each label, plus the
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/jndi/dns/NameNode.java openjdk-boot/jdk/src/share/classes/com/sun/jndi/dns/NameNode.java
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/jndi/dns/NameNode.java	2017-04-06 04:56:21.417583391 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/jndi/dns/NameNode.java	2017-04-06 04:57:10.308800499 +0100
+@@ -140,7 +140,7 @@
+ 
+             NameNode child = null;
+             if (node.children == null) {
+-                node.children = new Hashtable<>();
++                node.children = new Hashtable<String,NameNode>();
+             } else {
+                 child = node.children.get(key);
+             }
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/jndi/dns/ResourceRecords.java openjdk-boot/jdk/src/share/classes/com/sun/jndi/dns/ResourceRecords.java
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/jndi/dns/ResourceRecords.java	2017-04-06 04:56:21.425583263 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/jndi/dns/ResourceRecords.java	2017-04-06 04:56:48.589148300 +0100
+@@ -45,10 +45,10 @@
+     // Four sections:  question, answer, authority, additional.
+     // The question section is treated as being made up of (shortened)
+     // resource records, although this isn't technically how it's defined.
+-    Vector<ResourceRecord> question = new Vector<>();
+-    Vector<ResourceRecord> answer = new Vector<>();
+-    Vector<ResourceRecord> authority = new Vector<>();
+-    Vector<ResourceRecord> additional = new Vector<>();
++    Vector<ResourceRecord> question = new Vector<ResourceRecord>();
++    Vector<ResourceRecord> answer = new Vector<ResourceRecord>();
++    Vector<ResourceRecord> authority = new Vector<ResourceRecord>();
++    Vector<ResourceRecord> additional = new Vector<ResourceRecord>();
+ 
+     /*
+      * True if these resource records are from a zone transfer.  In
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/jndi/ldap/EventSupport.java openjdk-boot/jdk/src/share/classes/com/sun/jndi/ldap/EventSupport.java
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/jndi/ldap/EventSupport.java	2017-04-06 03:29:05.129520180 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/jndi/ldap/EventSupport.java	2017-04-06 03:31:38.959055475 +0100
+@@ -119,7 +119,7 @@
+      * NamingEventNotifiers; hashed by search arguments;
+      */
+     private Hashtable<NotifierArgs, NamingEventNotifier> notifiers =
+-            new Hashtable<>(11);
++	new Hashtable<NotifierArgs, NamingEventNotifier>(11);
+ 
+     /**
+      * List of unsolicited notification listeners.
+@@ -165,7 +165,7 @@
+         if (l instanceof UnsolicitedNotificationListener) {
+             // Add listener to this's list of unsolicited notifiers
+             if (unsolicited == null) {
+-                unsolicited = new Vector<>(3);
++                unsolicited = new Vector<UnsolicitedNotificationListener>(3);
+             }
+ 
+             unsolicited.addElement((UnsolicitedNotificationListener)l);
+@@ -194,7 +194,7 @@
+         if (l instanceof UnsolicitedNotificationListener) {
+             // Add listener to this's list of unsolicited notifiers
+             if (unsolicited == null) {
+-                unsolicited = new Vector<>(3);
++                unsolicited = new Vector<UnsolicitedNotificationListener>(3);
+             }
+             unsolicited.addElement((UnsolicitedNotificationListener)l);
+         }
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/jndi/ldap/LdapClient.java openjdk-boot/jdk/src/share/classes/com/sun/jndi/ldap/LdapClient.java
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/jndi/ldap/LdapClient.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/jndi/ldap/LdapClient.java	2017-04-04 20:21:46.488013102 +0100
+@@ -82,7 +82,7 @@
+ 
+     // Default list of binary attributes
+     private static final Hashtable<String, Boolean> defaultBinaryAttrs =
+-            new Hashtable<>(23,0.75f);
++	new Hashtable<String,Boolean>(23,0.75f);
+     static {
+         defaultBinaryAttrs.put("userpassword", Boolean.TRUE);      //2.5.4.35
+         defaultBinaryAttrs.put("javaserializeddata", Boolean.TRUE);
+@@ -617,7 +617,7 @@
+             res.entries.setSize(0); // clear the (previous) set of entries
+         } else {
+             res.entries =
+-                new Vector<>(batchSize == Integer.MAX_VALUE ? 32 : batchSize);
++                new Vector<LdapEntry>(batchSize == Integer.MAX_VALUE ? 32 : batchSize);
+         }
+ 
+         if (res.referrals != null) {
+@@ -667,7 +667,7 @@
+             } else if ((seq == LDAP_REP_SEARCH_REF) && isLdapv3) {
+ 
+                 // handle LDAPv3 search reference
+-                Vector<String> URLs = new Vector<>(4);
++                Vector<String> URLs = new Vector<String>(4);
+ 
+                 // %%% Although not strictly correct, some LDAP servers
+                 //     encode the SEQUENCE OF tag in the SearchResultRef
+@@ -683,7 +683,7 @@
+                 }
+ 
+                 if (res.referrals == null) {
+-                    res.referrals = new Vector<>(4);
++                    res.referrals = new Vector<Vector<String>>(4);
+                 }
+                 res.referrals.addElement(URLs);
+                 res.resControls = isLdapv3 ? parseControls(replyBer) : null;
+@@ -773,7 +773,7 @@
+             (replyBer.bytesLeft() > 0) &&
+             (replyBer.peekByte() == LDAP_REP_REFERRAL)) {
+ 
+-            Vector<String> URLs = new Vector<>(4);
++            Vector<String> URLs = new Vector<String>(4);
+             int[] seqlen = new int[1];
+ 
+             replyBer.parseSeq(seqlen);
+@@ -785,7 +785,7 @@
+             }
+ 
+             if (res.referrals == null) {
+-                res.referrals = new Vector<>(4);
++                res.referrals = new Vector<Vector<String>>(4);
+             }
+             res.referrals.addElement(URLs);
+         }
+@@ -796,7 +796,7 @@
+ 
+         // handle LDAPv3 controls (if present)
+         if ((replyBer.bytesLeft() > 0) && (replyBer.peekByte() == LDAP_CONTROLS)) {
+-            Vector<Control> ctls = new Vector<>(4);
++            Vector<Control> ctls = new Vector<Control>(4);
+             String controlOID;
+             boolean criticality = false; // default
+             byte[] controlValue = null;  // optional
+@@ -1574,7 +1574,7 @@
+     private void notifyUnsolicited(Object e) {
+         Vector<LdapCtx> unsolicitedCopy;
+         synchronized (unsolicited) {
+-            unsolicitedCopy = new Vector<>(unsolicited);
++            unsolicitedCopy = new Vector<LdapCtx>(unsolicited);
+             if (e instanceof NamingException) {
+                 unsolicited.setSize(0);  // no more listeners after exception
+             }
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/jndi/ldap/LdapCtxFactory.java openjdk-boot/jdk/src/share/classes/com/sun/jndi/ldap/LdapCtxFactory.java
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/jndi/ldap/LdapCtxFactory.java	2017-04-06 03:29:05.137520052 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/jndi/ldap/LdapCtxFactory.java	2017-04-06 03:35:11.707645827 +0100
+@@ -221,7 +221,7 @@
+      * Used by Obj and obj/RemoteToAttrs too so must be public
+      */
+     public static Attribute createTypeNameAttr(Class<?> cl) {
+-        Vector<String> v = new Vector<>(10);
++        Vector<String> v = new Vector<String>(10);
+         String[] types = getTypeNames(cl, v);
+         if (types.length > 0) {
+             BasicAttribute tAttr =
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/jndi/ldap/LdapCtx.java openjdk-boot/jdk/src/share/classes/com/sun/jndi/ldap/LdapCtx.java
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/jndi/ldap/LdapCtx.java	2017-04-06 03:29:05.145519924 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/jndi/ldap/LdapCtx.java	2017-04-06 03:33:41.869085767 +0100
+@@ -313,7 +313,7 @@
+             this.useDefaultPortNumber = true;
+         }
+ 
+-        schemaTrees = new Hashtable<>(11, 0.75f);
++        schemaTrees = new Hashtable<String, DirContext>(11, 0.75f);
+         initEnv();
+         try {
+             connect(false);
+@@ -2569,19 +2569,19 @@
+             urlCount++;
+         }
+ 
+-        Vector<Vector<String>> referrals = new Vector<>(urlCount);
++        Vector<Vector<String>> referrals = new Vector<Vector<String>>(urlCount);
+         int iURL;
+         int i = 0;
+ 
+         separator = refString.indexOf('\n');
+         iURL = separator + 1;
+         while ((separator = refString.indexOf('\n', iURL)) >= 0) {
+-            Vector<String> referral = new Vector<>(1);
++            Vector<String> referral = new Vector<String>(1);
+             referral.addElement(refString.substring(iURL, separator));
+             referrals.addElement(referral);
+             iURL = separator + 1;
+         }
+-        Vector<String> referral = new Vector<>(1);
++        Vector<String> referral = new Vector<String>(1);
+         referral.addElement(refString.substring(iURL));
+         referrals.addElement(referral);
+ 
+@@ -2596,7 +2596,7 @@
+         if (attrIds == null) {
+             binaryAttrs = null;
+         } else {
+-            binaryAttrs = new Hashtable<>(11, 0.75f);
++            binaryAttrs = new Hashtable<String, Boolean>(11, 0.75f);
+             StringTokenizer tokens =
+                 new StringTokenizer(attrIds.toLowerCase(Locale.ENGLISH), " ");
+ 
+@@ -2679,7 +2679,7 @@
+                 }
+ 
+                 // reset the cache before a new connection is established
+-                schemaTrees = new Hashtable<>(11, 0.75f);
++                schemaTrees = new Hashtable<String, DirContext>(11, 0.75f);
+                 connect(startTLS);
+ 
+             } else if (!sharable || startTLS) {
+@@ -2692,7 +2692,7 @@
+                     }
+                 }
+                 // reset the cache before a new connection is established
+-                schemaTrees = new Hashtable<>(11, 0.75f);
++                schemaTrees = new Hashtable<String, DirContext>(11, 0.75f);
+                 connect(startTLS);
+             }
+ 
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/jndi/ldap/LdapName.java openjdk-boot/jdk/src/share/classes/com/sun/jndi/ldap/LdapName.java
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/jndi/ldap/LdapName.java	2017-04-06 03:29:05.153519796 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/jndi/ldap/LdapName.java	2017-04-06 03:34:19.064489618 +0100
+@@ -111,7 +111,7 @@
+      */
+     private LdapName(String name, Vector<Rdn> rdns, int beg, int end) {
+         unparsed = name;
+-        this.rdns = new Vector<>();
++        this.rdns = new Vector<Rdn>();
+         for (int i = beg; i < end; i++) {
+             this.rdns.addElement(rdns.elementAt(i));
+         }
+@@ -410,7 +410,7 @@
+          */
+         Vector<Rdn> getDn() throws InvalidNameException {
+             cur = 0;
+-            Vector<Rdn> rdns = new Vector<>(len / 3 + 10);  // leave room for growth
++            Vector<Rdn> rdns = new Vector<Rdn>(len / 3 + 10);  // leave room for growth
+ 
+             if (len == 0) {
+                 return rdns;
+@@ -597,7 +597,7 @@
+          * A vector of the TypeAndValue elements of this Rdn.
+          * It is sorted to facilitate set operations.
+          */
+-        private final Vector<TypeAndValue> tvs = new Vector<>();
++        private final Vector<TypeAndValue> tvs = new Vector<TypeAndValue>();
+ 
+         void add(TypeAndValue tv) {
+ 
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/jndi/ldap/LdapResult.java openjdk-boot/jdk/src/share/classes/com/sun/jndi/ldap/LdapResult.java
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/jndi/ldap/LdapResult.java	2017-04-06 03:29:05.161519668 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/jndi/ldap/LdapResult.java	2017-04-06 03:34:36.316213106 +0100
+@@ -59,7 +59,7 @@
+         switch (status) {
+             case LdapClient.LDAP_COMPARE_TRUE:
+                 status = LdapClient.LDAP_SUCCESS;
+-                entries = new Vector<>(1,1);
++                entries = new Vector<LdapEntry>(1,1);
+                 Attributes attrs = new BasicAttributes(LdapClient.caseIgnore);
+                 LdapEntry entry = new LdapEntry( name, attrs );
+                 entries.addElement(entry);
+@@ -68,7 +68,7 @@
+ 
+             case LdapClient.LDAP_COMPARE_FALSE:
+                 status = LdapClient.LDAP_SUCCESS;
+-                entries = new Vector<>(0);
++                entries = new Vector<LdapEntry>(0);
+                 successful = true;
+                 break;
+ 
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/jndi/ldap/LdapSchemaParser.java openjdk-boot/jdk/src/share/classes/com/sun/jndi/ldap/LdapSchemaParser.java
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/jndi/ldap/LdapSchemaParser.java	2017-04-06 03:29:05.169519540 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/jndi/ldap/LdapSchemaParser.java	2017-04-06 03:34:45.604064237 +0100
+@@ -519,7 +519,7 @@
+         throws NamingException {
+ 
+         int begin, end;
+-        Vector<String> values = new Vector<>(5);
++        Vector<String> values = new Vector<String>(5);
+ 
+         if (debug) {
+             System.err.println("ReadQDescrList: pos="+pos[0]);
+@@ -613,7 +613,7 @@
+ 
+         int     begin, cur, end;
+         String  oidName = null;
+-        Vector<String> values = new Vector<>(5);
++        Vector<String> values = new Vector<String>(5);
+ 
+         if (debug) {
+             System.err.println("ReadOIDList: pos="+pos[0]);
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/jndi/ldap/NamingEventNotifier.java openjdk-boot/jdk/src/share/classes/com/sun/jndi/ldap/NamingEventNotifier.java
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/jndi/ldap/NamingEventNotifier.java	2017-04-06 03:29:05.181519347 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/jndi/ldap/NamingEventNotifier.java	2017-04-06 03:35:34.019288186 +0100
+@@ -83,7 +83,7 @@
+         context = (LdapCtx)ctx.newInstance(new Control[]{psearch});
+         eventSrc = ctx;
+ 
+-        namingListeners = new Vector<>();
++        namingListeners = new Vector<NamingListener>();
+         namingListeners.addElement(firstListener);
+ 
+         worker = Obj.helper.createThread(this);
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/jndi/ldap/Obj.java openjdk-boot/jdk/src/share/classes/com/sun/jndi/ldap/Obj.java
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/jndi/ldap/Obj.java	2017-04-06 03:29:05.189519219 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/jndi/ldap/Obj.java	2017-04-06 03:35:48.827050820 +0100
+@@ -207,7 +207,7 @@
+         } else {
+             StringTokenizer parser =
+                 new StringTokenizer((String)codebaseAttr.get());
+-            Vector<String> vec = new Vector<>(10);
++            Vector<String> vec = new Vector<String>(10);
+             while (parser.hasMoreTokens()) {
+                 vec.addElement(parser.nextToken());
+             }
+@@ -411,7 +411,7 @@
+              * Temporary Vector for decoded RefAddr addresses - used to ensure
+              * unordered addresses are correctly re-ordered.
+              */
+-            Vector<RefAddr> refAddrList = new Vector<>();
++            Vector<RefAddr> refAddrList = new Vector<RefAddr>();
+             refAddrList.setSize(attr.size());
+ 
+             for (NamingEnumeration<?> vals = attr.getAll(); vals.hasMore(); ) {
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/jndi/ldap/pool/Connections.java openjdk-boot/jdk/src/share/classes/com/sun/jndi/ldap/pool/Connections.java
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/jndi/ldap/pool/Connections.java	2017-04-06 03:29:05.197519091 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/jndi/ldap/pool/Connections.java	2017-04-06 03:36:42.642188135 +0100
+@@ -99,11 +99,11 @@
+         } else {
+             this.prefSize = prefSize;
+         }
+-        conns = new ArrayList<>(maxSize > 0 ? maxSize : DEFAULT_SIZE);
++        conns = new ArrayList<ConnectionDesc>(maxSize > 0 ? maxSize : DEFAULT_SIZE);
+ 
+         // Maintain soft ref to id so that this Connections' entry in
+         // Pool doesn't get GC'ed prematurely
+-        ref = new SoftReference<>(id);
++        ref = new SoftReference<Object>(id);
+ 
+         d("init size=", initSize);
+         d("max size=", maxSize);
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/jndi/ldap/pool/Pool.java openjdk-boot/jdk/src/share/classes/com/sun/jndi/ldap/pool/Pool.java
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/jndi/ldap/pool/Pool.java	2017-04-06 03:29:05.205518963 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/jndi/ldap/pool/Pool.java	2017-04-06 05:06:18.632017287 +0100
+@@ -83,7 +83,7 @@
+      * Used for connections cleanup
+      */
+     private static final ReferenceQueue<ConnectionsRef> queue =
+-        new ReferenceQueue<>();
++        new ReferenceQueue<ConnectionsRef>();
+     private static final Collection<Reference<ConnectionsRef>> weakRefs =
+         Collections.synchronizedList(new LinkedList<Reference<ConnectionsRef>>());
+ 
+@@ -93,7 +93,7 @@
+     final private Map<Object, ConnectionsRef> map;
+ 
+     public Pool(int initSize, int prefSize, int maxSize) {
+-        map = new WeakHashMap<>();
++        map = new WeakHashMap<Object, ConnectionsRef>();
+         this.prefSize = prefSize;
+         this.maxSize = maxSize;
+         this.initSize = initSize;
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/jndi/ldap/sasl/LdapSasl.java openjdk-boot/jdk/src/share/classes/com/sun/jndi/ldap/sasl/LdapSasl.java
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/jndi/ldap/sasl/LdapSasl.java	2017-04-06 03:29:05.213518835 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/jndi/ldap/sasl/LdapSasl.java	2017-04-06 03:36:51.266049884 +0100
+@@ -186,7 +186,7 @@
+       */
+     private static String[] getSaslMechanismNames(String str) {
+         StringTokenizer parser = new StringTokenizer(str);
+-        Vector<String> mechs = new Vector<>(10);
++        Vector<String> mechs = new Vector<String>(10);
+         while (parser.hasMoreTokens()) {
+             mechs.addElement(parser.nextToken());
+         }
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/jndi/toolkit/ctx/Continuation.java openjdk-boot/jdk/src/share/classes/com/sun/jndi/toolkit/ctx/Continuation.java
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/jndi/toolkit/ctx/Continuation.java	2017-04-06 03:29:05.225518642 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/jndi/toolkit/ctx/Continuation.java	2017-04-06 03:37:03.841848275 +0100
+@@ -155,7 +155,7 @@
+         if ((e instanceof CannotProceedException)) {
+             CannotProceedException cpe = (CannotProceedException)e;
+             Hashtable<?,?> env = (environment == null ?
+-                new Hashtable<>(11) : (Hashtable<?,?>)environment.clone());
++				  new Hashtable<Object, Object>(11) : (Hashtable<?,?>)environment.clone());
+             cpe.setEnvironment(env);
+             cpe.setAltNameCtx(resolvedContext);
+             cpe.setAltName(relativeResolvedName);
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/jndi/toolkit/dir/HierMemDirCtx.java openjdk-boot/jdk/src/share/classes/com/sun/jndi/toolkit/dir/HierMemDirCtx.java
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/jndi/toolkit/dir/HierMemDirCtx.java	2017-04-06 03:29:05.237518450 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/jndi/toolkit/dir/HierMemDirCtx.java	2017-04-06 03:37:28.145458643 +0100
+@@ -84,7 +84,7 @@
+ 
+     private void init() {
+         attrs = new BasicAttributes(ignoreCase);
+-        bindings = new Hashtable<>(11, 0.75f);
++        bindings = new Hashtable<Name,Object>(11, 0.75f);
+     }
+ 
+     public Object lookup(String name) throws NamingException {
+@@ -470,7 +470,7 @@
+     @SuppressWarnings("unchecked") // clone()
+     public Hashtable<String, Object> getEnvironment() throws NamingException {
+         if (myEnv == null) {
+-            return new Hashtable<>(5, 0.75f);
++            return new Hashtable<String, Object>(5, 0.75f);
+         } else {
+             return (Hashtable<String, Object>)myEnv.clone();
+         }
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/jndi/toolkit/dir/SearchFilter.java openjdk-boot/jdk/src/share/classes/com/sun/jndi/toolkit/dir/SearchFilter.java
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/jndi/toolkit/dir/SearchFilter.java	2017-04-06 03:29:05.245518322 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/jndi/toolkit/dir/SearchFilter.java	2017-04-06 03:37:45.769176094 +0100
+@@ -208,7 +208,7 @@
+         private boolean polarity;
+ 
+         CompoundFilter(boolean polarity) {
+-            subFilters = new Vector<>();
++            subFilters = new Vector<StringFilter>();
+             this.polarity = polarity;
+         }
+ 
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/jndi/toolkit/url/GenericURLContext.java openjdk-boot/jdk/src/share/classes/com/sun/jndi/toolkit/url/GenericURLContext.java
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/jndi/toolkit/url/GenericURLContext.java	2017-04-06 03:29:05.249518258 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/jndi/toolkit/url/GenericURLContext.java	2017-04-06 03:37:55.553019233 +0100
+@@ -510,7 +510,7 @@
+     @SuppressWarnings("unchecked") // clone()
+     public Hashtable<String, Object> getEnvironment() throws NamingException {
+         if (myEnv == null) {
+-            return new Hashtable<>(5, 0.75f);
++            return new Hashtable<String, Object>(5, 0.75f);
+         } else {
+             return (Hashtable<String, Object>)myEnv.clone();
+         }
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/media/sound/AbstractLine.java openjdk-boot/jdk/src/share/classes/com/sun/media/sound/AbstractLine.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/media/sound/AbstractLine.java	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/media/sound/AbstractLine.java	2016-09-21 06:38:08.164139659 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/media/sound/AbstractLine.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/media/sound/AbstractLine.java	2017-04-04 20:01:42.687619286 +0100
 @@ -54,7 +54,7 @@
       * Contains event dispatcher per thread group.
       */
@@ -2661,8 +3160,8 @@
      /**
       * Constructs a new AbstractLine.
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/media/sound/JDK13Services.java openjdk-boot/jdk/src/share/classes/com/sun/media/sound/JDK13Services.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/media/sound/JDK13Services.java	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/media/sound/JDK13Services.java	2016-09-21 06:38:08.164139659 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/media/sound/JDK13Services.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/media/sound/JDK13Services.java	2017-04-04 20:01:42.687619286 +0100
 @@ -102,7 +102,7 @@
                  && !SoundbankReader.class.equals(serviceClass)
                  && !MidiFileWriter.class.equals(serviceClass)
@@ -2673,8 +3172,8 @@
              providers = JSSecurityManager.getProviders(serviceClass);
          }
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/media/sound/RealTimeSequencer.java openjdk-boot/jdk/src/share/classes/com/sun/media/sound/RealTimeSequencer.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/media/sound/RealTimeSequencer.java	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/media/sound/RealTimeSequencer.java	2016-09-21 06:38:08.164139659 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/media/sound/RealTimeSequencer.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/media/sound/RealTimeSequencer.java	2017-04-04 20:01:42.687619286 +0100
 @@ -59,7 +59,7 @@
       * dispatcher instance with a factory in EventDispatcher
       */
@@ -2684,9 +3183,129 @@
  
      /**
       * All RealTimeSequencers share this info object.
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/naming/internal/FactoryEnumeration.java openjdk-boot/jdk/src/share/classes/com/sun/naming/internal/FactoryEnumeration.java
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/naming/internal/FactoryEnumeration.java	2017-04-05 04:34:22.363477073 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/naming/internal/FactoryEnumeration.java	2017-04-05 04:34:53.542968012 +0100
+@@ -87,7 +87,7 @@
+                 }
+                 // Instantiate Class to get factory
+                 answer = ((Class) answer).newInstance();
+-                ref = new NamedWeakReference<>(answer, className);
++                ref = new NamedWeakReference<Object>(answer, className);
+                 factories.set(posn-1, ref);  // replace Class object or null
+                 return answer;
+             } catch (ClassNotFoundException e) {
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/naming/internal/ResourceManager.java openjdk-boot/jdk/src/share/classes/com/sun/naming/internal/ResourceManager.java
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/naming/internal/ResourceManager.java	2017-04-05 04:34:22.395476550 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/naming/internal/ResourceManager.java	2017-04-05 06:29:10.233691746 +0100
+@@ -97,7 +97,7 @@
+      */
+     // WeakHashMap<Class | ClassLoader, Hashtable>
+     private static final WeakHashMap<Object, Hashtable<? super String, Object>>
+-            propertiesCache = new WeakHashMap<>(11);
++	propertiesCache = new WeakHashMap<Object, Hashtable<? super String, Object>>(11);
+ 
+     /*
+      * A cache of factory objects (ObjectFactory, StateFactory, ControlFactory).
+@@ -109,7 +109,7 @@
+      */
+     private static final
+         WeakHashMap<ClassLoader, Map<String, List<NamedWeakReference<Object>>>>
+-            factoryCache = new WeakHashMap<>(11);
++	factoryCache = new WeakHashMap<ClassLoader, Map<String, List<NamedWeakReference<Object>>>>(11);
+ 
+     /*
+      * A cache of URL factory objects (ObjectFactory).
+@@ -122,9 +122,9 @@
+      */
+     private static final
+         WeakHashMap<ClassLoader, Map<String, WeakReference<Object>>>
+-            urlFactoryCache = new WeakHashMap<>(11);
++	urlFactoryCache = new WeakHashMap<ClassLoader, Map<String, WeakReference<Object>>>(11);
+     private static final WeakReference<Object> NO_FACTORY =
+-            new WeakReference<>(null);
++            new WeakReference<Object>(null);
+ 
+     /**
+      * A class to allow JNDI properties be specified as applet parameters
+@@ -202,7 +202,7 @@
+     {
+         String[] props = VersionHelper.PROPS;   // system/applet properties
+         if (env == null) {
+-            env = new Hashtable<>(11);
++            env = new Hashtable<Object, Object>(11);
+         }
+         Object applet = env.get(Context.APPLET);
+ 
+@@ -340,7 +340,7 @@
+         synchronized (factoryCache) {
+             perLoaderCache = factoryCache.get(loader);
+             if (perLoaderCache == null) {
+-                perLoaderCache = new HashMap<>(11);
++                perLoaderCache = new HashMap<String, List<NamedWeakReference<Object>>>(11);
+                 factoryCache.put(loader, perLoaderCache);
+             }
+         }
+@@ -356,7 +356,7 @@
+                 // Populate list with classes named in facProp; skipping
+                 // those that we cannot load
+                 StringTokenizer parser = new StringTokenizer(facProp, ":");
+-                factories = new ArrayList<>(5);
++                factories = new ArrayList<NamedWeakReference<Object>>(5);
+                 while (parser.hasMoreTokens()) {
+                     try {
+                         // System.out.println("loading");
+@@ -430,7 +430,7 @@
+         synchronized (urlFactoryCache) {
+             perLoaderCache = urlFactoryCache.get(loader);
+             if (perLoaderCache == null) {
+-                perLoaderCache = new HashMap<>(11);
++                perLoaderCache = new HashMap<String, WeakReference<Object>>(11);
+                 urlFactoryCache.put(loader, perLoaderCache);
+             }
+         }
+@@ -474,7 +474,7 @@
+ 
+             // Cache it.
+             perLoaderCache.put(key, (factory != null)
+-                                        ? new WeakReference<>(factory)
++                                        ? new WeakReference<Object>(factory)
+                                         : NO_FACTORY);
+             return factory;
+         }
+@@ -496,7 +496,7 @@
+             throws NamingException
+     {
+         if (obj == null) {
+-            return (new Hashtable<>(1));
++            return (new Hashtable<String, Object>(1));
+         }
+         synchronized (propertiesCache) {
+             Class<?> c = obj.getClass();
+@@ -605,7 +605,7 @@
+                 throw ne;
+             }
+             if (result == null) {
+-                result = new Hashtable<>(11);
++                result = new Hashtable<String, Object>(11);
+             }
+             propertiesCache.put(cl, result);
+             return result;
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/naming/internal/VersionHelper.java openjdk-boot/jdk/src/share/classes/com/sun/naming/internal/VersionHelper.java
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/naming/internal/VersionHelper.java	2017-04-05 04:34:22.403476420 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/naming/internal/VersionHelper.java	2017-04-05 04:43:46.854259990 +0100
+@@ -137,7 +137,7 @@
+         throws MalformedURLException {
+         // Parse codebase into separate URLs
+         StringTokenizer parser = new StringTokenizer(codebase);
+-        Vector<String> vec = new Vector<>(10);
++        Vector<String> vec = new Vector<String>(10);
+         while (parser.hasMoreTokens()) {
+             vec.addElement(parser.nextToken());
+         }
 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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/rmi/rmid/ExecOptionPermission.java	2016-09-21 06:38:08.164139659 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/rmi/rmid/ExecOptionPermission.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/rmi/rmid/ExecOptionPermission.java	2017-04-04 20:01:42.687619286 +0100
 @@ -231,7 +231,7 @@
           * Create an empty ExecOptionPermissionCollection.
           */
@@ -2697,8 +3316,8 @@
          }
  
 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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/rmi/rmid/ExecPermission.java	2016-09-21 06:38:08.164139659 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/rmi/rmid/ExecPermission.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/rmi/rmid/ExecPermission.java	2017-04-04 20:01:42.687619286 +0100
 @@ -235,7 +235,7 @@
           * Create an empty ExecPermissionCollection.
           */
@@ -2709,8 +3328,8 @@
  
          /**
 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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/rowset/CachedRowSetImpl.java	2016-09-21 06:38:08.168139594 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/rowset/CachedRowSetImpl.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/rowset/CachedRowSetImpl.java	2017-04-04 20:01:42.687619286 +0100
 @@ -1285,7 +1285,7 @@
       */
      public Collection<?> toCollection() throws SQLException {
@@ -2730,8 +3349,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/rowset/JoinRowSetImpl.java	2016-09-21 06:38:08.168139594 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/rowset/JoinRowSetImpl.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/rowset/JoinRowSetImpl.java	2017-04-04 20:01:42.691619221 +0100
 @@ -222,7 +222,7 @@
             // either of the setter methods have been set.
             if(boolColId){
@@ -2742,8 +3361,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/callback/DialogCallbackHandler.java	2016-09-21 06:38:08.168139594 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/callback/DialogCallbackHandler.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/callback/DialogCallbackHandler.java	2017-04-04 20:01:42.691619221 +0100
 @@ -99,10 +99,10 @@
          throws UnsupportedCallbackException
      {
@@ -2758,8 +3377,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/login/ConfigFile.java	2016-09-21 06:38:08.168139594 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/login/ConfigFile.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/login/ConfigFile.java	2017-04-04 20:01:42.691619221 +0100
 @@ -152,7 +152,7 @@
  
          // new configuration
@@ -2788,8 +3407,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/module/JndiLoginModule.java	2016-09-21 06:38:08.168139594 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/module/JndiLoginModule.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/module/JndiLoginModule.java	2017-04-04 20:01:42.691619221 +0100
 @@ -181,7 +181,7 @@
      private UnixNumericUserPrincipal UIDPrincipal;
      private UnixNumericGroupPrincipal GIDPrincipal;
@@ -2800,8 +3419,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/module/KeyStoreLoginModule.java	2016-09-21 06:38:08.168139594 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/module/KeyStoreLoginModule.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/module/KeyStoreLoginModule.java	2017-04-04 20:01:42.691619221 +0100
 @@ -654,7 +654,7 @@
                  throw new FailedLoginException(
                      "Unable to find X.509 certificate chain in keystore");
@@ -2812,8 +3431,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/module/SolarisLoginModule.java	2016-09-21 06:38:08.168139594 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/module/SolarisLoginModule.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/module/SolarisLoginModule.java	2017-04-04 20:01:42.691619221 +0100
 @@ -76,7 +76,7 @@
      private SolarisNumericUserPrincipal UIDPrincipal;
      private SolarisNumericGroupPrincipal GIDPrincipal;
@@ -2824,8 +3443,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/module/UnixLoginModule.java	2016-09-21 06:38:08.168139594 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/module/UnixLoginModule.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/module/UnixLoginModule.java	2017-04-04 20:01:42.691619221 +0100
 @@ -70,7 +70,7 @@
      private UnixNumericUserPrincipal UIDPrincipal;
      private UnixNumericGroupPrincipal GIDPrincipal;
@@ -2836,8 +3455,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/PolicyFile.java	2016-09-21 06:38:08.172139526 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/PolicyFile.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/PolicyFile.java	2017-04-04 20:01:42.691619221 +0100
 @@ -1179,7 +1179,7 @@
              // Done
              return certs;
@@ -2848,8 +3467,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/tools/example/trace/EventThread.java	2016-09-21 06:38:08.172139526 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/tools/example/trace/EventThread.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/tools/example/trace/EventThread.java	2017-04-04 20:01:42.691619221 +0100
 @@ -59,7 +59,7 @@
  
      // Maps ThreadReference to ThreadTrace instances
@@ -2860,9 +3479,9 @@
      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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/beans/Introspector.java	2016-09-21 06:38:08.172139526 +0100
-@@ -97,7 +97,7 @@
+--- openjdk-boot.orig/jdk/src/share/classes/java/beans/Introspector.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/beans/Introspector.java	2017-04-04 20:01:42.691619221 +0100
+@@ -106,7 +106,7 @@
      public final static int IGNORE_ALL_BEANINFO        = 3;
  
      // Static Caches to speed up introspection.
@@ -2871,7 +3490,7 @@
  
      private Class beanClass;
      private BeanInfo explicitBeanInfo;
-@@ -1472,7 +1472,7 @@
+@@ -1481,7 +1481,7 @@
          this.defaultProperty = defaultProperty;
          this.methods = methods;
          this.targetBeanInfoRef = (targetBeanInfo != null)
@@ -2880,7 +3499,7 @@
                  : null;
      }
  
-@@ -1556,7 +1556,7 @@
+@@ -1565,7 +1565,7 @@
              targetBeanInfo = ThreadGroupContext.getContext().getBeanInfoFinder()
                      .find(this.beanDescriptor.getBeanClass());
              if (targetBeanInfo != null) {
@@ -2890,8 +3509,8 @@
          }
          return targetBeanInfo;
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/beans/MethodRef.java openjdk-boot/jdk/src/share/classes/java/beans/MethodRef.java
---- openjdk-boot.orig/jdk/src/share/classes/java/beans/MethodRef.java	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/beans/MethodRef.java	2016-09-21 06:38:08.172139526 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/beans/MethodRef.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/beans/MethodRef.java	2017-04-04 20:01:42.691619221 +0100
 @@ -44,7 +44,7 @@
          }
          else {
@@ -2911,8 +3530,8 @@
          }
          return isPackageAccessible(method.getDeclaringClass()) ? method : null;
 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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/beans/ThreadGroupContext.java	2016-09-21 06:38:08.172139526 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/beans/ThreadGroupContext.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/beans/ThreadGroupContext.java	2017-04-04 20:01:42.691619221 +0100
 @@ -96,7 +96,7 @@
  
      BeanInfo putBeanInfo(Class<?> type, BeanInfo info) {
@@ -2923,8 +3542,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/io/DeleteOnExitHook.java	2016-09-21 06:38:08.172139526 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/io/DeleteOnExitHook.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/io/DeleteOnExitHook.java	2017-04-04 20:01:42.691619221 +0100
 @@ -34,7 +34,7 @@
   */
  
@@ -2944,8 +3563,8 @@
          // reverse the list to maintain previous jdk deletion order.
          // Last in first deleted.
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/io/FileInputStream.java openjdk-boot/jdk/src/share/classes/java/io/FileInputStream.java
---- openjdk-boot.orig/jdk/src/share/classes/java/io/FileInputStream.java	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/io/FileInputStream.java	2016-09-21 06:38:08.172139526 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/io/FileInputStream.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/io/FileInputStream.java	2017-04-04 20:01:42.691619221 +0100
 @@ -61,7 +61,7 @@
      private volatile boolean closed = false;
  
@@ -2956,8 +3575,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/io/File.java	2016-09-21 06:38:08.172139526 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/io/File.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/io/File.java	2017-04-04 20:01:42.695619156 +0100
 @@ -1150,7 +1150,7 @@
          if ((names == null) || (filter == null)) {
              return names;
@@ -2986,8 +3605,8 @@
              File f = new File(s, this);
              if ((filter == null) || filter.accept(f))
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/io/FileOutputStream.java openjdk-boot/jdk/src/share/classes/java/io/FileOutputStream.java
---- openjdk-boot.orig/jdk/src/share/classes/java/io/FileOutputStream.java	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/io/FileOutputStream.java	2016-09-21 06:38:08.172139526 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/io/FileOutputStream.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/io/FileOutputStream.java	2017-04-04 20:01:42.695619156 +0100
 @@ -76,7 +76,7 @@
      private final Object closeLock = new Object();
      private volatile boolean closed = false;
@@ -2998,8 +3617,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/io/FilePermission.java	2016-09-21 06:38:08.172139526 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/io/FilePermission.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/io/FilePermission.java	2017-04-04 20:01:42.695619156 +0100
 @@ -725,7 +725,7 @@
       */
  
@@ -3028,9 +3647,9 @@
      }
  }
 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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/io/ObjectInputStream.java	2016-09-21 06:38:08.172139526 +0100
-@@ -217,7 +217,7 @@
+--- openjdk-boot.orig/jdk/src/share/classes/java/io/ObjectInputStream.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/io/ObjectInputStream.java	2017-04-04 20:05:11.864204790 +0100
+@@ -220,7 +220,7 @@
  
      /** table mapping primitive type names to corresponding class objects */
      private static final HashMap<String, Class<?>> primClasses
@@ -3039,7 +3658,7 @@
      static {
          primClasses.put("boolean", boolean.class);
          primClasses.put("byte", byte.class);
-@@ -233,11 +233,11 @@
+@@ -236,11 +236,11 @@
      private static class Caches {
          /** cache of subclass security audit results */
          static final ConcurrentMap<WeakClassKey,Boolean> subclassAudits =
@@ -3052,10 +3671,10 @@
 +            new ReferenceQueue<Class<?>>();
      }
  
-     /** filter stream for handling block data conversion */
+     static {
 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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/io/ObjectOutputStream.java	2016-09-21 06:38:08.172139526 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/io/ObjectOutputStream.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/io/ObjectOutputStream.java	2017-04-04 20:01:42.695619156 +0100
 @@ -166,11 +166,11 @@
      private static class Caches {
          /** cache of subclass security audit results */
@@ -3080,8 +3699,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/io/ObjectStreamClass.java	2016-09-21 06:38:08.176139460 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/io/ObjectStreamClass.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/io/ObjectStreamClass.java	2017-04-04 20:01:42.703619025 +0100
 @@ -87,18 +87,18 @@
      private static class Caches {
          /** cache mapping local classes -> descriptors */
@@ -3171,8 +3790,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/lang/ApplicationShutdownHooks.java	2016-09-21 06:38:08.176139460 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/ApplicationShutdownHooks.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/lang/ApplicationShutdownHooks.java	2017-04-04 20:01:42.703619025 +0100
 @@ -47,7 +47,7 @@
                      }
                  }
@@ -3183,8 +3802,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/lang/Character.java	2016-09-21 06:38:08.176139460 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/Character.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/lang/Character.java	2017-04-04 20:01:42.703619025 +0100
 @@ -646,7 +646,8 @@
       */
      public static final class UnicodeBlock extends Subset {
@@ -3205,8 +3824,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/lang/CharacterName.java	2016-09-21 06:38:08.176139460 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/CharacterName.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/lang/CharacterName.java	2017-04-04 20:01:42.703619025 +0100
 @@ -81,7 +81,7 @@
              } while (cpOff < cpEnd);
              strPool = new byte[total - cpEnd];
@@ -3217,8 +3836,8 @@
              throw new InternalError(x.getMessage());
          } finally {
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/Class.java openjdk-boot/jdk/src/share/classes/java/lang/Class.java
---- openjdk-boot.orig/jdk/src/share/classes/java/lang/Class.java	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/lang/Class.java	2016-09-21 06:38:08.176139460 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/Class.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/lang/Class.java	2017-04-04 20:01:42.707618959 +0100
 @@ -1359,7 +1359,7 @@
          return java.security.AccessController.doPrivileged(
              new java.security.PrivilegedAction<Class<?>[]>() {
@@ -3271,8 +3890,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/lang/ClassLoader.java	2016-09-21 06:38:08.180139393 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/ClassLoader.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/lang/ClassLoader.java	2017-04-04 20:01:42.707618959 +0100
 @@ -248,7 +248,7 @@
  
      // The classes loaded by this class loader. The only purpose of this table
@@ -3379,8 +3998,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/lang/ClassValue.java	2016-09-21 06:38:08.180139393 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/ClassValue.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/lang/ClassValue.java	2017-04-04 20:01:42.707618959 +0100
 @@ -297,12 +297,12 @@
       * Some machines may also require a barrier instruction to execute
       * before this.version.
@@ -3422,8 +4041,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	2016-09-21 06:14:42.859428574 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/BoundMethodHandle.java	2016-09-21 06:38:08.180139393 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/BoundMethodHandle.java	2017-04-04 19:17:25.786919061 +0100
++++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/BoundMethodHandle.java	2017-04-04 20:01:42.707618959 +0100
 @@ -393,7 +393,7 @@
          }
          private boolean isPlaceholder() { return clazz == null; }
@@ -3434,8 +4053,8 @@
  
          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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/DirectMethodHandle.java	2016-09-21 06:38:08.180139393 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/DirectMethodHandle.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/DirectMethodHandle.java	2017-04-04 20:01:42.707618959 +0100
 @@ -290,7 +290,7 @@
              if (UNSAFE.shouldBeInitialized(type))
                  // If the previous call didn't block, this can happen.
@@ -3446,8 +4065,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	2016-09-21 06:14:42.859428574 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/InvokerBytecodeGenerator.java	2016-09-21 06:38:08.180139393 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/InvokerBytecodeGenerator.java	2017-04-04 19:17:25.790918997 +0100
++++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/InvokerBytecodeGenerator.java	2017-04-04 20:01:42.707618959 +0100
 @@ -129,7 +129,7 @@
  
      static {
@@ -3467,8 +4086,8 @@
      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	2016-09-21 06:14:42.863428507 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/LambdaForm.java	2016-09-21 06:38:08.180139393 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/LambdaForm.java	2017-04-04 19:17:25.790918997 +0100
++++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/LambdaForm.java	2017-04-04 20:01:42.707618959 +0100
 @@ -468,12 +468,12 @@
          int   capacity   = 512;    // expect many distinct signatures over time
          float loadFactor = 0.75f;  // normal default
@@ -3485,8 +4104,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/MemberName.java	2016-09-21 06:38:08.180139393 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/MemberName.java	2017-04-04 19:17:25.482923930 +0100
++++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/MemberName.java	2017-04-04 20:01:42.707618959 +0100
 @@ -808,14 +808,14 @@
                  // JVM returned to us with an intentional overflow!
                  totalCount += buf.length;
@@ -3505,8 +4124,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	2016-09-21 06:14:42.863428507 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandleImpl.java	2016-09-21 06:38:08.180139393 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/MethodHandleImpl.java	2017-04-04 19:17:25.790918997 +0100
++++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandleImpl.java	2017-04-04 20:01:42.707618959 +0100
 @@ -73,8 +73,8 @@
  
      static final class ArrayAccessor {
@@ -3528,8 +4147,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandle.java	2016-09-21 06:38:08.180139393 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/MethodHandle.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandle.java	2017-04-04 20:01:42.707618959 +0100
 @@ -834,7 +834,7 @@
                  }
              }
@@ -3540,9 +4159,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandles.java	2016-09-21 06:38:08.180139393 +0100
-@@ -1951,7 +1951,7 @@
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/MethodHandles.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandles.java	2017-04-04 20:01:42.707618959 +0100
+@@ -1953,7 +1953,7 @@
          int inargs  = outargs + dropped;
          if (pos < 0 || pos >= inargs)
              throw newIllegalArgumentException("no argument type to remove");
@@ -3552,8 +4171,8 @@
          if (ptypes.size() != inargs)  throw newIllegalArgumentException("valueTypes");
          MethodType newType = MethodType.methodType(oldType.returnType(), ptypes);
 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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodType.java	2016-09-21 06:38:08.180139393 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/MethodType.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodType.java	2017-04-04 20:01:42.707618959 +0100
 @@ -1048,7 +1048,7 @@
          private final float loadFactor;
  
@@ -3564,8 +4183,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	2016-09-21 06:14:42.759430229 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/lang/management/ManagementFactory.java	2016-09-21 06:38:08.180139393 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/management/ManagementFactory.java	2017-04-04 19:17:25.726920022 +0100
++++ openjdk-boot/jdk/src/share/classes/java/lang/management/ManagementFactory.java	2017-04-04 20:01:42.707618959 +0100
 @@ -789,7 +789,7 @@
             getPlatformManagementInterfaces()
      {
@@ -3576,8 +4195,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/lang/management/PlatformComponent.java	2016-09-21 06:38:08.184139328 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/management/PlatformComponent.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/lang/management/PlatformComponent.java	2017-04-04 20:01:42.707618959 +0100
 @@ -287,7 +287,7 @@
              List<T> getGcMXBeanList(Class<T> gcMXBeanIntf) {
          List<GarbageCollectorMXBean> list =
@@ -3615,8 +4234,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	2016-09-21 06:14:42.823429169 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/lang/Package.java	2016-09-21 06:38:08.184139328 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/Package.java	2017-04-04 19:17:25.754919573 +0100
++++ openjdk-boot/jdk/src/share/classes/java/lang/Package.java	2017-04-04 20:01:42.707618959 +0100
 @@ -599,13 +599,16 @@
      }
  
@@ -3638,8 +4257,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	2016-09-21 06:14:42.759430229 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/lang/ProcessBuilder.java	2016-09-21 06:38:08.184139328 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/ProcessBuilder.java	2017-04-04 19:17:25.726920022 +0100
++++ openjdk-boot/jdk/src/share/classes/java/lang/ProcessBuilder.java	2017-04-04 20:01:42.707618959 +0100
 @@ -214,7 +214,7 @@
       * @param command a string array containing the program and its arguments
       */
@@ -3659,8 +4278,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/lang/reflect/Constructor.java	2016-09-21 06:38:08.184139328 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/reflect/Constructor.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/lang/reflect/Constructor.java	2017-04-04 20:01:42.711618895 +0100
 @@ -137,7 +137,7 @@
          // which implicitly requires that new java.lang.reflect
          // objects be fabricated for each reflective call on Class
@@ -3671,8 +4290,8 @@
                                                  exceptionTypes, modifiers, slot,
                                                  signature,
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/reflect/Proxy.java openjdk-boot/jdk/src/share/classes/java/lang/reflect/Proxy.java
---- openjdk-boot.orig/jdk/src/share/classes/java/lang/reflect/Proxy.java	2016-09-21 06:14:42.759430229 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/lang/reflect/Proxy.java	2016-09-21 06:38:08.184139328 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/reflect/Proxy.java	2017-04-04 19:17:25.726920022 +0100
++++ openjdk-boot/jdk/src/share/classes/java/lang/reflect/Proxy.java	2017-04-04 20:01:42.711618895 +0100
 @@ -234,7 +234,7 @@
       * a cache of proxy classes
       */
@@ -3692,8 +4311,8 @@
                  /*
                   * Verify that the class loader resolves the name of this
 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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/lang/reflect/ReflectAccess.java	2016-09-21 06:38:08.184139328 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/reflect/ReflectAccess.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/lang/reflect/ReflectAccess.java	2017-04-04 20:01:42.711618895 +0100
 @@ -84,7 +84,7 @@
                                               byte[] annotations,
                                               byte[] parameterAnnotations)
@@ -3704,8 +4323,8 @@
                                    checkedExceptions,
                                    modifiers,
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/reflect/WeakCache.java openjdk-boot/jdk/src/share/classes/java/lang/reflect/WeakCache.java
---- openjdk-boot.orig/jdk/src/share/classes/java/lang/reflect/WeakCache.java	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/lang/reflect/WeakCache.java	2016-09-21 06:38:08.184139328 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/reflect/WeakCache.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/lang/reflect/WeakCache.java	2017-04-04 20:01:42.711618895 +0100
 @@ -71,12 +71,12 @@
      }
  
@@ -3759,8 +4378,8 @@
  
          private final int hash;
 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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/lang/StringCoding.java	2016-09-21 06:38:08.184139328 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/StringCoding.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/lang/StringCoding.java	2017-04-04 20:01:42.711618895 +0100
 @@ -53,9 +53,9 @@
  
      /** The cached coders for each thread */
@@ -3774,8 +4393,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/lang/String.java	2016-09-21 06:38:08.184139328 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/String.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/lang/String.java	2017-04-04 20:01:42.711618895 +0100
 @@ -2282,7 +2282,7 @@
              int off = 0;
              int next = 0;
@@ -3786,8 +4405,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/lang/Thread.java	2016-09-21 06:38:08.184139328 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/Thread.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/lang/Thread.java	2017-04-04 20:01:42.711618895 +0100
 @@ -1638,7 +1638,8 @@
          // Get a snapshot of the list of all threads
          Thread[] threads = getThreads();
@@ -3813,8 +4432,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/lang/Throwable.java	2016-09-21 06:38:08.184139328 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/Throwable.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/lang/Throwable.java	2017-04-04 20:01:42.711618895 +0100
 @@ -918,7 +918,7 @@
                  // Use the sentinel for a zero-length list
                  suppressed = SUPPRESSED_SENTINEL;
@@ -3834,8 +4453,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/net/InetAddress.java	2016-09-21 06:38:08.184139328 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/net/InetAddress.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/net/InetAddress.java	2017-04-04 20:01:42.711618895 +0100
 @@ -733,7 +733,7 @@
  
      static InetAddressImpl  impl;
@@ -3854,10 +4473,22 @@
                  long now = System.currentTimeMillis();
                  for (String key : cache.keySet()) {
                      CacheEntry entry = cache.get(key);
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/net/SocketPermission.java openjdk-boot/jdk/src/share/classes/java/net/SocketPermission.java
+--- openjdk-boot.orig/jdk/src/share/classes/java/net/SocketPermission.java	2017-04-05 04:34:22.443475767 +0100
++++ openjdk-boot/jdk/src/share/classes/java/net/SocketPermission.java	2017-04-05 04:43:36.710425633 +0100
+@@ -1453,7 +1453,7 @@
+         // Don't call out.defaultWriteObject()
+ 
+         // Write out Vector
+-        Vector<SocketPermission> permissions = new Vector<>(perms.size());
++        Vector<SocketPermission> permissions = new Vector<SocketPermission>(perms.size());
+ 
+         synchronized (this) {
+             permissions.addAll(perms);
 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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/net/URLClassLoader.java	2016-09-21 06:38:08.184139328 +0100
-@@ -205,7 +205,7 @@
+--- openjdk-boot.orig/jdk/src/share/classes/java/net/URLClassLoader.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/net/URLClassLoader.java	2017-04-04 20:01:42.711618895 +0100
+@@ -198,7 +198,7 @@
       */
  
      private WeakHashMap<Closeable,Void>
@@ -3866,9 +4497,33 @@
  
      /**
       * Returns an input stream for reading the specified resource.
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/net/URLConnection.java openjdk-boot/jdk/src/share/classes/java/net/URLConnection.java
+--- openjdk-boot.orig/jdk/src/share/classes/java/net/URLConnection.java	2017-04-05 04:34:22.455475570 +0100
++++ openjdk-boot/jdk/src/share/classes/java/net/URLConnection.java	2017-04-05 04:43:30.454527789 +0100
+@@ -1237,7 +1237,7 @@
+         factory = fac;
+     }
+ 
+-    private static Hashtable<String, ContentHandler> handlers = new Hashtable<>();
++    private static Hashtable<String, ContentHandler> handlers = new Hashtable<String, ContentHandler>();
+ 
+     /**
+      * Gets the Content Handler appropriate for this connection.
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/net/URL.java openjdk-boot/jdk/src/share/classes/java/net/URL.java
+--- openjdk-boot.orig/jdk/src/share/classes/java/net/URL.java	2017-04-05 04:34:22.471475310 +0100
++++ openjdk-boot/jdk/src/share/classes/java/net/URL.java	2017-04-05 04:43:22.534657115 +0100
+@@ -1126,7 +1126,7 @@
+     /**
+      * A table of protocol handlers.
+      */
+-    static Hashtable<String,URLStreamHandler> handlers = new Hashtable<>();
++    static Hashtable<String,URLStreamHandler> handlers = new Hashtable<String,URLStreamHandler>();
+     private static Object streamHandlerLock = new Object();
+ 
+     // special case the gopher protocol, disabled by default
 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	2016-09-21 06:14:42.823429169 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/nio/file/Files.java	2016-09-21 06:38:08.188139260 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/nio/file/Files.java	2017-04-04 19:17:25.758919509 +0100
++++ openjdk-boot/jdk/src/share/classes/java/nio/file/Files.java	2017-04-04 20:01:42.711618895 +0100
 @@ -1504,7 +1504,7 @@
              return AccessController
                  .doPrivileged(new PrivilegedAction<List<FileTypeDetector>>() {
@@ -3888,8 +4543,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/security/AccessControlContext.java	2016-09-21 06:38:08.188139260 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/security/AccessControlContext.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/security/AccessControlContext.java	2017-04-04 20:01:42.711618895 +0100
 @@ -134,7 +134,7 @@
                  this.context = null;
              }
@@ -3900,8 +4555,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/security/BasicPermission.java	2016-09-21 06:38:08.188139260 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/security/BasicPermission.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/security/BasicPermission.java	2017-04-04 20:01:42.711618895 +0100
 @@ -514,7 +514,7 @@
  
          // Copy perms into a Hashtable
@@ -3912,8 +4567,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/security/CodeSource.java	2016-09-21 06:38:08.188139260 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/security/CodeSource.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/security/CodeSource.java	2017-04-04 20:01:42.711618895 +0100
 @@ -188,7 +188,7 @@
          } else if (signers != null) {
              // Convert the code signers to certs
@@ -3937,8 +4592,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/security/Permissions.java	2016-09-21 06:38:08.188139260 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/security/Permissions.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/security/Permissions.java	2017-04-04 20:01:42.711618895 +0100
 @@ -361,7 +361,7 @@
  
          // Copy perms into a Hashtable
@@ -3958,8 +4613,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/security/Policy.java	2016-09-21 06:38:08.188139260 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/security/Policy.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/security/Policy.java	2017-04-04 20:01:42.711618895 +0100
 @@ -109,7 +109,7 @@
  
      // PolicyInfo is stored in an AtomicReference
@@ -3979,8 +4634,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/security/ProtectionDomain.java	2016-09-21 06:38:08.188139260 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/security/ProtectionDomain.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/security/ProtectionDomain.java	2017-04-04 20:01:42.711618895 +0100
 @@ -400,8 +400,8 @@
          int swag = 32;
          int vcap = 8;
@@ -3993,8 +4648,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/security/Provider.java	2016-09-21 06:43:16.583015604 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/security/Provider.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/security/Provider.java	2017-04-04 20:01:42.711618895 +0100
 @@ -434,7 +434,7 @@
  
      private void readObject(ObjectInputStream in)
@@ -4023,8 +4678,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/security/SecureClassLoader.java	2016-09-21 06:38:08.188139260 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/security/SecureClassLoader.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/security/SecureClassLoader.java	2017-04-04 20:01:42.711618895 +0100
 @@ -50,7 +50,7 @@
      // HashMap that maps CodeSource to ProtectionDomain
      // @GuardedBy("pdcache")
@@ -4035,8 +4690,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/security/Security.java	2016-09-21 06:42:57.387334370 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/security/Security.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/security/Security.java	2017-04-04 20:01:42.715618829 +0100
 @@ -544,7 +544,7 @@
              value = filter.substring(index + 1);
          }
@@ -4083,8 +4738,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/security/UnresolvedPermissionCollection.java	2016-09-21 06:38:08.192139194 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/security/UnresolvedPermissionCollection.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/security/UnresolvedPermissionCollection.java	2017-04-04 20:01:42.715618829 +0100
 @@ -119,7 +119,7 @@
  
      public Enumeration<Permission> elements() {
@@ -4122,8 +4777,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/security/UnresolvedPermission.java	2016-09-21 06:38:08.192139194 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/security/UnresolvedPermission.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/security/UnresolvedPermission.java	2017-04-04 20:01:42.715618829 +0100
 @@ -196,7 +196,7 @@
                  if (this.certs == null) {
                      // extract the signer certs
@@ -4134,8 +4789,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/util/AbstractList.java	2016-09-21 06:38:08.192139194 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/AbstractList.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/util/AbstractList.java	2017-04-04 20:01:42.715618829 +0100
 @@ -482,8 +482,8 @@
       */
      public List<E> subList(int fromIndex, int toIndex) {
@@ -4165,8 +4820,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/util/Arrays.java	2016-09-21 06:38:08.192139194 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/Arrays.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/util/Arrays.java	2017-04-04 20:01:42.715618829 +0100
 @@ -2825,7 +2825,7 @@
       */
      @SafeVarargs
@@ -4177,8 +4832,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/util/Collections.java	2016-09-21 06:38:08.192139194 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/Collections.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/util/Collections.java	2017-04-04 20:01:42.715618829 +0100
 @@ -1035,7 +1035,7 @@
       * @return an unmodifiable view of the specified collection.
       */
@@ -4804,8 +5459,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	2016-09-21 06:14:42.823429169 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/util/Currency.java	2016-09-21 06:38:08.192139194 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/Currency.java	2017-04-04 19:17:25.758919509 +0100
++++ openjdk-boot/jdk/src/share/classes/java/util/Currency.java	2017-04-04 20:01:42.715618829 +0100
 @@ -101,7 +101,7 @@
  
      // class data: instance map
@@ -4816,8 +5471,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/util/EnumMap.java	2016-09-21 06:38:08.192139194 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/EnumMap.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/util/EnumMap.java	2017-04-04 20:01:42.715618829 +0100
 @@ -508,7 +508,7 @@
              int j = 0;
              for (int i = 0; i < vals.length; i++)
@@ -4828,8 +5483,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/util/EnumSet.java	2016-09-21 06:38:08.192139194 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/EnumSet.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/util/EnumSet.java	2017-04-04 20:01:42.715618829 +0100
 @@ -110,9 +110,9 @@
              throw new ClassCastException(elementType + " not an enum");
  
@@ -4852,9 +5507,9 @@
  
      // 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	2016-09-21 06:14:42.763430164 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/util/Formatter.java	2016-09-21 06:38:08.196139128 +0100
-@@ -2514,7 +2514,7 @@
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/Formatter.java	2017-04-04 19:17:25.726920022 +0100
++++ openjdk-boot/jdk/src/share/classes/java/util/Formatter.java	2017-04-04 20:01:42.715618829 +0100
+@@ -2531,7 +2531,7 @@
       * Finds format specifiers in the format string.
       */
      private FormatString[] parse(String s) {
@@ -4864,8 +5519,8 @@
          for (int i = 0, len = s.length(); i < len; ) {
              if (m.find(i)) {
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/HashMap.java openjdk-boot/jdk/src/share/classes/java/util/HashMap.java
---- openjdk-boot.orig/jdk/src/share/classes/java/util/HashMap.java	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/util/HashMap.java	2016-09-21 06:38:08.196139128 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/HashMap.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/util/HashMap.java	2017-04-04 20:01:42.715618829 +0100
 @@ -894,7 +894,7 @@
       */
      void createEntry(int hash, K key, V value, int bucketIndex) {
@@ -4876,8 +5531,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/util/HashSet.java	2016-09-21 06:38:08.196139128 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/HashSet.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/util/HashSet.java	2017-04-04 20:01:42.715618829 +0100
 @@ -100,7 +100,7 @@
       * default initial capacity (16) and load factor (0.75).
       */
@@ -4924,8 +5579,8 @@
  
      /**
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/Hashtable.java openjdk-boot/jdk/src/share/classes/java/util/Hashtable.java
---- openjdk-boot.orig/jdk/src/share/classes/java/util/Hashtable.java	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/util/Hashtable.java	2016-09-21 06:38:08.196139128 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/Hashtable.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/util/Hashtable.java	2017-04-04 20:01:42.719618764 +0100
 @@ -538,7 +538,7 @@
  
          // Creates the new entry.
@@ -4981,8 +5636,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/util/IdentityHashMap.java	2016-09-21 06:38:08.196139128 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/IdentityHashMap.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/util/IdentityHashMap.java	2017-04-04 20:01:42.719618764 +0100
 @@ -1145,7 +1145,7 @@
              Object[] result = new Object[size];
              Iterator<Map.Entry<K,V>> it = iterator();
@@ -5002,8 +5657,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/util/JumboEnumSet.java	2016-09-21 06:38:08.196139128 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/JumboEnumSet.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/util/JumboEnumSet.java	2017-04-04 20:01:42.719618764 +0100
 @@ -91,7 +91,7 @@
       * @return an iterator over the elements contained in this set
       */
@@ -5014,8 +5669,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/util/LinkedHashMap.java	2016-09-21 06:38:08.196139128 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/LinkedHashMap.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/util/LinkedHashMap.java	2017-04-04 20:01:42.719618764 +0100
 @@ -238,7 +238,7 @@
       */
      @Override
@@ -5035,8 +5690,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/util/LinkedList.java	2016-09-21 06:38:08.196139128 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/LinkedList.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/util/LinkedList.java	2017-04-04 20:01:42.719618764 +0100
 @@ -122,7 +122,7 @@
       */
      private void linkFirst(E e) {
@@ -5074,8 +5729,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/util/ListResourceBundle.java	2016-09-21 06:38:08.196139128 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/ListResourceBundle.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/util/ListResourceBundle.java	2017-04-04 20:01:42.719618764 +0100
 @@ -187,7 +187,7 @@
              return;
  
@@ -5086,9 +5741,9 @@
              // 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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/util/Locale.java	2016-09-21 06:38:08.196139128 +0100
-@@ -1793,7 +1793,7 @@
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/Locale.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/util/Locale.java	2017-04-04 20:01:42.719618764 +0100
+@@ -1807,7 +1807,7 @@
                  return formatList(variantNames, listPattern, listCompositionPattern);
              }
          }
@@ -5098,8 +5753,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/util/logging/FileHandler.java	2016-09-21 06:38:08.196139128 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/logging/FileHandler.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/util/logging/FileHandler.java	2017-04-04 20:01:42.719618764 +0100
 @@ -127,7 +127,7 @@
      private FileOutputStream lockStream;
      private File files[];
@@ -5110,8 +5765,8 @@
      // A metered stream is a subclass of OutputStream that
      //   (a) forwards all its output to a target stream
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/logging/Level.java openjdk-boot/jdk/src/share/classes/java/util/logging/Level.java
---- openjdk-boot.orig/jdk/src/share/classes/java/util/logging/Level.java	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/util/logging/Level.java	2016-09-21 06:38:08.196139128 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/logging/Level.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/util/logging/Level.java	2017-04-04 20:01:42.719618764 +0100
 @@ -518,8 +518,8 @@
      // were final, the following KnownLevel implementation can be removed.
      // Future API change should take this into consideration.
@@ -5141,8 +5796,8 @@
              }
              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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/util/logging/Logger.java	2016-09-21 06:38:08.196139128 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/logging/Logger.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/util/logging/Logger.java	2017-04-04 20:01:42.719618764 +0100
 @@ -177,7 +177,7 @@
      private volatile LogManager manager;
      private String name;
@@ -5162,8 +5817,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/util/logging/Logging.java	2016-09-21 06:38:08.196139128 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/logging/Logging.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/util/logging/Logging.java	2017-04-04 20:01:42.719618764 +0100
 @@ -56,7 +56,7 @@
  
      public List<String> getLoggerNames() {
@@ -5174,8 +5829,8 @@
          for (; loggers.hasMoreElements();) {
              array.add((String) loggers.nextElement());
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/logging/LogManager.java openjdk-boot/jdk/src/share/classes/java/util/logging/LogManager.java
---- openjdk-boot.orig/jdk/src/share/classes/java/util/logging/LogManager.java	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/util/logging/LogManager.java	2016-09-21 06:38:08.200139062 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/logging/LogManager.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/util/logging/LogManager.java	2017-04-04 20:01:42.719618764 +0100
 @@ -389,7 +389,7 @@
                      // find the AppContext of the applet code
                      // will be null if we are in the main app context.
@@ -5231,8 +5886,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/util/logging/LogRecord.java	2016-09-21 06:38:08.200139062 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/logging/LogRecord.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/util/logging/LogRecord.java	2017-04-04 20:10:25.531087443 +0100
 @@ -85,7 +85,8 @@
      private static final AtomicInteger nextThreadId
          = new AtomicInteger(MIN_SEQUENTIAL_THREAD_ID);
@@ -5243,9 +5898,18 @@
  
      /**
       * @serial Logging message level
+@@ -509,7 +510,7 @@
+                 parameters[i] = in.readObject();
+             }
+         } else {
+-            List<Object> params = new ArrayList<>(Math.min(len, 1024));
++            List<Object> params = new ArrayList<Object>(Math.min(len, 1024));
+             for (int i = 0; i < len; i++) {
+                 params.add(in.readObject());
+             }
 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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/util/prefs/AbstractPreferences.java	2016-09-21 06:38:08.200139062 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/prefs/AbstractPreferences.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/util/prefs/AbstractPreferences.java	2017-04-04 20:01:42.719618764 +0100
 @@ -155,7 +155,8 @@
       * All known unremoved children of this node.  (This "cache" is consulted
       * prior to calling childSpi() or getChild().
@@ -5276,8 +5940,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/util/PriorityQueue.java	2016-09-21 06:38:08.200139062 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/PriorityQueue.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/util/PriorityQueue.java	2017-04-04 20:01:42.719618764 +0100
 @@ -538,7 +538,7 @@
                      cursor--;
                  else {
@@ -5288,8 +5952,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/util/Properties.java	2016-09-21 06:38:08.200139062 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/Properties.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/util/Properties.java	2017-04-04 20:01:42.719618764 +0100
 @@ -1010,7 +1010,7 @@
       * @since   1.6
       */
@@ -5300,8 +5964,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/util/regex/Pattern.java	2016-09-21 06:38:08.200139062 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/regex/Pattern.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/util/regex/Pattern.java	2017-04-04 20:01:42.719618764 +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>
@@ -5339,8 +6003,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/util/regex/UnicodeProp.java	2016-09-21 06:38:08.200139062 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/regex/UnicodeProp.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/util/regex/UnicodeProp.java	2017-04-04 20:01:42.723618699 +0100
 @@ -193,8 +193,8 @@
          }
      };
@@ -5353,8 +6017,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/util/RegularEnumSet.java	2016-09-21 06:38:08.200139062 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/RegularEnumSet.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/util/RegularEnumSet.java	2017-04-04 20:01:42.723618699 +0100
 @@ -72,7 +72,7 @@
       * @return an iterator over the elements contained in this set
       */
@@ -5365,8 +6029,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/util/ResourceBundle.java	2016-09-21 06:38:08.200139062 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/ResourceBundle.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/util/ResourceBundle.java	2017-04-04 20:01:42.723618699 +0100
 @@ -291,7 +291,7 @@
       * name for compatibility with some workarounds for bug 4212439.
       */
@@ -5431,8 +6095,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/util/ServiceLoader.java	2016-09-21 06:38:08.200139062 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/ServiceLoader.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/util/ServiceLoader.java	2017-04-04 20:01:42.723618699 +0100
 @@ -191,7 +191,7 @@
      private ClassLoader loader;
  
@@ -5461,8 +6125,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/util/TimSort.java	2016-09-21 06:38:08.200139062 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/TimSort.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/util/TimSort.java	2017-04-04 20:01:42.723618699 +0100
 @@ -196,7 +196,7 @@
           * extending short natural runs to minRun elements, and merging runs
           * to maintain stack invariant.
@@ -5473,8 +6137,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/util/TreeMap.java	2016-09-21 06:38:08.204138994 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/TreeMap.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/util/TreeMap.java	2017-04-04 20:01:42.723618699 +0100
 @@ -530,7 +530,7 @@
          if (t == null) {
              compare(key, key); // type (and possibly null) check
@@ -5530,8 +6194,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/util/TreeSet.java	2016-09-21 06:38:08.204138994 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/TreeSet.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/util/TreeSet.java	2017-04-04 20:01:42.723618699 +0100
 @@ -138,7 +138,7 @@
       *        ordering} of the elements will be used.
       */
@@ -5599,8 +6263,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/util/WeakHashMap.java	2016-09-21 06:38:08.204138994 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/WeakHashMap.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/util/WeakHashMap.java	2017-04-04 20:01:42.723618699 +0100
 @@ -172,7 +172,7 @@
      /**
       * Reference queue for cleared WeakEntries
@@ -5633,8 +6297,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/util/zip/ZipFile.java	2016-09-21 06:38:08.204138994 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/zip/ZipFile.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/util/zip/ZipFile.java	2017-04-04 20:01:42.723618699 +0100
 @@ -321,7 +321,7 @@
  
      // the outstanding inputstreams that need to be closed,
@@ -5663,8 +6327,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/util/zip/ZipOutputStream.java	2016-09-21 06:38:08.204138994 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/zip/ZipOutputStream.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/util/zip/ZipOutputStream.java	2017-04-04 20:01:42.723618699 +0100
 @@ -53,8 +53,8 @@
      }
  
@@ -5677,8 +6341,8 @@
      private long written = 0;
      private long locoff = 0;
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/javax/crypto/Cipher.java openjdk-boot/jdk/src/share/classes/javax/crypto/Cipher.java
---- openjdk-boot.orig/jdk/src/share/classes/javax/crypto/Cipher.java	2016-09-21 16:21:08.322679216 +0100
-+++ openjdk-boot/jdk/src/share/classes/javax/crypto/Cipher.java	2016-09-21 17:31:00.081247464 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/javax/crypto/Cipher.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/javax/crypto/Cipher.java	2017-04-04 20:01:42.723618699 +0100
 @@ -417,7 +417,7 @@
              return Collections.singletonList(tr);
          } else { // if ((mode != null) && (pad != null)) {
@@ -5698,8 +6362,8 @@
              cipherServices.add(new ServiceId("Cipher", transform.transform));
          }
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/javax/crypto/CryptoAllPermission.java openjdk-boot/jdk/src/share/classes/javax/crypto/CryptoAllPermission.java
---- openjdk-boot.orig/jdk/src/share/classes/javax/crypto/CryptoAllPermission.java	2016-09-21 16:21:08.334679015 +0100
-+++ openjdk-boot/jdk/src/share/classes/javax/crypto/CryptoAllPermission.java	2016-09-21 17:37:00.499342683 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/javax/crypto/CryptoAllPermission.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/javax/crypto/CryptoAllPermission.java	2017-04-04 20:01:42.723618699 +0100
 @@ -172,7 +172,7 @@
       * @return an enumeration of all the CryptoAllPermission objects.
       */
@@ -5710,8 +6374,8 @@
          return v.elements();
      }
 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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/javax/crypto/CryptoPermissions.java	2016-09-21 06:42:13.792058393 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/javax/crypto/CryptoPermissions.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/javax/crypto/CryptoPermissions.java	2017-04-04 20:01:42.723618699 +0100
 @@ -84,7 +84,7 @@
       * no CryptoPermissionCollections.
       */
@@ -5759,8 +6423,8 @@
          fields.put("perms", permTable);
          s.writeFields();
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/javax/crypto/CryptoPolicyParser.java openjdk-boot/jdk/src/share/classes/javax/crypto/CryptoPolicyParser.java
---- openjdk-boot.orig/jdk/src/share/classes/javax/crypto/CryptoPolicyParser.java	2016-09-21 16:21:08.342678881 +0100
-+++ openjdk-boot/jdk/src/share/classes/javax/crypto/CryptoPolicyParser.java	2016-09-21 17:36:51.403491197 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/javax/crypto/CryptoPolicyParser.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/javax/crypto/CryptoPolicyParser.java	2017-04-04 20:01:42.723618699 +0100
 @@ -252,7 +252,7 @@
              // AlgorithmParameterSpec class name.
              String algParamSpecClassName = match("quoted string");
@@ -5789,8 +6453,8 @@
              processedPermissions.put(alg, exemptionMechanisms);
              return true;
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/javax/crypto/JceSecurity.java openjdk-boot/jdk/src/share/classes/javax/crypto/JceSecurity.java
---- openjdk-boot.orig/jdk/src/share/classes/javax/crypto/JceSecurity.java	2016-09-21 16:21:08.350678746 +0100
-+++ openjdk-boot/jdk/src/share/classes/javax/crypto/JceSecurity.java	2016-09-21 17:34:25.293882639 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/javax/crypto/JceSecurity.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/javax/crypto/JceSecurity.java	2017-04-04 20:01:42.723618699 +0100
 @@ -58,11 +58,11 @@
      // value == PROVIDER_VERIFIED is successfully verified
      // value is failure cause Exception in error case
@@ -5815,8 +6479,8 @@
      /*
       * Returns the CodeBase for the given class.
 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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/javax/crypto/JceSecurityManager.java	2016-09-21 06:41:35.360696737 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/javax/crypto/JceSecurityManager.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/javax/crypto/JceSecurityManager.java	2017-04-04 20:01:42.727618633 +0100
 @@ -52,9 +52,9 @@
      private static final CryptoPermissions exemptPolicy;
      private static final CryptoAllPermission allPerm;
@@ -5830,8 +6494,8 @@
              new CryptoPermissions();
  
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/javax/management/remote/rmi/RMIJRMPServerImpl.java openjdk-boot/jdk/src/share/classes/javax/management/remote/rmi/RMIJRMPServerImpl.java
---- openjdk-boot.orig/jdk/src/share/classes/javax/management/remote/rmi/RMIJRMPServerImpl.java	2016-09-21 16:22:27.001358900 +0100
-+++ openjdk-boot/jdk/src/share/classes/javax/management/remote/rmi/RMIJRMPServerImpl.java	2016-09-21 17:36:30.783827857 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/javax/management/remote/rmi/RMIJRMPServerImpl.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/javax/management/remote/rmi/RMIJRMPServerImpl.java	2017-04-04 20:01:42.727618633 +0100
 @@ -103,7 +103,7 @@
                  = (String[]) this.env.get(EnvHelp.CREDENTIAL_TYPES);
          List<String> types = null;
@@ -5841,9 +6505,210 @@
              for (String type : credentialsTypes) {
                  if (type == null) {
                      throw new IllegalArgumentException("A credential type is null.");
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/javax/naming/directory/BasicAttribute.java openjdk-boot/jdk/src/share/classes/javax/naming/directory/BasicAttribute.java
+--- openjdk-boot.orig/jdk/src/share/classes/javax/naming/directory/BasicAttribute.java	2017-04-05 04:34:22.515474591 +0100
++++ openjdk-boot/jdk/src/share/classes/javax/naming/directory/BasicAttribute.java	2017-04-05 04:43:10.006861687 +0100
+@@ -255,7 +255,7 @@
+       */
+     public BasicAttribute(String id, boolean ordered) {
+         attrID = id;
+-        values = new Vector<>();
++        values = new Vector<Object>();
+         this.ordered = ordered;
+     }
+ 
+@@ -515,7 +515,7 @@
+             throws java.io.IOException, ClassNotFoundException {
+         s.defaultReadObject();  // read in the attrID
+         int n = s.readInt();    // number of values
+-        values = new Vector<>(n);
++        values = new Vector<Object>(n);
+         while (--n >= 0) {
+             values.addElement(s.readObject());
+         }
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/javax/naming/directory/BasicAttributes.java openjdk-boot/jdk/src/share/classes/javax/naming/directory/BasicAttributes.java
+--- openjdk-boot.orig/jdk/src/share/classes/javax/naming/directory/BasicAttributes.java	2017-04-05 04:34:22.523474460 +0100
++++ openjdk-boot/jdk/src/share/classes/javax/naming/directory/BasicAttributes.java	2017-04-05 04:42:53.255135231 +0100
+@@ -79,7 +79,7 @@
+     // If ignoreCase is true, key is aways lowercase.
+     // If ignoreCase is false, key is stored as supplied by put().
+     // %%% Not declared "private" due to bug 4064984.
+-    transient Hashtable<String,Attribute> attrs = new Hashtable<>(11);
++    transient Hashtable<String,Attribute> attrs = new Hashtable<String, Attribute>(11);
+ 
+     /**
+       * Constructs a new instance of Attributes.
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/javax/naming/ldap/InitialLdapContext.java openjdk-boot/jdk/src/share/classes/javax/naming/ldap/InitialLdapContext.java
+--- openjdk-boot.orig/jdk/src/share/classes/javax/naming/ldap/InitialLdapContext.java	2017-04-05 04:34:22.543474134 +0100
++++ openjdk-boot/jdk/src/share/classes/javax/naming/ldap/InitialLdapContext.java	2017-04-05 04:42:42.111317201 +0100
+@@ -137,7 +137,7 @@
+ 
+         // Clone environment since caller owns it.
+         Hashtable<Object,Object> env = (environment == null)
+-            ? new Hashtable<>(11)
++            ? new Hashtable<Object,Object>(11)
+             : (Hashtable<Object,Object>)environment.clone();
+ 
+         // Put connect controls into environment.  Copy them first since
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/javax/naming/ldap/LdapName.java openjdk-boot/jdk/src/share/classes/javax/naming/ldap/LdapName.java
+--- openjdk-boot.orig/jdk/src/share/classes/javax/naming/ldap/LdapName.java	2017-04-06 03:29:05.261518065 +0100
++++ openjdk-boot/jdk/src/share/classes/javax/naming/ldap/LdapName.java	2017-04-06 03:38:21.820598085 +0100
+@@ -142,7 +142,7 @@
+         //              "Invalid entries, list entries must be of type Rdn");
+         //  }
+ 
+-        this.rdns = new ArrayList<>(rdns.size());
++        this.rdns = new ArrayList<Rdn>(rdns.size());
+         for (int i = 0; i < rdns.size(); i++) {
+             Object obj = rdns.get(i);
+             if (!(obj instanceof Rdn)) {
+@@ -164,7 +164,7 @@
+         // this.rdns = rdns.subList(beg, end);
+ 
+         List<Rdn> sList = rdns.subList(beg, end);
+-        this.rdns = new ArrayList<>(sList);
++        this.rdns = new ArrayList<Rdn>(sList);
+     }
+ 
+     /**
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/javax/naming/ldap/Rdn.java openjdk-boot/jdk/src/share/classes/javax/naming/ldap/Rdn.java
+--- openjdk-boot.orig/jdk/src/share/classes/javax/naming/ldap/Rdn.java	2017-04-06 03:29:05.273517873 +0100
++++ openjdk-boot/jdk/src/share/classes/javax/naming/ldap/Rdn.java	2017-04-06 03:38:51.872116249 +0100
+@@ -130,7 +130,7 @@
+         if (attrSet.size() == 0) {
+             throw new InvalidNameException("Attributes cannot be empty");
+         }
+-        entries = new ArrayList<>(attrSet.size());
++        entries = new ArrayList<RdnEntry>(attrSet.size());
+         NamingEnumeration<? extends Attribute> attrs = attrSet.getAll();
+         try {
+             for (int nEntries = 0; attrs.hasMore(); nEntries++) {
+@@ -161,7 +161,7 @@
+      *                  parsing of the rdnString.
+      */
+     public Rdn(String rdnString) throws InvalidNameException {
+-        entries = new ArrayList<>(DEFAULT_SIZE);
++        entries = new ArrayList<RdnEntry>(DEFAULT_SIZE);
+         (new Rfc2253Parser(rdnString)).parseRdn(this);
+     }
+ 
+@@ -172,7 +172,7 @@
+      * @param rdn The non-null Rdn to be copied.
+      */
+     public Rdn(Rdn rdn) {
+-        entries = new ArrayList<>(rdn.entries.size());
++        entries = new ArrayList<RdnEntry>(rdn.entries.size());
+         entries.addAll(rdn.entries);
+     }
+ 
+@@ -199,7 +199,7 @@
+                 "type or value cannot be empty, type:" + type +
+                 " value:" + value);
+         }
+-        entries = new ArrayList<>(DEFAULT_SIZE);
++        entries = new ArrayList<RdnEntry>(DEFAULT_SIZE);
+         put(type, value);
+     }
+ 
+@@ -210,7 +210,7 @@
+ 
+     // An empty constructor used by the parser
+     Rdn() {
+-        entries = new ArrayList<>(DEFAULT_SIZE);
++        entries = new ArrayList<RdnEntry>(DEFAULT_SIZE);
+     }
+ 
+     /*
+@@ -747,7 +747,7 @@
+     private void readObject(ObjectInputStream s)
+             throws IOException, ClassNotFoundException {
+         s.defaultReadObject();
+-        entries = new ArrayList<>(DEFAULT_SIZE);
++        entries = new ArrayList<RdnEntry>(DEFAULT_SIZE);
+         String unparsed = (String) s.readObject();
+         try {
+             (new Rfc2253Parser(unparsed)).parseRdn(this);
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/javax/naming/ldap/Rfc2253Parser.java openjdk-boot/jdk/src/share/classes/javax/naming/ldap/Rfc2253Parser.java
+--- openjdk-boot.orig/jdk/src/share/classes/javax/naming/ldap/Rfc2253Parser.java	2017-04-06 03:29:05.285517681 +0100
++++ openjdk-boot/jdk/src/share/classes/javax/naming/ldap/Rfc2253Parser.java	2017-04-06 03:39:02.647943469 +0100
+@@ -61,7 +61,7 @@
+             //  new ArrayList<Rdn>(len / 3 + 10);  // leave room for growth
+ 
+             ArrayList<Rdn> rdns =
+-                new ArrayList<>(len / 3 + 10);  // leave room for growth
++                new ArrayList<Rdn>(len / 3 + 10);  // leave room for growth
+ 
+             if (len == 0) {
+                 return rdns;
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/javax/naming/NameImpl.java openjdk-boot/jdk/src/share/classes/javax/naming/NameImpl.java
+--- openjdk-boot.orig/jdk/src/share/classes/javax/naming/NameImpl.java	2017-04-05 04:34:22.555473938 +0100
++++ openjdk-boot/jdk/src/share/classes/javax/naming/NameImpl.java	2017-04-05 04:42:32.015482058 +0100
+@@ -272,7 +272,7 @@
+         if (syntax != null) {
+             recordNamingConvention(syntax);
+         }
+-        components = new Vector<>();
++        components = new Vector<String>();
+     }
+ 
+     NameImpl(Properties syntax, String n) throws InvalidNameException {
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/javax/naming/Reference.java openjdk-boot/jdk/src/share/classes/javax/naming/Reference.java
+--- openjdk-boot.orig/jdk/src/share/classes/javax/naming/Reference.java	2017-04-05 04:34:22.563473807 +0100
++++ openjdk-boot/jdk/src/share/classes/javax/naming/Reference.java	2017-04-05 04:42:16.295738747 +0100
+@@ -120,7 +120,7 @@
+       */
+     public Reference(String className) {
+         this.className  = className;
+-        addrs = new Vector<>();
++        addrs = new Vector<RefAddr>();
+     }
+ 
+     /**
+@@ -134,7 +134,7 @@
+       */
+     public Reference(String className, RefAddr addr) {
+         this.className = className;
+-        addrs = new Vector<>();
++        addrs = new Vector<RefAddr>();
+         addrs.addElement(addr);
+     }
+ 
+@@ -382,7 +382,7 @@
+     public Object clone() {
+         Reference r = new Reference(className, classFactory, classFactoryLocation);
+         Enumeration<RefAddr> a = getAll();
+-        r.addrs = new Vector<>();
++        r.addrs = new Vector<RefAddr>();
+ 
+         while (a.hasMoreElements())
+             r.addrs.addElement(a.nextElement());
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/javax/naming/spi/DirectoryManager.java openjdk-boot/jdk/src/share/classes/javax/naming/spi/DirectoryManager.java
+--- openjdk-boot.orig/jdk/src/share/classes/javax/naming/spi/DirectoryManager.java	2017-04-05 04:34:22.571473677 +0100
++++ openjdk-boot/jdk/src/share/classes/javax/naming/spi/DirectoryManager.java	2017-04-05 04:41:36.020396403 +0100
+@@ -90,7 +90,7 @@
+ 
+         Hashtable<Object,Object> env = (Hashtable<Object,Object>)cpe.getEnvironment();
+         if (env == null) {
+-            env = new Hashtable<>(7);
++            env = new Hashtable<Object, Object>(7);
+         } else {
+             // Make a (shallow) copy of the environment.
+             env = (Hashtable<Object,Object>) env.clone();
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/javax/naming/spi/NamingManager.java openjdk-boot/jdk/src/share/classes/javax/naming/spi/NamingManager.java
+--- openjdk-boot.orig/jdk/src/share/classes/javax/naming/spi/NamingManager.java	2017-04-05 04:34:22.579473547 +0100
++++ openjdk-boot/jdk/src/share/classes/javax/naming/spi/NamingManager.java	2017-04-05 04:41:27.708532126 +0100
+@@ -777,7 +777,7 @@
+ 
+         Hashtable<Object,Object> env = (Hashtable<Object,Object>)cpe.getEnvironment();
+         if (env == null) {
+-            env = new Hashtable<>(7);
++            env = new Hashtable<Object, Object>(7);
+         } else {
+             // Make a (shallow) copy of the environment.
+             env = (Hashtable<Object,Object>)env.clone();
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/javax/script/ScriptEngineManager.java openjdk-boot/jdk/src/share/classes/javax/script/ScriptEngineManager.java
---- openjdk-boot.orig/jdk/src/share/classes/javax/script/ScriptEngineManager.java	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/javax/script/ScriptEngineManager.java	2016-09-21 06:38:08.204138994 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/javax/script/ScriptEngineManager.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/javax/script/ScriptEngineManager.java	2017-04-04 20:01:42.727618633 +0100
 @@ -116,7 +116,7 @@
              return null;
          }
@@ -5854,8 +6719,8 @@
              while (itr.hasNext()) {
                  try {
 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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/javax/security/auth/kerberos/DelegationPermission.java	2016-09-21 06:38:08.204138994 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/javax/security/auth/kerberos/DelegationPermission.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/javax/security/auth/kerberos/DelegationPermission.java	2017-04-04 20:01:42.727618633 +0100
 @@ -361,7 +361,7 @@
          // Don't call out.defaultWriteObject()
  
@@ -5866,8 +6731,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/javax/security/auth/kerberos/ServicePermission.java	2016-09-21 06:38:08.204138994 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/javax/security/auth/kerberos/ServicePermission.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/javax/security/auth/kerberos/ServicePermission.java	2017-04-04 20:01:42.727618633 +0100
 @@ -590,7 +590,7 @@
          // Don't call out.defaultWriteObject()
  
@@ -5878,8 +6743,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/javax/security/auth/PrivateCredentialPermission.java	2016-09-21 06:38:08.204138994 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/javax/security/auth/PrivateCredentialPermission.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/javax/security/auth/PrivateCredentialPermission.java	2017-04-04 20:01:42.727618633 +0100
 @@ -329,7 +329,7 @@
              throw new IllegalArgumentException("invalid empty name");
          }
@@ -5890,8 +6755,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/javax/security/auth/SubjectDomainCombiner.java	2016-09-21 06:38:08.204138994 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/javax/security/auth/SubjectDomainCombiner.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/javax/security/auth/SubjectDomainCombiner.java	2017-04-04 20:01:42.727618633 +0100
 @@ -50,7 +50,7 @@
  
      private Subject subject;
@@ -5902,8 +6767,8 @@
      private Principal[] principals;
  
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/javax/swing/JDesktopPane.java openjdk-boot/jdk/src/share/classes/javax/swing/JDesktopPane.java
---- openjdk-boot.orig/jdk/src/share/classes/javax/swing/JDesktopPane.java	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/javax/swing/JDesktopPane.java	2016-09-21 06:38:08.204138994 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/javax/swing/JDesktopPane.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/javax/swing/JDesktopPane.java	2017-04-04 20:01:42.727618633 +0100
 @@ -267,7 +267,7 @@
  
      private static Collection<JInternalFrame> getAllFrames(Container parent) {
@@ -5914,8 +6779,8 @@
          for (i = 0; i < count; i++) {
              Component next = parent.getComponent(i);
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/jdk/net/Sockets.java openjdk-boot/jdk/src/share/classes/jdk/net/Sockets.java
---- openjdk-boot.orig/jdk/src/share/classes/jdk/net/Sockets.java	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/jdk/net/Sockets.java	2016-09-21 06:38:08.208138928 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/jdk/net/Sockets.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/jdk/net/Sockets.java	2017-04-04 20:01:42.727618633 +0100
 @@ -58,7 +58,7 @@
  public class Sockets {
  
@@ -5961,9 +6826,64 @@
          set.add(StandardSocketOptions.SO_SNDBUF);
          set.add(StandardSocketOptions.SO_RCVBUF);
          set.add(StandardSocketOptions.SO_REUSEADDR);
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/Policy.java openjdk-boot/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/Policy.java
+--- openjdk-boot.orig/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/Policy.java	2017-04-07 16:50:12.985417555 +0100
++++ openjdk-boot/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/Policy.java	2017-04-07 16:53:41.086019377 +0100
+@@ -46,11 +46,11 @@
+ public final class Policy {
+ 
+     // all restrictions are initialized to be unconstrained
+-    private static Set<URI> disallowedAlgs = new HashSet<>();
++    private static Set<URI> disallowedAlgs = new HashSet<URI>();
+     private static int maxTrans = Integer.MAX_VALUE;
+     private static int maxRefs = Integer.MAX_VALUE;
+-    private static Set<String> disallowedRefUriSchemes = new HashSet<>();
+-    private static Map<String, Integer> minKeyMap = new HashMap<>();
++    private static Set<String> disallowedRefUriSchemes = new HashSet<String>();
++    private static Map<String, Integer> minKeyMap = new HashMap<String, Integer>();
+     private static boolean noDuplicateIds = false;
+     private static boolean noRMLoops = false;
+ 
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/awt/im/ExecutableInputMethodManager.java openjdk-boot/jdk/src/share/classes/sun/awt/im/ExecutableInputMethodManager.java
+--- openjdk-boot.orig/jdk/src/share/classes/sun/awt/im/ExecutableInputMethodManager.java	2017-04-05 04:34:22.623472828 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/awt/im/ExecutableInputMethodManager.java	2017-04-05 04:40:27.185520390 +0100
+@@ -96,7 +96,7 @@
+     // IM preference stuff
+     private static final String preferredIMNode = "/sun/awt/im/preferredInputMethod";
+     private static final String descriptorKey = "descriptor";
+-    private Hashtable<String, InputMethodLocator> preferredLocatorCache = new Hashtable<>();
++    private Hashtable<String, InputMethodLocator> preferredLocatorCache = new Hashtable<String, InputMethodLocator>();
+     private Preferences userRoot;
+ 
+     ExecutableInputMethodManager() {
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/awt/im/InputContext.java openjdk-boot/jdk/src/share/classes/sun/awt/im/InputContext.java
+--- openjdk-boot.orig/jdk/src/share/classes/sun/awt/im/InputContext.java	2017-04-05 04:34:22.639472567 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/awt/im/InputContext.java	2017-04-05 04:40:10.329795618 +0100
+@@ -552,10 +552,10 @@
+ 
+             // keep the input method instance around for future use
+             if (usedInputMethods == null) {
+-                usedInputMethods = new HashMap<>(5);
++                usedInputMethods = new HashMap<InputMethodLocator, InputMethod>(5);
+             }
+             if (perInputMethodState == null) {
+-                perInputMethodState = new HashMap<>(5);
++                perInputMethodState = new HashMap<InputMethod, Boolean>(5);
+             }
+             usedInputMethods.put(inputMethodLocator.deriveLocator(null), inputMethod);
+             perInputMethodState.put(inputMethod,
+@@ -924,7 +924,7 @@
+         // method becomes the current one.
+         if (requester != inputMethod) {
+             if (perInputMethodState == null) {
+-                perInputMethodState = new HashMap<>(5);
++                perInputMethodState = new HashMap<InputMethod, Boolean>(5);
+             }
+             perInputMethodState.put(requester, Boolean.valueOf(enable));
+             return;
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/font/CreatedFontTracker.java openjdk-boot/jdk/src/share/classes/sun/font/CreatedFontTracker.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/font/CreatedFontTracker.java	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/font/CreatedFontTracker.java	2016-09-21 06:38:08.208138928 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/font/CreatedFontTracker.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/font/CreatedFontTracker.java	2017-04-04 20:01:42.727618633 +0100
 @@ -109,7 +109,7 @@
       * Note that this only applies to createFont() from an InputStream object.
       */
@@ -5974,8 +6894,8 @@
          private static Thread t = null;
          static void init() {
 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	2016-09-21 06:14:42.863428507 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/invoke/util/ValueConversions.java	2016-09-21 06:38:08.208138928 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/invoke/util/ValueConversions.java	2017-04-04 19:17:25.790918997 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/invoke/util/ValueConversions.java	2017-04-04 20:01:42.727618633 +0100
 @@ -60,7 +60,7 @@
          EnumMap<Wrapper, MethodHandle>[] caches
                  = (EnumMap<Wrapper, MethodHandle>[]) new EnumMap<?,?>[n];
@@ -6013,8 +6933,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/io/CharacterEncoding.java	2016-09-21 06:38:08.208138928 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/io/CharacterEncoding.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/io/CharacterEncoding.java	2017-04-04 20:01:42.727618633 +0100
 @@ -54,7 +54,7 @@
      private static volatile boolean installedAll;
  
@@ -6025,8 +6945,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/io/Converters.java	2016-09-21 06:38:08.208138928 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/io/Converters.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/io/Converters.java	2017-04-04 20:01:42.727618633 +0100
 @@ -120,7 +120,7 @@
  
      private static Class<?> cache(int type, Object encoding, Class<?> c) {
@@ -6037,8 +6957,8 @@
          return c;
      }
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/java2d/cmm/lcms/LCMSProfile.java openjdk-boot/jdk/src/share/classes/sun/java2d/cmm/lcms/LCMSProfile.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/java2d/cmm/lcms/LCMSProfile.java	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/java2d/cmm/lcms/LCMSProfile.java	2016-09-21 06:38:08.256138130 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/java2d/cmm/lcms/LCMSProfile.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/java2d/cmm/lcms/LCMSProfile.java	2017-04-04 20:01:42.727618633 +0100
 @@ -61,7 +61,7 @@
  
          TagCache(LCMSProfile p) {
@@ -6049,8 +6969,8 @@
  
          TagData getTag(int sig) {
 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	2016-09-21 06:14:42.823429169 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/launcher/LauncherHelper.java	2016-09-21 06:38:08.208138928 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/launcher/LauncherHelper.java	2017-04-04 19:17:25.758919509 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/launcher/LauncherHelper.java	2017-04-04 20:01:42.727618633 +0100
 @@ -171,7 +171,7 @@
      private static void printProperties(PrintStream ostream) {
          Properties p = System.getProperties();
@@ -6088,8 +7008,8 @@
              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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/management/jdp/JdpPacketReader.java	2016-09-21 06:38:08.208138928 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/management/jdp/JdpPacketReader.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/management/jdp/JdpPacketReader.java	2017-04-04 20:01:42.727618633 +0100
 @@ -120,7 +120,7 @@
  
          String key = null, value = null;
@@ -6100,8 +7020,8 @@
              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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/management/ManagementFactoryHelper.java	2016-09-21 06:38:08.208138928 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/management/ManagementFactoryHelper.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/management/ManagementFactoryHelper.java	2017-04-04 20:01:42.727618633 +0100
 @@ -205,7 +205,7 @@
      private static List<BufferPoolMXBean> bufferPools = null;
      public static synchronized List<BufferPoolMXBean> getBufferPoolMXBeans() {
@@ -6111,9 +7031,21 @@
              bufferPools.add(createBufferPoolMXBean(sun.misc.SharedSecrets.getJavaNioAccess()
                  .getDirectBufferPool()));
              bufferPools.add(createBufferPoolMXBean(sun.nio.ch.FileChannelImpl
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/misc/ObjectInputFilter.java openjdk-boot/jdk/src/share/classes/sun/misc/ObjectInputFilter.java
+--- openjdk-boot.orig/jdk/src/share/classes/sun/misc/ObjectInputFilter.java	2017-04-05 04:34:22.679471914 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/misc/ObjectInputFilter.java	2017-04-05 04:39:25.474528032 +0100
+@@ -444,7 +444,7 @@
+                 maxStreamBytes = Long.MAX_VALUE;
+ 
+                 String[] patterns = pattern.split(";");
+-                filters = new ArrayList<>(patterns.length);
++                filters = new ArrayList<GlobalFilter>(patterns.length);
+                 for (int i = 0; i < patterns.length; i++) {
+                     String p = patterns[i];
+                     int nameLen = p.length();
 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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/net/spi/nameservice/dns/DNSNameService.java	2016-09-21 06:38:08.208138928 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/net/spi/nameservice/dns/DNSNameService.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/net/spi/nameservice/dns/DNSNameService.java	2017-04-04 20:01:42.727618633 +0100
 @@ -52,7 +52,7 @@
  
      // Per-thread soft cache of the last temporary context
@@ -6141,9 +7073,33 @@
          Attributes attrs;
  
          // do the query
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/net/TransferProtocolClient.java openjdk-boot/jdk/src/share/classes/sun/net/TransferProtocolClient.java
+--- openjdk-boot.orig/jdk/src/share/classes/sun/net/TransferProtocolClient.java	2017-04-06 04:27:47.597036843 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/net/TransferProtocolClient.java	2017-04-06 04:28:00.976822190 +0100
+@@ -42,7 +42,7 @@
+ 
+     /** Array of strings (usually 1 entry) for the last reply
+         from the server. */
+-    protected Vector<String> serverResponse = new Vector<>(1);
++    protected Vector<String> serverResponse = new Vector<String>(1);
+ 
+     /** code for last reply */
+     protected int       lastReplyCode;
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/net/www/protocol/http/AuthenticationHeader.java openjdk-boot/jdk/src/share/classes/sun/net/www/protocol/http/AuthenticationHeader.java
+--- openjdk-boot.orig/jdk/src/share/classes/sun/net/www/protocol/http/AuthenticationHeader.java	2017-04-05 04:34:22.707471457 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/net/www/protocol/http/AuthenticationHeader.java	2017-04-05 04:41:10.748809059 +0100
+@@ -139,7 +139,7 @@
+         this.dontUseNegotiate = dontUseNegotiate;
+         this.rsp = response;
+         this.hdrname = hdrname;
+-        this.schemes = new HashMap<>();
++        this.schemes = new HashMap<String, SchemeMapValue>();
+         parse(disabledSchemes);
+     }
+ 
 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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/net/www/protocol/http/AuthenticationInfo.java	2016-09-21 06:38:08.208138928 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/net/www/protocol/http/AuthenticationInfo.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/net/www/protocol/http/AuthenticationInfo.java	2017-04-04 20:01:42.727618633 +0100
 @@ -111,7 +111,7 @@
       * at the same time, then all but the first will block until
       * the first completes its authentication.
@@ -6154,9 +7110,18 @@
      /* 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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/net/www/protocol/http/HttpURLConnection.java	2016-09-21 06:38:08.208138928 +0100
-@@ -2660,7 +2660,7 @@
+--- openjdk-boot.orig/jdk/src/share/classes/sun/net/www/protocol/http/HttpURLConnection.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/net/www/protocol/http/HttpURLConnection.java	2017-04-04 20:10:12.051307294 +0100
+@@ -224,7 +224,7 @@
+         if (list == null || list.isEmpty())
+             return Collections.emptySet();
+ 
+-        Set<String> s = new HashSet<>();
++        Set<String> s = new HashSet<String>();
+         String[] parts = list.split("\\s*,\\s*");
+         for (String part : parts)
+             s.add(part.toLowerCase(Locale.ROOT));
+@@ -2719,7 +2719,7 @@
          if (filteredHeaders != null)
              return filteredHeaders;
  
@@ -6165,7 +7130,7 @@
  
          if (cachedHeaders != null)
              headers = cachedHeaders.getHeaders();
-@@ -2669,7 +2669,7 @@
+@@ -2728,7 +2728,7 @@
  
          for (Map.Entry<String, List<String>> e: headers.entrySet()) {
              String key = e.getKey();
@@ -6174,10 +7139,19 @@
              for (String value : values) {
                  String fVal = filterHeaderField(key, value);
                  if (fVal != null)
+@@ -2910,7 +2910,7 @@
+          */
+         Map<String, List<String>> userCookiesMap = null;
+         if (userCookies != null || userCookies2 != null) {
+-            userCookiesMap = new HashMap<>();
++            userCookiesMap = new HashMap<String, List<String>>();
+             if (userCookies != null) {
+                 userCookiesMap.put("Cookie", Arrays.asList(userCookies));
+             }
 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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/net/www/URLConnection.java	2016-09-21 06:38:08.208138928 +0100
-@@ -239,7 +239,7 @@
+--- openjdk-boot.orig/jdk/src/share/classes/sun/net/www/URLConnection.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/net/www/URLConnection.java	2017-04-04 20:01:42.731618568 +0100
+@@ -234,7 +234,7 @@
          url = null;
      }
  
@@ -6187,8 +7161,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/nio/cs/AbstractCharsetProvider.java	2016-09-21 06:38:08.208138928 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/nio/cs/AbstractCharsetProvider.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/nio/cs/AbstractCharsetProvider.java	2017-04-04 20:01:42.731618568 +0100
 @@ -49,22 +49,22 @@
      /* Maps canonical names to class names
       */
@@ -6226,8 +7200,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/nio/fs/AbstractAclFileAttributeView.java	2016-09-21 06:38:08.208138928 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/nio/fs/AbstractAclFileAttributeView.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/nio/fs/AbstractAclFileAttributeView.java	2017-04-04 20:01:42.731618568 +0100
 @@ -84,7 +84,7 @@
              throw new IllegalArgumentException("'" + name() + ":" +
                  attribute + "' not recognized");
@@ -6238,8 +7212,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/nio/fs/AbstractBasicFileAttributeView.java	2016-09-21 06:38:08.208138928 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/nio/fs/AbstractBasicFileAttributeView.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/nio/fs/AbstractBasicFileAttributeView.java	2017-04-04 20:01:42.731618568 +0100
 @@ -89,8 +89,8 @@
       * Used to build a map of attribute name/values.
       */
@@ -6252,8 +7226,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/nio/fs/AbstractPoller.java	2016-09-21 06:38:08.212138862 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/nio/fs/AbstractPoller.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/nio/fs/AbstractPoller.java	2017-04-04 20:01:42.731618568 +0100
 @@ -102,7 +102,7 @@
              throw new NullPointerException();
          if (events.length == 0)
@@ -6264,8 +7238,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/nio/fs/AbstractUserDefinedFileAttributeView.java	2016-09-21 06:38:08.212138862 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/nio/fs/AbstractUserDefinedFileAttributeView.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/nio/fs/AbstractUserDefinedFileAttributeView.java	2017-04-04 20:01:42.731618568 +0100
 @@ -77,7 +77,7 @@
          throws IOException
      {
@@ -6285,8 +7259,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/nio/fs/FileOwnerAttributeViewImpl.java	2016-09-21 06:38:08.212138862 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/nio/fs/FileOwnerAttributeViewImpl.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/nio/fs/FileOwnerAttributeViewImpl.java	2017-04-04 20:01:42.731618568 +0100
 @@ -71,7 +71,7 @@
  
      @Override
@@ -6297,8 +7271,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/nio/fs/Util.java	2016-09-21 06:38:08.212138862 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/nio/fs/Util.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/nio/fs/Util.java	2017-04-04 20:01:42.731618568 +0100
 @@ -63,7 +63,7 @@
       * Returns a Set containing the given elements.
       */
@@ -6318,8 +7292,8 @@
              set.add(e);
          }
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/reflect/annotation/AnnotationInvocationHandler.java openjdk-boot/jdk/src/share/classes/sun/reflect/annotation/AnnotationInvocationHandler.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/reflect/annotation/AnnotationInvocationHandler.java	2016-09-21 16:22:28.169339303 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/reflect/annotation/AnnotationInvocationHandler.java	2016-09-21 17:33:49.198474533 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/reflect/annotation/AnnotationInvocationHandler.java	2017-04-04 19:17:25.426924828 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/reflect/annotation/AnnotationInvocationHandler.java	2017-04-04 20:01:42.731618568 +0100
 @@ -442,7 +442,7 @@
  
          Map<String, Class<?>> memberTypes = annotationType.memberTypes();
@@ -6330,8 +7304,8 @@
          // If there are annotation members without values, that
          // situation is handled by the invoke method.
 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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/reflect/generics/parser/SignatureParser.java	2016-09-21 06:38:08.212138862 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/reflect/generics/parser/SignatureParser.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/reflect/generics/parser/SignatureParser.java	2017-04-04 20:01:42.739618438 +0100
 @@ -229,7 +229,7 @@
       *     "<" FormalTypeParameter+ ">"
       */
@@ -6396,9 +7370,9 @@
              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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/rmi/registry/RegistryImpl.java	2016-09-21 06:38:08.212138862 +0100
-@@ -78,9 +78,9 @@
+--- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/registry/RegistryImpl.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/rmi/registry/RegistryImpl.java	2017-04-04 20:01:42.739618438 +0100
+@@ -82,9 +82,9 @@
      /* indicate compatibility with JDK 1.1.x version of class */
      private static final long serialVersionUID = 4666870661827494597L;
      private Hashtable<String, Remote> bindings
@@ -6411,8 +7385,8 @@
      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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/rmi/rmic/BatchEnvironment.java	2016-09-21 06:38:08.212138862 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/rmic/BatchEnvironment.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/rmi/rmic/BatchEnvironment.java	2017-04-04 20:01:42.739618438 +0100
 @@ -160,7 +160,7 @@
      }
  
@@ -6423,8 +7397,8 @@
      /**
       * 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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/rmi/rmic/Main.java	2016-09-21 06:38:08.212138862 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/rmic/Main.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/rmi/rmic/Main.java	2017-04-04 20:01:42.739618438 +0100
 @@ -184,7 +184,7 @@
          destDir = null;
          flags = F_WARNINGS;
@@ -6444,8 +7418,8 @@
          // 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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/rmi/rmic/RMIGenerator.java	2016-09-21 06:38:08.212138862 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/rmic/RMIGenerator.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/rmi/rmic/RMIGenerator.java	2017-04-04 20:01:42.739618438 +0100
 @@ -61,7 +61,7 @@
   */
  public class RMIGenerator implements RMIConstants, Generator {
@@ -6465,8 +7439,8 @@
          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	2016-09-21 06:14:42.763430164 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/rmi/server/ActivationGroupImpl.java	2016-09-21 06:38:08.212138862 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/server/ActivationGroupImpl.java	2017-04-04 19:17:25.730919958 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/rmi/server/ActivationGroupImpl.java	2017-04-04 20:01:42.739618438 +0100
 @@ -66,10 +66,10 @@
  
      /** maps persistent IDs to activated remote objects */
@@ -6481,8 +7455,8 @@
      /**
       * 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	2016-09-21 06:14:42.827429104 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/rmi/server/Activation.java	2016-09-21 06:38:08.212138862 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/server/Activation.java	2017-04-04 19:17:25.762919445 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/rmi/server/Activation.java	2017-04-04 20:01:42.739618438 +0100
 @@ -149,10 +149,10 @@
  
      /** maps activation id to its respective group id */
@@ -6539,8 +7513,8 @@
              /*
               * 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	2016-09-21 06:14:42.763430164 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/rmi/server/LoaderHandler.java	2016-09-21 06:38:08.212138862 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/server/LoaderHandler.java	2017-04-04 19:17:25.730919958 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/rmi/server/LoaderHandler.java	2017-04-04 20:01:42.739618438 +0100
 @@ -113,11 +113,11 @@
       * garbage collected.
       */
@@ -6565,8 +7539,8 @@
      /**
       * 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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/rmi/server/MarshalInputStream.java	2016-09-21 06:38:08.216138796 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/server/MarshalInputStream.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/rmi/server/MarshalInputStream.java	2017-04-04 20:01:42.739618438 +0100
 @@ -76,14 +76,14 @@
  
      /** table to hold sun classes to which access is explicitly permitted */
@@ -6585,9 +7559,9 @@
      /**
       * 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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/rmi/server/UnicastServerRef.java	2016-09-21 06:38:08.216138796 +0100
-@@ -538,7 +538,7 @@
+--- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/server/UnicastServerRef.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/rmi/server/UnicastServerRef.java	2017-04-04 20:01:42.739618438 +0100
+@@ -577,7 +577,7 @@
          HashToMethod_Maps() {}
  
          protected Map<Long,Method> computeValue(Class<?> remoteClass) {
@@ -6597,8 +7571,8 @@
                   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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/rmi/server/Util.java	2016-09-21 06:38:08.216138796 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/server/Util.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/rmi/server/Util.java	2017-04-04 20:01:42.739618438 +0100
 @@ -207,7 +207,7 @@
       * @throws  NullPointerException if remoteClass is null
       */
@@ -6609,8 +7583,8 @@
          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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/rmi/server/WeakClassHashMap.java	2016-09-21 06:38:08.216138796 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/server/WeakClassHashMap.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/rmi/server/WeakClassHashMap.java	2017-04-04 20:01:42.739618438 +0100
 @@ -46,7 +46,7 @@
   **/
  public abstract class WeakClassHashMap<V> {
@@ -6621,8 +7595,8 @@
      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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/rmi/transport/ConnectionInputStream.java	2016-09-21 06:38:08.216138796 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/ConnectionInputStream.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/rmi/transport/ConnectionInputStream.java	2017-04-04 20:01:42.739618438 +0100
 @@ -43,7 +43,7 @@
      private boolean dgcAckNeeded = false;
  
@@ -6633,8 +7607,8 @@
      /** 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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/rmi/transport/DGCAckHandler.java	2016-09-21 06:38:08.216138796 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/DGCAckHandler.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/rmi/transport/DGCAckHandler.java	2017-04-04 20:01:42.739618438 +0100
 @@ -78,7 +78,7 @@
          Collections.synchronizedMap(new HashMap<UID,DGCAckHandler>());
  
@@ -6645,8 +7619,8 @@
  
      /**
 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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/rmi/transport/DGCClient.java	2016-09-21 06:38:08.216138796 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/DGCClient.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/rmi/transport/DGCClient.java	2017-04-04 20:01:42.739618438 +0100
 @@ -193,9 +193,9 @@
          private DGC dgc;
  
@@ -6718,9 +7692,9 @@
              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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/rmi/transport/DGCImpl.java	2016-09-21 06:38:08.216138796 +0100
-@@ -88,7 +88,7 @@
+--- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/DGCImpl.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/rmi/transport/DGCImpl.java	2017-04-04 20:01:42.739618438 +0100
+@@ -93,7 +93,7 @@
      /** remote implementation of DGC interface for this VM */
      private static DGCImpl dgc;
      /** table that maps VMID to LeaseInfo */
@@ -6729,7 +7703,7 @@
      /** checks for lease expiration */
      private Future<?> checker = null;
  
-@@ -240,7 +240,7 @@
+@@ -289,7 +289,7 @@
          long time = System.currentTimeMillis();
  
          /* List of vmids that need to be removed from the leaseTable */
@@ -6738,7 +7712,7 @@
  
          /* Build a list of leaseInfo objects that need to have
           * targets removed from their notifySet.  Remove expired
-@@ -328,7 +328,7 @@
+@@ -429,7 +429,7 @@
      private static class LeaseInfo {
          VMID vmid;
          long expiration;
@@ -6748,8 +7722,8 @@
          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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/rmi/transport/ObjectTable.java	2016-09-21 06:38:08.216138796 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/ObjectTable.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/rmi/transport/ObjectTable.java	2017-04-04 20:01:42.739618438 +0100
 @@ -62,9 +62,9 @@
  
      /** tables mapping to Target, keyed from ObjectEndpoint and impl object */
@@ -6772,8 +7746,8 @@
      /** 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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/rmi/transport/proxy/CGIHandler.java	2016-09-21 06:38:08.216138796 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/proxy/CGIHandler.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/rmi/transport/proxy/CGIHandler.java	2017-04-04 20:01:42.739618438 +0100
 @@ -116,7 +116,7 @@
      /* construct table mapping command strings to handlers */
      private static Hashtable<String, CGICommandHandler> commandLookup;
@@ -6784,8 +7758,8 @@
              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	2016-09-21 06:14:42.827429104 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/rmi/transport/proxy/RMIMasterSocketFactory.java	2016-09-21 06:38:08.220138728 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/proxy/RMIMasterSocketFactory.java	2017-04-04 19:17:25.762919445 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/rmi/transport/proxy/RMIMasterSocketFactory.java	2017-04-04 20:01:42.739618438 +0100
 @@ -75,13 +75,13 @@
  
      /** table of hosts successfully connected to and the factory used */
@@ -6812,8 +7786,8 @@
  
          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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/rmi/transport/Target.java	2016-09-21 06:38:08.220138728 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/Target.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/rmi/transport/Target.java	2017-04-04 20:01:42.739618438 +0100
 @@ -53,10 +53,10 @@
      /** stub for remote object */
      private final Remote stub;
@@ -6828,8 +7802,8 @@
      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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/rmi/transport/tcp/ConnectionMultiplexer.java	2016-09-21 06:38:08.220138728 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/tcp/ConnectionMultiplexer.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/rmi/transport/tcp/ConnectionMultiplexer.java	2017-04-04 20:01:42.739618438 +0100
 @@ -85,7 +85,7 @@
      private DataOutputStream dataOut;
  
@@ -6840,8 +7814,8 @@
      /** 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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/rmi/transport/tcp/TCPChannel.java	2016-09-21 06:38:08.220138728 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/tcp/TCPChannel.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/rmi/transport/tcp/TCPChannel.java	2017-04-04 20:01:42.739618438 +0100
 @@ -64,7 +64,7 @@
      private final TCPTransport tr;
      /** list of cached connections */
@@ -6861,8 +7835,8 @@
      /** 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	2016-09-21 06:14:42.763430164 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/rmi/transport/tcp/TCPEndpoint.java	2016-09-21 06:38:08.220138728 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/tcp/TCPEndpoint.java	2017-04-04 19:17:25.730919958 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/rmi/transport/tcp/TCPEndpoint.java	2017-04-04 20:01:42.743618372 +0100
 @@ -148,7 +148,7 @@
      // TBD: should this be a weak hash table?
      private static final
@@ -6873,8 +7847,8 @@
      /**
       * 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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/rmi/transport/tcp/TCPTransport.java	2016-09-21 06:38:08.220138728 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/tcp/TCPTransport.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/rmi/transport/tcp/TCPTransport.java	2017-04-04 20:01:42.743618372 +0100
 @@ -123,7 +123,7 @@
  
      /** client host for the current thread's connection */
@@ -6894,8 +7868,8 @@
      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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/rmi/transport/Transport.java	2016-09-21 06:38:08.220138728 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/Transport.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/rmi/transport/Transport.java	2017-04-04 20:01:42.743618372 +0100
 @@ -66,7 +66,7 @@
          Log.getLog("sun.rmi.transport.misc", "transport", Transport.logLevel);
  
@@ -6906,8 +7880,8 @@
      /** 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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/acl/AclEntryImpl.java	2016-09-21 06:38:08.220138728 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/acl/AclEntryImpl.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/acl/AclEntryImpl.java	2017-04-04 20:01:42.743618372 +0100
 @@ -36,7 +36,7 @@
   */
  public class AclEntryImpl implements AclEntry {
@@ -6918,8 +7892,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/acl/AclImpl.java	2016-09-21 06:38:08.220138728 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/acl/AclImpl.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/acl/AclImpl.java	2017-04-04 20:01:42.743618372 +0100
 @@ -41,15 +41,15 @@
      // or principal.
      //
@@ -6960,8 +7934,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/acl/GroupImpl.java	2016-09-21 06:38:08.220138728 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/acl/GroupImpl.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/acl/GroupImpl.java	2017-04-04 20:01:42.743618372 +0100
 @@ -34,7 +34,7 @@
   * @author      Satish Dharmaraj
   */
@@ -6981,8 +7955,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/jca/ProviderList.java	2016-09-21 06:38:08.220138728 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/jca/ProviderList.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/jca/ProviderList.java	2017-04-04 20:01:42.743618372 +0100
 @@ -97,7 +97,7 @@
          if (providerList.getProvider(p.getName()) != null) {
              return providerList;
@@ -7020,8 +7994,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/jca/Providers.java	2016-09-21 06:38:08.220138728 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/jca/Providers.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/jca/Providers.java	2017-04-04 20:01:42.743618372 +0100
 @@ -37,7 +37,7 @@
  public class Providers {
  
@@ -7032,8 +8006,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/jgss/krb5/Krb5Util.java	2016-09-21 06:38:08.220138728 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/jgss/krb5/Krb5Util.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/jgss/krb5/Krb5Util.java	2017-04-04 20:01:42.743618372 +0100
 @@ -251,7 +251,7 @@
          }
  
@@ -7044,8 +8018,8 @@
                  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	2016-09-21 06:14:42.651432019 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/Config.java	2016-09-21 06:38:08.224138662 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/Config.java	2017-04-04 19:17:25.426924828 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/Config.java	2017-04-04 20:01:42.743618372 +0100
 @@ -610,7 +610,7 @@
                  }
                  })));
@@ -7123,8 +8097,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/Authenticator.java	2016-09-21 06:38:08.224138662 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/Authenticator.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/Authenticator.java	2017-04-04 20:01:42.743618372 +0100
 @@ -173,7 +173,7 @@
       * @exception IOException if an I/O error occurs while reading encoded data.
       */
@@ -7135,8 +8109,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/AuthorizationData.java	2016-09-21 06:38:08.224138662 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/AuthorizationData.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/AuthorizationData.java	2017-04-04 20:01:42.743618372 +0100
 @@ -99,7 +99,7 @@
       * @exception IOException if an I/O error occurs while reading encoded data.
       */
@@ -7147,8 +8121,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	2016-09-21 06:14:42.827429104 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/ccache/FileCredentialsCache.java	2016-09-21 06:38:08.224138662 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/ccache/FileCredentialsCache.java	2017-04-04 19:17:25.762919445 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/ccache/FileCredentialsCache.java	2017-04-04 20:01:42.743618372 +0100
 @@ -569,7 +569,7 @@
  
      private static String exec(String c) {
@@ -7159,8 +8133,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/crypto/EType.java	2016-09-21 06:38:08.224138662 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/crypto/EType.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/crypto/EType.java	2017-04-04 20:01:42.743618372 +0100
 @@ -257,7 +257,7 @@
                  + configName);
          }
@@ -7171,8 +8145,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/EncAPRepPart.java	2016-09-21 06:38:08.224138662 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/EncAPRepPart.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/EncAPRepPart.java	2017-04-04 20:01:42.743618372 +0100
 @@ -133,7 +133,7 @@
       * @exception IOException if an I/O error occurs while reading encoded data.
       */
@@ -7183,8 +8157,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/HostAddresses.java	2016-09-21 06:38:08.224138662 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/HostAddresses.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/HostAddresses.java	2017-04-04 20:01:42.743618372 +0100
 @@ -179,7 +179,7 @@
      */
      public HostAddresses(DerValue encoding)
@@ -7204,8 +8178,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/KDCReqBody.java	2016-09-21 06:38:08.224138662 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/KDCReqBody.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/KDCReqBody.java	2017-04-04 20:01:42.743618372 +0100
 @@ -165,7 +165,7 @@
              throw new Asn1Exception(Krb5.ASN1_BAD_ID);
          }
@@ -7234,8 +8208,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/KDCReq.java	2016-09-21 06:38:08.224138662 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/KDCReq.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/KDCReq.java	2017-04-04 20:01:42.743618372 +0100
 @@ -150,7 +150,7 @@
              if (subsubDer.getTag() != DerValue.tag_SequenceOf) {
                  throw new Asn1Exception(Krb5.ASN1_BAD_ID);
@@ -7246,8 +8220,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/KrbCredInfo.java	2016-09-21 06:40:53.317395167 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/KrbCredInfo.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/KrbCredInfo.java	2017-04-04 20:01:42.743618372 +0100
 @@ -150,7 +150,7 @@
       * @exception IOException if an I/O error occurs while reading encoded data.
       */
@@ -7258,8 +8232,8 @@
          if (pname != null) {
              v.addElement(new DerValue(DerValue.createTag(DerValue.TAG_CONTEXT, true, (byte)0x01), pname.getRealm().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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/KRBCred.java	2016-09-21 06:38:08.228138596 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/KRBCred.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/KRBCred.java	2017-04-04 20:01:42.743618372 +0100
 @@ -134,7 +134,7 @@
              if (subsubDer.getTag() != DerValue.tag_SequenceOf) {
                  throw new Asn1Exception(Krb5.ASN1_BAD_ID);
@@ -7270,8 +8244,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/KRBError.java	2016-09-21 06:38:08.228138596 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/KRBError.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/KRBError.java	2017-04-04 20:01:42.743618372 +0100
 @@ -249,7 +249,7 @@
      private void parsePAData(byte[] data)
              throws IOException, Asn1Exception {
@@ -7282,8 +8256,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	2016-09-21 06:14:42.827429104 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/ktab/KeyTab.java	2016-09-21 06:38:08.228138596 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/ktab/KeyTab.java	2017-04-04 19:17:25.762919445 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/ktab/KeyTab.java	2017-04-04 20:01:42.743618372 +0100
 @@ -67,7 +67,7 @@
  
      // Attention: Currently there is no way to remove a keytab from this map,
@@ -7321,8 +8295,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/LastReq.java	2016-09-21 06:38:08.228138596 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/LastReq.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/LastReq.java	2017-04-04 20:01:42.743618372 +0100
 @@ -77,7 +77,7 @@
       */
  
@@ -7333,8 +8307,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/KdcComm.java	2016-09-21 06:38:08.228138596 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/KdcComm.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/KdcComm.java	2017-04-04 20:01:42.743618372 +0100
 @@ -466,7 +466,7 @@
       */
      static class KdcAccessibility {
@@ -7357,8 +8331,8 @@
                      String t = st.nextToken();
                      if (bads.contains(t)) badkdcs.add(t);
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/KrbServiceLocator.java openjdk-boot/jdk/src/share/classes/sun/security/krb5/KrbServiceLocator.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/KrbServiceLocator.java	2016-09-21 16:21:08.370678411 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/KrbServiceLocator.java	2016-09-22 18:02:24.629123243 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/KrbServiceLocator.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/KrbServiceLocator.java	2017-04-04 20:01:42.743618372 +0100
 @@ -85,7 +85,7 @@
              // the initial context constructor. This avoids having the initial
              // context constructor call itself (when processing the URL
@@ -7378,8 +8352,8 @@
                  return null; // cannot create a DNS context
              }
 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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/PrincipalName.java	2016-09-21 06:40:36.285678128 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/PrincipalName.java	2017-04-04 19:17:25.734919894 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/PrincipalName.java	2017-04-04 20:01:42.743618372 +0100
 @@ -265,7 +265,7 @@
              if (subDer.getTag() != DerValue.tag_SequenceOf) {
                  throw new Asn1Exception(Krb5.ASN1_BAD_ID);
@@ -7399,8 +8373,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/Realm.java	2016-09-21 06:38:08.228138596 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/Realm.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/Realm.java	2017-04-04 20:01:42.743618372 +0100
 @@ -375,7 +375,7 @@
              return null;
          }
@@ -7420,8 +8394,8 @@
          // Un-common ones for client side
          for (int i=0; i<=cPos; i++) {
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/pkcs12/PKCS12KeyStore.java openjdk-boot/jdk/src/share/classes/sun/security/pkcs12/PKCS12KeyStore.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/pkcs12/PKCS12KeyStore.java	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/pkcs12/PKCS12KeyStore.java	2016-09-21 06:38:08.228138596 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/pkcs12/PKCS12KeyStore.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/pkcs12/PKCS12KeyStore.java	2017-04-04 20:01:42.743618372 +0100
 @@ -894,7 +894,7 @@
          // Check for loops in the chain. If there are repeated certs,
          // the Set of certs in the chain will contain fewer certs than
@@ -7432,8 +8406,8 @@
      }
  
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/provider/certpath/CertStoreHelper.java openjdk-boot/jdk/src/share/classes/sun/security/provider/certpath/CertStoreHelper.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/provider/certpath/CertStoreHelper.java	2016-09-23 17:38:42.806328417 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/provider/certpath/CertStoreHelper.java	2016-09-23 17:39:19.497739829 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/provider/certpath/CertStoreHelper.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/provider/certpath/CertStoreHelper.java	2017-04-04 20:01:42.747618306 +0100
 @@ -50,7 +50,7 @@
  public abstract class CertStoreHelper {
  
@@ -7444,8 +8418,8 @@
          classMap.put(
              "LDAP",
 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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/provider/certpath/DistributionPointFetcher.java	2016-09-21 06:38:08.228138596 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/provider/certpath/DistributionPointFetcher.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/provider/certpath/DistributionPointFetcher.java	2017-04-04 20:01:42.747618306 +0100
 @@ -586,7 +586,7 @@
              // Except the performance improvement, another benefit is to break
              // the dead loop while looking for the issuer back and forth
@@ -7456,8 +8430,8 @@
              if (prevKey != null) {
                  // Add the previous certificate as a trust anchor.
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/provider/certpath/ssl/SSLServerCertStore.java openjdk-boot/jdk/src/share/classes/sun/security/provider/certpath/ssl/SSLServerCertStore.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/provider/certpath/ssl/SSLServerCertStore.java	2016-09-23 17:38:42.818328224 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/provider/certpath/ssl/SSLServerCertStore.java	2016-09-23 17:40:06.828980445 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/provider/certpath/ssl/SSLServerCertStore.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/provider/certpath/ssl/SSLServerCertStore.java	2017-04-04 20:01:42.747618306 +0100
 @@ -138,7 +138,7 @@
          if (selector == null) {
              return certs;
@@ -7468,8 +8442,8 @@
              if (selector.match(cert)) {
                  matchedCerts.add(cert);
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/provider/certpath/URICertStore.java openjdk-boot/jdk/src/share/classes/sun/security/provider/certpath/URICertStore.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/provider/certpath/URICertStore.java	2016-09-23 17:38:42.826328096 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/provider/certpath/URICertStore.java	2016-09-23 17:40:18.916786486 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/provider/certpath/URICertStore.java	2017-04-04 19:17:25.762919445 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/provider/certpath/URICertStore.java	2017-04-04 20:01:42.747618306 +0100
 @@ -339,7 +339,7 @@
          if (selector == null) {
              return certs;
@@ -7480,8 +8454,8 @@
              if (selector.match(cert)) {
                  matchedCerts.add(cert);
 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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/provider/JavaKeyStore.java	2016-09-21 06:38:08.228138596 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/provider/JavaKeyStore.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/provider/JavaKeyStore.java	2017-04-04 20:01:42.747618306 +0100
 @@ -683,7 +683,7 @@
                      // Read the certificate chain
                      int numOfCerts = dis.readInt();
@@ -7492,8 +8466,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/provider/PolicyFile.java	2016-09-21 06:38:08.232138530 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/provider/PolicyFile.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/provider/PolicyFile.java	2017-04-04 20:01:42.747618306 +0100
 @@ -292,7 +292,7 @@
      private static final int DEFAULT_CACHE_SIZE = 1;
  
@@ -7549,8 +8523,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/provider/Sun.java	2016-09-21 06:38:08.232138530 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/provider/Sun.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/provider/Sun.java	2017-04-04 20:01:42.747618306 +0100
 @@ -55,7 +55,7 @@
              SunEntries.putEntries(this);
          } else {
@@ -7561,8 +8535,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/provider/VerificationProvider.java	2016-09-21 06:38:08.232138530 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/provider/VerificationProvider.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/provider/VerificationProvider.java	2017-04-04 20:01:42.747618306 +0100
 @@ -76,7 +76,7 @@
              SunRsaSignEntries.putEntries(this);
          } else {
@@ -7573,8 +8547,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/provider/X509Factory.java	2016-09-21 06:38:08.232138530 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/provider/X509Factory.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/provider/X509Factory.java	2017-04-04 20:01:42.747618306 +0100
 @@ -431,7 +431,7 @@
          int peekByte;
          byte[] data;
@@ -7630,8 +8604,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/rsa/RSACore.java	2016-09-21 06:38:08.232138530 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/rsa/RSACore.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/rsa/RSACore.java	2017-04-04 20:01:42.747618306 +0100
 @@ -57,7 +57,7 @@
      // use a weak hashmap so that cached values are automatically cleared
      // when the modulus is GC'ed
@@ -7642,8 +8616,8 @@
      private RSACore() {
          // empty
 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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/rsa/SunRsaSign.java	2016-09-21 06:38:08.232138530 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/rsa/SunRsaSign.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/rsa/SunRsaSign.java	2017-04-04 20:01:42.747618306 +0100
 @@ -52,7 +52,7 @@
              SunRsaSignEntries.putEntries(this);
          } else {
@@ -7654,9 +8628,9 @@
              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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/CipherSuite.java	2016-09-21 06:38:08.232138530 +0100
-@@ -397,7 +397,7 @@
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/CipherSuite.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/CipherSuite.java	2017-04-04 20:01:42.747618306 +0100
+@@ -399,7 +399,7 @@
  
          // Map BulkCipher -> Boolean(available)
          private final static Map<BulkCipher,Boolean> availableCache =
@@ -7666,9 +8640,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/ClientHandshaker.java	2016-09-21 06:38:08.232138530 +0100
-@@ -752,7 +752,7 @@
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/ClientHandshaker.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/ClientHandshaker.java	2017-04-04 20:01:42.747618306 +0100
+@@ -755,7 +755,7 @@
          if (certRequest != null) {
              X509ExtendedKeyManager km = sslContext.getX509KeyManager();
  
@@ -7677,7 +8651,7 @@
  
              for (int i = 0; i < certRequest.types.length; i++) {
                  String typeName;
-@@ -1293,7 +1293,7 @@
+@@ -1287,7 +1287,7 @@
                          "Can't reuse existing SSL client session");
                  }
  
@@ -7686,7 +8660,7 @@
                  cipherList.add(sessionSuite);
                  if (!secureRenegotiation &&
                          cipherSuites.contains(CipherSuite.C_SCSV)) {
-@@ -1311,7 +1311,7 @@
+@@ -1305,7 +1305,7 @@
          // exclude SCSV for secure renegotiation
          if (secureRenegotiation && cipherSuites.contains(CipherSuite.C_SCSV)) {
              Collection<CipherSuite> cipherList =
@@ -7695,7 +8669,7 @@
              for (CipherSuite suite : cipherSuites.collection()) {
                  if (suite != CipherSuite.C_SCSV) {
                      cipherList.add(suite);
-@@ -1570,7 +1570,7 @@
+@@ -1575,7 +1575,7 @@
                  if ((subAltDnsName != null) && !subAltDnsName.isEmpty()) {
                      if (subAltDnsNames == null) {
                          subAltDnsNames =
@@ -7705,8 +8679,8 @@
                      subAltDnsNames.add(subAltDnsName);
                  }
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/DHCrypt.java openjdk-boot/jdk/src/share/classes/sun/security/ssl/DHCrypt.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/DHCrypt.java	2016-09-23 17:38:42.838327903 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/DHCrypt.java	2016-09-23 17:39:39.929412038 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/DHCrypt.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/DHCrypt.java	2017-04-04 20:01:42.747618306 +0100
 @@ -367,7 +367,7 @@
                  }
              }
@@ -7716,10 +8690,22 @@
              if (property != null && !property.isEmpty()) {
                  Matcher syntaxMatcher = syntaxPattern.matcher(property);
                  if (syntaxMatcher.matches()) {
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/ExtensionType.java openjdk-boot/jdk/src/share/classes/sun/security/ssl/ExtensionType.java
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/ExtensionType.java	2017-04-06 03:52:06.891373321 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/ExtensionType.java	2017-04-06 03:53:23.666143186 +0100
+@@ -42,7 +42,7 @@
+         return name;
+     }
+ 
+-    static List<ExtensionType> knownExtensions = new ArrayList<>(9);
++    static List<ExtensionType> knownExtensions = new ArrayList<ExtensionType>(9);
+ 
+     static ExtensionType get(int id) {
+         for (ExtensionType ext : knownExtensions) {
 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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/HandshakeMessage.java	2016-09-21 06:40:19.505956918 +0100
-@@ -260,7 +260,7 @@
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/HandshakeMessage.java	2017-04-04 19:17:25.430924764 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/HandshakeMessage.java	2017-04-04 20:01:42.747618306 +0100
+@@ -255,7 +255,7 @@
      // add server_name extension
      void addServerNameIndicationExtension(String hostname) {
          // We would have checked that the hostname ia a FQDN.
@@ -7728,7 +8714,7 @@
          hostnames.add(hostname);
  
          try {
-@@ -436,7 +436,7 @@
+@@ -431,7 +431,7 @@
  
      CertificateMsg(HandshakeInStream input) throws IOException {
          int chainLen = input.getInt24();
@@ -7737,7 +8723,7 @@
  
          CertificateFactory cf = null;
          while (chainLen > 0) {
-@@ -1350,7 +1350,7 @@
+@@ -1341,7 +1341,7 @@
  
          // read the certificate_authorities
          int len = input.getInt16();
@@ -7746,7 +8732,7 @@
          while (len >= 3) {
              DistinguishedName dn = new DistinguishedName(input);
              v.add(dn);
-@@ -1742,7 +1742,7 @@
+@@ -1732,7 +1732,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 =
@@ -7756,8 +8742,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	2016-09-21 06:14:42.767430098 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/Handshaker.java	2016-09-21 06:38:08.236138462 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/Handshaker.java	2017-04-04 19:17:25.734919894 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/Handshaker.java	2017-04-04 20:03:48.849559696 +0100
 @@ -592,7 +592,7 @@
                  activeProtocols = getActiveProtocols();
              }
@@ -7766,40 +8752,19 @@
 +            ArrayList<CipherSuite> suites = new ArrayList<CipherSuite>();
              if (!(activeProtocols.collection().isEmpty()) &&
                      activeProtocols.min.v != ProtocolVersion.NONE.v) {
-                 for (CipherSuite suite : enabledCipherSuites.collection()) {
-@@ -638,7 +638,7 @@
-     ProtocolList getActiveProtocols() {
-         if (activeProtocols == null) {
+                 boolean checkedCurves = false;
+@@ -668,7 +668,7 @@
              boolean enabledSSL20Hello = false;
+             boolean checkedCurves = false;
+             boolean hasCurves = false;
 -            ArrayList<ProtocolVersion> protocols = new ArrayList<>(4);
 +            ArrayList<ProtocolVersion> protocols = new ArrayList<ProtocolVersion>(4);
              EnumSet<CryptoPrimitive> cryptoPrimitives =
                  EnumSet.<CryptoPrimitive>of(CryptoPrimitive.KEY_AGREEMENT);
              for (ProtocolVersion protocol : enabledProtocols.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	2016-09-21 06:14:40.883461298 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/HelloExtensions.java	2016-09-21 06:38:08.236138462 +0100
-@@ -169,7 +169,7 @@
-         return name;
-     }
- 
--    static List<ExtensionType> knownExtensions = new ArrayList<>(9);
-+    static List<ExtensionType> knownExtensions = new ArrayList<ExtensionType>(9);
- 
-     static ExtensionType get(int id) {
-         for (ExtensionType ext : knownExtensions) {
-@@ -655,7 +655,7 @@
-     }
- 
-     public String toString() {
--        List<String> list = new ArrayList<>();
-+        List<String> list = new ArrayList<String>();
-         for (byte format : formats) {
-             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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/ProtocolList.java	2016-09-21 06:38:08.236138462 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/ProtocolList.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/ProtocolList.java	2017-04-04 20:01:42.747618306 +0100
 @@ -79,7 +79,7 @@
              throw new IllegalArgumentException("Protocols may not be null");
          }
@@ -7810,8 +8775,8 @@
              ProtocolVersion version = ProtocolVersion.valueOf(names[i]);
              if (versions.contains(version) == false) {
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/ProtocolVersion.java openjdk-boot/jdk/src/share/classes/sun/security/ssl/ProtocolVersion.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/ProtocolVersion.java	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/ProtocolVersion.java	2016-09-21 06:38:08.236138462 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/ProtocolVersion.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/ProtocolVersion.java	2017-04-04 20:01:42.747618306 +0100
 @@ -106,7 +106,7 @@
  
      // Initialize the available protocols.
@@ -7822,8 +8787,8 @@
          ProtocolVersion[] pvs = new ProtocolVersion[] {
                  SSL20Hello, SSL30, TLS10, TLS11, TLS12};
 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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/SignatureAndHashAlgorithm.java	2016-09-21 06:39:46.254509425 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/SignatureAndHashAlgorithm.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/SignatureAndHashAlgorithm.java	2017-04-04 20:01:42.747618306 +0100
 @@ -156,7 +156,7 @@
      static Collection<SignatureAndHashAlgorithm>
              getSupportedAlgorithms(AlgorithmConstraints constraints) {
@@ -7862,8 +8827,8 @@
              for (SignatureAndHashAlgorithm sigAlg : algorithms) {
                  if (sigAlg.hash.value > 0) {
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/SSLAlgorithmDecomposer.java openjdk-boot/jdk/src/share/classes/sun/security/ssl/SSLAlgorithmDecomposer.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/SSLAlgorithmDecomposer.java	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/SSLAlgorithmDecomposer.java	2016-09-21 06:38:08.236138462 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/SSLAlgorithmDecomposer.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/SSLAlgorithmDecomposer.java	2017-04-04 20:01:42.747618306 +0100
 @@ -48,7 +48,7 @@
      }
  
@@ -7901,9 +8866,9 @@
          if (keyExchange != null) {
              components.addAll(decomposes(keyExchange));
 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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/SSLContextImpl.java	2016-09-21 06:38:08.236138462 +0100
-@@ -327,7 +327,7 @@
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/SSLContextImpl.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/SSLContextImpl.java	2017-04-04 20:01:42.751618242 +0100
+@@ -328,7 +328,7 @@
          Collection<CipherSuite> allowedCipherSuites =
                                      CipherSuite.allowedCipherSuites();
  
@@ -7912,7 +8877,7 @@
          if (!(protocols.collection().isEmpty()) &&
                  protocols.min.v != ProtocolVersion.NONE.v) {
              for (CipherSuite suite : allowedCipherSuites) {
-@@ -385,7 +385,7 @@
+@@ -386,7 +386,7 @@
  
          List<String> availableProtocols = Collections.<String>emptyList();
          if (protocolCandidates != null && protocolCandidates.length != 0) {
@@ -7921,7 +8886,7 @@
              for (ProtocolVersion p : protocolCandidates) {
                  if (ProtocolVersion.availableProtocols.contains(p)) {
                      availableProtocols.add(p.name);
-@@ -573,7 +573,7 @@
+@@ -769,7 +769,7 @@
                  return defaultKeyManagers;
              }
  
@@ -7930,7 +8895,7 @@
              AccessController.doPrivileged(
                          new PrivilegedExceptionAction<Object>() {
                  public Object run() throws Exception {
-@@ -994,7 +994,7 @@
+@@ -1015,7 +1015,7 @@
              // Does the certificate chain end with a trusted certificate?
              int checkedLength = chain.length - 1;
  
@@ -7940,8 +8905,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/SSLSessionImpl.java	2016-09-21 06:38:08.236138462 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/SSLSessionImpl.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/SSLSessionImpl.java	2017-04-04 20:01:42.751618242 +0100
 @@ -642,7 +642,7 @@
       * key and the calling security context. This is important since
       * sessions can be shared across different protection domains.
@@ -7961,8 +8926,8 @@
          Object securityCtx = SecureKey.getCurrentSecurityContext();
  
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/SSLSocketImpl.java openjdk-boot/jdk/src/share/classes/sun/security/ssl/SSLSocketImpl.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/SSLSocketImpl.java	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/SSLSocketImpl.java	2016-09-21 06:38:08.236138462 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/SSLSocketImpl.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/SSLSocketImpl.java	2017-04-04 20:01:42.751618242 +0100
 @@ -2561,7 +2561,7 @@
              entrySet, HandshakeCompletedEvent e) {
  
@@ -7973,8 +8938,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/SunX509KeyManagerImpl.java	2016-09-21 06:38:08.236138462 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/SunX509KeyManagerImpl.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/SunX509KeyManagerImpl.java	2017-04-04 20:01:42.751618242 +0100
 @@ -337,7 +337,7 @@
  
          X500Principal[] x500Issuers = (X500Principal[])issuers;
@@ -7993,9 +8958,67 @@
          for (int i = 0; i < principals.length; i++) {
              Principal p = principals[i];
              if (p instanceof X500Principal) {
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/SupportedEllipticCurvesExtension.java openjdk-boot/jdk/src/share/classes/sun/security/ssl/SupportedEllipticCurvesExtension.java
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/SupportedEllipticCurvesExtension.java	2017-04-06 03:52:06.899373193 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/SupportedEllipticCurvesExtension.java	2017-04-06 03:53:13.530305597 +0100
+@@ -47,12 +47,12 @@
+     private static final int ARBITRARY_CHAR2 = 0xff02;
+ 
+     // speed up the searching
+-    private static final Map<String, Integer> oidToIdMap = new HashMap<>();
+-    private static final Map<Integer, String> idToOidMap = new HashMap<>();
++    private static final Map<String, Integer> oidToIdMap = new HashMap<String, Integer>();
++    private static final Map<Integer, String> idToOidMap = new HashMap<Integer, String>();
+ 
+     // speed up the parameters construction
+     private static final Map<Integer,
+-                AlgorithmParameters> idToParams = new HashMap<>();
++	AlgorithmParameters> idToParams = new HashMap<Integer, AlgorithmParameters>();
+ 
+     // the supported elliptic curves
+     private static final int[] supportedCurveIds;
+@@ -123,7 +123,7 @@
+         ArrayList<Integer> idList;
+         if (property != null && property.length() != 0) {   // customized curves
+             String[] curves = property.split(",");
+-            idList = new ArrayList<>(curves.length);
++            idList = new ArrayList<Integer>(curves.length);
+             for (String curve : curves) {
+                 curve = curve.trim();
+                 if (!curve.isEmpty()) {
+@@ -142,7 +142,7 @@
+ 		23, 24, 25
+ 	    };
+ 
+-            idList = new ArrayList<>(ids.length);
++            idList = new ArrayList<Integer>(ids.length);
+             for (int curveId : ids) {
+                 if (isAvailableCurve(curveId)) {
+                     idList.add(curveId);
+@@ -216,7 +216,7 @@
+     static SupportedEllipticCurvesExtension createExtension(
+                 AlgorithmConstraints constraints) {
+ 
+-        ArrayList<Integer> idList = new ArrayList<>(supportedCurveIds.length);
++        ArrayList<Integer> idList = new ArrayList<Integer>(supportedCurveIds.length);
+         for (int curveId : supportedCurveIds) {
+             if (constraints.permits(
+                     EnumSet.of(CryptoPrimitive.KEY_AGREEMENT),
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/SupportedEllipticPointFormatsExtension.java openjdk-boot/jdk/src/share/classes/sun/security/ssl/SupportedEllipticPointFormatsExtension.java
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/SupportedEllipticPointFormatsExtension.java	2017-04-06 03:52:06.907373065 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/SupportedEllipticPointFormatsExtension.java	2017-04-06 03:52:24.635089032 +0100
+@@ -92,7 +92,7 @@
+     }
+ 
+     public String toString() {
+-        List<String> list = new ArrayList<>();
++        List<String> list = new ArrayList<String>();
+         for (byte format : formats) {
+             list.add(toString(format));
+         }
 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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/TrustManagerFactoryImpl.java	2016-09-21 06:38:08.236138462 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/TrustManagerFactoryImpl.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/TrustManagerFactoryImpl.java	2017-04-04 20:01:42.751618242 +0100
 @@ -134,7 +134,7 @@
          FileInputStream fis = null;
          String defaultTrustStoreType;
@@ -8006,8 +9029,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/X509KeyManagerImpl.java	2016-09-21 06:38:08.236138462 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/X509KeyManagerImpl.java	2017-04-04 19:17:25.430924764 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/X509KeyManagerImpl.java	2017-04-04 20:01:42.751618242 +0100
 @@ -309,7 +309,7 @@
                  (keyTypes.length == 0) || (keyTypes[0] == null)) {
              return null;
@@ -8027,9 +9050,9 @@
              return null;
          }
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/tools/jarsigner/Main.java openjdk-boot/jdk/src/share/classes/sun/security/tools/jarsigner/Main.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/tools/jarsigner/Main.java	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/tools/jarsigner/Main.java	2016-09-21 06:38:55.699349570 +0100
-@@ -122,14 +122,14 @@
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/tools/jarsigner/Main.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/tools/jarsigner/Main.java	2017-04-04 20:09:51.019650325 +0100
+@@ -134,14 +134,14 @@
      boolean token = false; // token-based keystore
      String jarfile;  // jar files to sign or verify
      String alias;    // alias to sign jar with
@@ -8046,7 +9069,18 @@
      char[] keypass; // private key password
      String sigfile; // name of .SF file
      String sigalg; // name of signature algorithm
-@@ -581,7 +581,7 @@
+@@ -592,14 +592,14 @@
+     {
+         boolean anySigned = false;  // if there exists entry inside jar signed
+         JarFile jf = null;
+-        Map<String,String> digestMap = new HashMap<>();
+-        Map<String,PKCS7> sigMap = new HashMap<>();
+-        Map<String,String> sigNameMap = new HashMap<>();
+-        Map<String,String> unparsableSignatures = new HashMap<>();
++        Map<String,String> digestMap = new HashMap<String,String>();
++        Map<String,PKCS7> sigMap = new HashMap<String,PKCS7>();
++        Map<String,String> sigNameMap = new HashMap<String,String>();
++        Map<String,String> unparsableSignatures = new HashMap<String,String>();
  
          try {
              jf = new JarFile(jarName, true);
@@ -8055,7 +9089,7 @@
              byte[] buffer = new byte[8192];
  
              Enumeration<JarEntry> entries = jf.entries();
-@@ -608,7 +608,7 @@
+@@ -658,7 +658,7 @@
              // The map to record display info, only used when -verbose provided
              //      key: signer info string
              //      value: the list of files with common key
@@ -8064,7 +9098,7 @@
  
              if (man != null) {
                  if (verbose != null) System.out.println();
-@@ -990,7 +990,7 @@
+@@ -1163,7 +1163,7 @@
              .append(signTimeForm.format(source)).append("]").toString();
      }
  
@@ -8073,7 +9107,7 @@
  
      private int inKeyStoreForOneSigner(CodeSigner signer) {
          if (cacheForInKS.containsKey(signer)) {
-@@ -1033,7 +1033,7 @@
+@@ -1206,7 +1206,7 @@
          return result;
      }
  
@@ -8082,7 +9116,7 @@
  
      int inKeyStore(CodeSigner[] signers) {
  
-@@ -1163,7 +1163,7 @@
+@@ -1336,7 +1336,7 @@
               *   generated one. (This may invalidate existing signatures!)
               */
              BASE64Encoder encoder = new JarBASE64Encoder();
@@ -8091,7 +9125,7 @@
  
              boolean wasSigned = false;
  
-@@ -1532,7 +1532,7 @@
+@@ -1705,7 +1705,7 @@
          return SignatureFileVerifier.isSigningRelated(name);
      }
  
@@ -8100,7 +9134,7 @@
  
      /**
       * Returns a string of singer info, with a newline at the end
-@@ -1633,7 +1633,7 @@
+@@ -1806,7 +1806,7 @@
  
              certificateFactory = CertificateFactory.getInstance("X.509");
              validator = CertPathValidator.getInstance("PKIX");
@@ -8110,8 +9144,8 @@
                  KeyStore caks = KeyStoreUtil.getCacertsKeyStore();
                  if (caks != null) {
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/tools/keytool/Main.java openjdk-boot/jdk/src/share/classes/sun/security/tools/keytool/Main.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/tools/keytool/Main.java	2016-09-21 06:14:42.827429104 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/tools/keytool/Main.java	2016-09-21 06:38:08.240138396 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/tools/keytool/Main.java	2017-04-04 19:17:25.766919381 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/tools/keytool/Main.java	2017-04-04 20:01:42.751618242 +0100
 @@ -151,11 +151,11 @@
      private KeyStore caks = null; // "cacerts" keystore
      private char[] srcstorePass = null;
@@ -8127,7 +9161,7 @@
  
      enum Command {
          CERTREQ("Generates.a.certificate.request",
-@@ -2073,7 +2073,7 @@
+@@ -2090,7 +2090,7 @@
       */
      public static List<CRL> readCRLsFromCert(X509Certificate cert)
              throws Exception {
@@ -8136,7 +9170,7 @@
          CRLDistributionPointsExtension ext =
                  X509CertImpl.toImpl(cert).getCRLDistributionPointsExtension();
          if (ext == null) return crls;
-@@ -2241,7 +2241,7 @@
+@@ -2258,7 +2258,7 @@
          if (jarfile != null) {
              JarFile jf = new JarFile(jarfile, true);
              Enumeration<JarEntry> entries = jf.entries();
@@ -8145,7 +9179,7 @@
              byte[] buffer = new byte[8192];
              int pos = 0;
              while (entries.hasMoreElements()) {
-@@ -3275,7 +3275,7 @@
+@@ -3302,7 +3302,7 @@
          }
  
          // start building chain
@@ -8154,7 +9188,7 @@
          if (buildChain((X509Certificate)certToVerify, chain, certs)) {
              Certificate[] newChain = new Certificate[chain.size()];
              // buildChain() returns chain with self-signed root-cert first and
-@@ -3774,7 +3774,7 @@
+@@ -3801,7 +3801,7 @@
                          break;
                      case 2:     // EKU
                          if(value != null) {
@@ -8163,7 +9197,7 @@
                              for (String s: value.split(",")) {
                                  int p = oneOf(s,
                                          "anyExtendedKeyUsage",
-@@ -3844,7 +3844,7 @@
+@@ -3871,7 +3871,7 @@
                          }
                          if(value != null) {
                              List<AccessDescription> accessDescriptions =
@@ -8172,7 +9206,7 @@
                              String[] ps = value.split(",");
                              for(String item: ps) {
                                  colonpos = item.indexOf(':');
-@@ -4080,7 +4080,7 @@
+@@ -4107,7 +4107,7 @@
      }
  
      public static <A,B> Pair<A,B> of(A a, B b) {
@@ -8182,8 +9216,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/tools/policytool/PolicyTool.java	2016-09-21 06:38:40.215606914 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/tools/policytool/PolicyTool.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/tools/policytool/PolicyTool.java	2017-04-04 20:01:42.751618242 +0100
 @@ -645,7 +645,7 @@
          Class<?> pc = Class.forName(type, true,
                  Thread.currentThread().getContextClassLoader());
@@ -8221,16 +9255,9 @@
          super(i, b);
      }
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/util/AlgorithmDecomposer.java openjdk-boot/jdk/src/share/classes/sun/security/util/AlgorithmDecomposer.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/util/AlgorithmDecomposer.java	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/util/AlgorithmDecomposer.java	2016-09-21 06:38:08.244138330 +0100
-@@ -49,13 +49,13 @@
-      */
-     public Set<String> decompose(String algorithm) {
-         if (algorithm == null || algorithm.length() == 0) {
--            return new HashSet<>();
-+            return new HashSet<String>();
-         }
- 
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/util/AlgorithmDecomposer.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/util/AlgorithmDecomposer.java	2017-04-04 20:03:14.082127216 +0100
+@@ -43,7 +43,7 @@
          // algorithm/mode/padding
          String[] transTockens = transPattern.split(algorithm);
  
@@ -8239,34 +9266,52 @@
          for (String transTocken : transTockens) {
              if (transTocken == null || transTocken.length() == 0) {
                  continue;
-diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/util/LegacyAlgorithmConstraints.java openjdk-boot/jdk/src/share/classes/sun/security/util/LegacyAlgorithmConstraints.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/util/LegacyAlgorithmConstraints.java	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/util/LegacyAlgorithmConstraints.java	2016-09-21 06:38:08.244138330 +0100
-@@ -43,7 +43,7 @@
-             "jdk.tls.legacyAlgorithms";
- 
-     private final static Map<String, String[]> legacyAlgorithmsMap =
--                                                          new HashMap<>();
-+      new HashMap<String, String[]>();
- 
-     private final String[] legacyAlgorithms;
- 
-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	2016-09-21 06:14:42.827429104 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/util/UntrustedCertificates.java	2016-09-21 06:38:08.244138330 +0100
-@@ -42,7 +42,7 @@
-  */
- public final class UntrustedCertificates {
- 
--    private final static Set<X509Certificate> untrustedCerts = new HashSet<>();
-+    private final static Set<X509Certificate> untrustedCerts = new HashSet<X509Certificate>();
- 
-     /**
-      * Checks if a certificate is untrusted.
+@@ -78,7 +78,7 @@
+      */
+     public Set<String> decompose(String algorithm) {
+         if (algorithm == null || algorithm.length() == 0) {
+-            return new HashSet<>();
++            return new HashSet<String>();
+         }
+ 
+         Set<String> elements = decomposeImpl(algorithm);
+@@ -148,7 +148,7 @@
+      */
+     public static Set<String> decomposeOneHash(String algorithm) {
+         if (algorithm == null || algorithm.length() == 0) {
+-            return new HashSet<>();
++            return new HashSet<String>();
+         }
+ 
+         Set<String> elements = decomposeImpl(algorithm);
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/util/AnchorCertificates.java openjdk-boot/jdk/src/share/classes/sun/security/util/AnchorCertificates.java
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/util/AnchorCertificates.java	2017-04-06 03:57:12.458476516 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/util/AnchorCertificates.java	2017-04-06 03:57:36.550090350 +0100
+@@ -59,7 +59,7 @@
+                     try {
+                         fis = new FileInputStream(f);
+                         cacerts.load(fis, null);
+-                        certs = new HashSet<>();
++                        certs = new HashSet<String>();
+                         Enumeration<String> list = cacerts.aliases();
+                         String alias;
+                         while (list.hasMoreElements()) {
+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	2017-04-05 04:34:22.795470020 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/util/DisabledAlgorithmConstraints.java	2017-04-05 04:40:45.649218903 +0100
+@@ -235,7 +235,7 @@
+      */
+ 
+     private static class Constraints {
+-        private Map<String, Set<Constraint>> constraintsMap = new HashMap<>();
++        private Map<String, Set<Constraint>> constraintsMap = new HashMap<String, Set<Constraint>>();
+         private static final Pattern keySizePattern = Pattern.compile(
+                 "keySize\\s*(<=|<|==|!=|>|>=)\\s*(\\d+)");
+ 
 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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/x509/X509CertImpl.java	2016-09-21 06:38:08.244138330 +0100
-@@ -1251,7 +1251,7 @@
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/x509/X509CertImpl.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/x509/X509CertImpl.java	2017-04-04 20:09:27.564032909 +0100
+@@ -1252,7 +1252,7 @@
              if (exts == null) {
                  return null;
              }
@@ -8275,7 +9320,7 @@
              for (Extension ex : exts.getAllExtensions()) {
                  if (ex.isCritical()) {
                      extSet.add(ex.getExtensionId().toString());
-@@ -1281,7 +1281,7 @@
+@@ -1282,7 +1282,7 @@
              if (exts == null) {
                  return null;
              }
@@ -8284,7 +9329,7 @@
              for (Extension ex : exts.getAllExtensions()) {
                  if (!ex.isCritical()) {
                      extSet.add(ex.getExtensionId().toString());
-@@ -1518,10 +1518,10 @@
+@@ -1519,10 +1519,10 @@
          if (names.isEmpty()) {
              return Collections.<List<?>>emptySet();
          }
@@ -8297,7 +9342,7 @@
              nameEntry.add(Integer.valueOf(name.getType()));
              switch (name.getType()) {
              case GeneralNameInterface.NAME_RFC822:
-@@ -1579,12 +1579,12 @@
+@@ -1580,12 +1580,12 @@
              }
          }
          if (mustClone) {
@@ -8312,9 +9357,18 @@
                      nameEntryCopy.set(1, ((byte[])nameObject).clone());
                      namesCopy.add(Collections.unmodifiableList(nameEntryCopy));
                  } else {
+@@ -1904,7 +1904,7 @@
+     }
+ 
+     private ConcurrentHashMap<String,String> fingerprints =
+-            new ConcurrentHashMap<>(2);
++	new ConcurrentHashMap<String,String>(2);
+ 
+     public String getFingerprint(String algorithm) {
+         String fingerprint = null;
 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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/x509/X509CRLEntryImpl.java	2016-09-21 06:38:08.244138330 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/x509/X509CRLEntryImpl.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/x509/X509CRLEntryImpl.java	2017-04-04 20:01:42.755618176 +0100
 @@ -350,7 +350,7 @@
          if (extensions == null) {
              return null;
@@ -8343,8 +9397,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/x509/X509CRLImpl.java	2016-09-21 06:38:08.244138330 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/x509/X509CRLImpl.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/x509/X509CRLImpl.java	2017-04-04 20:01:42.755618176 +0100
 @@ -103,8 +103,8 @@
      private X500Principal    issuerPrincipal = null;
      private Date             thisUpdate = null;
@@ -8375,8 +9429,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/tools/native2ascii/Main.java	2016-09-21 06:38:08.244138330 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/tools/native2ascii/Main.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/tools/native2ascii/Main.java	2017-04-04 20:01:42.755618176 +0100
 @@ -95,7 +95,7 @@
       * Run the converter
       */
@@ -8387,8 +9441,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/util/locale/InternalLocaleBuilder.java	2016-09-21 06:38:08.244138330 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/util/locale/InternalLocaleBuilder.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/util/locale/InternalLocaleBuilder.java	2017-04-04 20:01:42.755618176 +0100
 @@ -113,7 +113,7 @@
          }
          // Use case insensitive string to prevent duplication
@@ -8503,8 +9557,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/util/locale/LanguageTag.java	2016-09-21 06:38:08.248138264 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/util/locale/LanguageTag.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/util/locale/LanguageTag.java	2017-04-04 20:01:42.755618176 +0100
 @@ -62,7 +62,7 @@
      // Map contains grandfathered tags and its preferred mappings from
      // http://www.ietf.org/rfc/rfc5646.txt
@@ -8560,8 +9614,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/util/locale/LocaleExtensions.java	2016-09-21 06:38:08.248138264 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/util/locale/LocaleExtensions.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/util/locale/LocaleExtensions.java	2017-04-04 20:01:42.755618176 +0100
 @@ -81,7 +81,7 @@
          }
  
@@ -8589,8 +9643,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/util/locale/LocaleObjectCache.java	2016-09-21 06:38:08.248138264 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/util/locale/LocaleObjectCache.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/util/locale/LocaleObjectCache.java	2017-04-04 20:01:42.755618176 +0100
 @@ -38,14 +38,14 @@
  
  public abstract class LocaleObjectCache<K, V> {
@@ -8627,8 +9681,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/util/LocaleServiceProviderPool.java	2016-09-21 06:38:08.248138264 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/util/LocaleServiceProviderPool.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/util/LocaleServiceProviderPool.java	2017-04-04 20:01:42.755618176 +0100
 @@ -59,7 +59,7 @@
       * set of provider implementations of a particular locale sensitive service.
       */
@@ -8648,8 +9702,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/util/logging/PlatformLogger.java	2016-09-21 06:38:08.248138264 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/util/logging/PlatformLogger.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/util/logging/PlatformLogger.java	2017-04-04 20:01:42.755618176 +0100
 @@ -187,7 +187,7 @@
  
      // Table of known loggers.  Maps names to PlatformLoggers.
@@ -8669,8 +9723,8 @@
          return log;
      }
 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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/demo/nio/zipfs/Demo.java	2016-09-21 06:38:08.248138264 +0100
+--- openjdk-boot.orig/jdk/src/share/demo/nio/zipfs/Demo.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/demo/nio/zipfs/Demo.java	2017-04-04 20:01:42.755618176 +0100
 @@ -160,7 +160,7 @@
          }
  
@@ -8705,8 +9759,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipCoder.java	2016-09-21 06:38:08.248138264 +0100
+--- openjdk-boot.orig/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipCoder.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipCoder.java	2017-04-04 20:01:42.755618176 +0100
 @@ -142,8 +142,8 @@
          return new ZipCoder(Charset.defaultCharset());
      }
@@ -8719,8 +9773,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileAttributeView.java	2016-09-21 06:38:08.248138264 +0100
+--- openjdk-boot.orig/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileAttributeView.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileAttributeView.java	2017-04-04 20:01:42.755618176 +0100
 @@ -134,7 +134,7 @@
          throws IOException
      {
@@ -8731,8 +9785,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileSystem.java	2016-09-21 06:38:08.248138264 +0100
+--- openjdk-boot.orig/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileSystem.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileSystem.java	2017-04-04 20:01:42.755618176 +0100
 @@ -157,7 +157,7 @@
  
      @Override
@@ -8833,8 +9887,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileSystemProvider.java	2016-09-21 06:38:08.248138264 +0100
+--- openjdk-boot.orig/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileSystemProvider.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileSystemProvider.java	2017-04-04 20:01:42.755618176 +0100
 @@ -62,7 +62,7 @@
  public class ZipFileSystemProvider extends FileSystemProvider {
  
@@ -8845,8 +9899,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/solaris/classes/java/lang/ProcessEnvironment.java	2016-09-21 06:38:08.248138264 +0100
+--- openjdk-boot.orig/jdk/src/solaris/classes/java/lang/ProcessEnvironment.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/solaris/classes/java/lang/ProcessEnvironment.java	2017-04-04 20:01:42.755618176 +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.
@@ -8857,8 +9911,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	2016-09-21 06:14:42.831429038 +0100
-+++ openjdk-boot/jdk/src/solaris/classes/java/util/prefs/FileSystemPreferences.java	2016-09-21 06:38:08.248138264 +0100
+--- openjdk-boot.orig/jdk/src/solaris/classes/java/util/prefs/FileSystemPreferences.java	2017-04-04 19:17:25.766919381 +0100
++++ openjdk-boot/jdk/src/solaris/classes/java/util/prefs/FileSystemPreferences.java	2017-04-04 20:01:42.755618176 +0100
 @@ -354,7 +354,7 @@
       * log against that map.  The resulting map is then written back
       * to the disk.
@@ -8923,8 +9977,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/solaris/classes/sun/net/dns/ResolverConfigurationImpl.java	2016-09-21 06:38:08.248138264 +0100
+--- openjdk-boot.orig/jdk/src/solaris/classes/sun/net/dns/ResolverConfigurationImpl.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/solaris/classes/sun/net/dns/ResolverConfigurationImpl.java	2017-04-04 20:02:00.931321424 +0100
 @@ -60,7 +60,7 @@
                                            int maxperkeyword,
                                            int maxkeywords)
@@ -8936,7 +9990,7 @@
              BufferedReader in =
 @@ -209,7 +209,7 @@
          // no local domain so try fallback (RPC) domain or
-         // hostname
+         // hostName
  
 -        sl = new LinkedList<>();
 +        sl = new LinkedList<String>();
@@ -8944,8 +9998,8 @@
          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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/solaris/classes/sun/net/www/protocol/jar/JarFileFactory.java	2016-09-21 06:38:08.248138264 +0100
+--- openjdk-boot.orig/jdk/src/solaris/classes/sun/net/www/protocol/jar/JarFileFactory.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/solaris/classes/sun/net/www/protocol/jar/JarFileFactory.java	2017-04-04 20:01:42.755618176 +0100
 @@ -43,10 +43,10 @@
  class JarFileFactory implements URLJarFile.URLJarFileCloseController {
  
@@ -8960,8 +10014,8 @@
      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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/solaris/classes/sun/nio/ch/DevPollArrayWrapper.java	2016-09-21 06:38:08.248138264 +0100
+--- openjdk-boot.orig/jdk/src/solaris/classes/sun/nio/ch/DevPollArrayWrapper.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/solaris/classes/sun/nio/ch/DevPollArrayWrapper.java	2017-04-04 20:01:42.755618176 +0100
 @@ -133,7 +133,7 @@
          pollArrayAddress = pollArray.address();
          wfd = init();
@@ -8972,8 +10026,8 @@
  
      void initInterrupt(int fd0, int fd1) {
 diff -Nru openjdk-boot.orig/jdk/src/solaris/classes/sun/nio/ch/EPollArrayWrapper.java openjdk-boot/jdk/src/solaris/classes/sun/nio/ch/EPollArrayWrapper.java
---- openjdk-boot.orig/jdk/src/solaris/classes/sun/nio/ch/EPollArrayWrapper.java	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/solaris/classes/sun/nio/ch/EPollArrayWrapper.java	2016-09-21 06:38:08.248138264 +0100
+--- openjdk-boot.orig/jdk/src/solaris/classes/sun/nio/ch/EPollArrayWrapper.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/solaris/classes/sun/nio/ch/EPollArrayWrapper.java	2017-04-04 20:01:42.755618176 +0100
 @@ -136,7 +136,7 @@
  
          // eventHigh needed when using file descriptors > 64k
@@ -8984,8 +10038,8 @@
  
      void initInterrupt(int fd0, int fd1) {
 diff -Nru openjdk-boot.orig/jdk/src/solaris/classes/sun/nio/ch/EPollSelectorImpl.java openjdk-boot/jdk/src/solaris/classes/sun/nio/ch/EPollSelectorImpl.java
---- openjdk-boot.orig/jdk/src/solaris/classes/sun/nio/ch/EPollSelectorImpl.java	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/solaris/classes/sun/nio/ch/EPollSelectorImpl.java	2016-09-21 06:38:08.248138264 +0100
+--- openjdk-boot.orig/jdk/src/solaris/classes/sun/nio/ch/EPollSelectorImpl.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/solaris/classes/sun/nio/ch/EPollSelectorImpl.java	2017-04-04 20:01:42.755618176 +0100
 @@ -67,7 +67,7 @@
          fd1 = (int) pipeFds;
          pollWrapper = new EPollArrayWrapper();
@@ -8996,8 +10050,8 @@
  
      protected int doSelect(long timeout) throws IOException {
 diff -Nru openjdk-boot.orig/jdk/src/solaris/classes/sun/nio/ch/EventPortSelectorImpl.java openjdk-boot/jdk/src/solaris/classes/sun/nio/ch/EventPortSelectorImpl.java
---- openjdk-boot.orig/jdk/src/solaris/classes/sun/nio/ch/EventPortSelectorImpl.java	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/solaris/classes/sun/nio/ch/EventPortSelectorImpl.java	2016-09-21 06:38:08.248138264 +0100
+--- openjdk-boot.orig/jdk/src/solaris/classes/sun/nio/ch/EventPortSelectorImpl.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/solaris/classes/sun/nio/ch/EventPortSelectorImpl.java	2017-04-04 20:01:42.755618176 +0100
 @@ -58,7 +58,7 @@
      EventPortSelectorImpl(SelectorProvider sp) throws IOException {
          super(sp);
@@ -9008,8 +10062,8 @@
  
      protected int doSelect(long timeout) throws IOException {
 diff -Nru openjdk-boot.orig/jdk/src/solaris/classes/sun/nio/ch/EventPortWrapper.java openjdk-boot/jdk/src/solaris/classes/sun/nio/ch/EventPortWrapper.java
---- openjdk-boot.orig/jdk/src/solaris/classes/sun/nio/ch/EventPortWrapper.java	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/solaris/classes/sun/nio/ch/EventPortWrapper.java	2016-09-21 06:38:08.252138196 +0100
+--- openjdk-boot.orig/jdk/src/solaris/classes/sun/nio/ch/EventPortWrapper.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/solaris/classes/sun/nio/ch/EventPortWrapper.java	2017-04-04 20:01:42.755618176 +0100
 @@ -96,7 +96,7 @@
          pollArrayAddress = pollArray.address();
          this.pfd = port_create();
@@ -9020,8 +10074,8 @@
  
      void close() throws IOException {
 diff -Nru openjdk-boot.orig/jdk/src/solaris/classes/sun/nio/ch/SctpNet.java openjdk-boot/jdk/src/solaris/classes/sun/nio/ch/SctpNet.java
---- openjdk-boot.orig/jdk/src/solaris/classes/sun/nio/ch/SctpNet.java	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/solaris/classes/sun/nio/ch/SctpNet.java	2016-09-21 06:38:08.252138196 +0100
+--- openjdk-boot.orig/jdk/src/solaris/classes/sun/nio/ch/SctpNet.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/solaris/classes/sun/nio/ch/SctpNet.java	2017-04-04 20:01:42.759618111 +0100
 @@ -113,7 +113,7 @@
              SocketAddress[] saa)
      {
@@ -9032,8 +10086,8 @@
               set.add(getRevealedLocalAddress(sa, sm));
           }
 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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/solaris/classes/sun/nio/cs/ext/CompoundTextSupport.java	2016-09-21 06:38:08.252138196 +0100
+--- openjdk-boot.orig/jdk/src/solaris/classes/sun/nio/cs/ext/CompoundTextSupport.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/solaris/classes/sun/nio/cs/ext/CompoundTextSupport.java	2017-04-04 20:01:42.759618111 +0100
 @@ -153,12 +153,12 @@
  
      static {
@@ -9052,8 +10106,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/LinuxFileSystem.java	2016-09-21 06:38:08.252138196 +0100
+--- openjdk-boot.orig/jdk/src/solaris/classes/sun/nio/fs/LinuxFileSystem.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/LinuxFileSystem.java	2017-04-04 20:01:42.759618111 +0100
 @@ -53,7 +53,7 @@
          static final Set<String> supportedFileAttributeViews =
              supportedFileAttributeViews();
@@ -9073,8 +10127,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/LinuxUserDefinedFileAttributeView.java	2016-09-21 06:38:08.252138196 +0100
+--- openjdk-boot.orig/jdk/src/solaris/classes/sun/nio/fs/LinuxUserDefinedFileAttributeView.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/LinuxUserDefinedFileAttributeView.java	2017-04-04 20:01:42.759618111 +0100
 @@ -63,7 +63,7 @@
  
      // Parses buffer as array of NULL-terminated C strings.
@@ -9085,8 +10139,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/SolarisAclFileAttributeView.java	2016-09-21 06:38:08.252138196 +0100
+--- openjdk-boot.orig/jdk/src/solaris/classes/sun/nio/fs/SolarisAclFileAttributeView.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/SolarisAclFileAttributeView.java	2017-04-04 20:01:42.759618111 +0100
 @@ -198,7 +198,7 @@
       * Decode the buffer, returning an ACL
       */
@@ -9097,8 +10151,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/SolarisFileSystem.java	2016-09-21 06:38:08.252138196 +0100
+--- openjdk-boot.orig/jdk/src/solaris/classes/sun/nio/fs/SolarisFileSystem.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/SolarisFileSystem.java	2017-04-04 20:01:42.759618111 +0100
 @@ -76,7 +76,7 @@
          static final Set<String> supportedFileAttributeViews =
              supportedFileAttributeViews();
@@ -9118,8 +10172,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/SolarisUserDefinedFileAttributeView.java	2016-09-21 06:38:08.252138196 +0100
+--- openjdk-boot.orig/jdk/src/solaris/classes/sun/nio/fs/SolarisUserDefinedFileAttributeView.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/SolarisUserDefinedFileAttributeView.java	2017-04-04 20:01:42.759618111 +0100
 @@ -83,7 +83,7 @@
                  }
  
@@ -9130,8 +10184,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/UnixFileAttributes.java	2016-09-21 06:38:08.252138196 +0100
+--- openjdk-boot.orig/jdk/src/solaris/classes/sun/nio/fs/UnixFileAttributes.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/UnixFileAttributes.java	2017-04-04 20:01:42.759618111 +0100
 @@ -194,7 +194,7 @@
      @Override
      public Set<PosixFilePermission> permissions() {
@@ -9142,8 +10196,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/windows/classes/java/lang/ProcessEnvironment.java	2016-09-21 06:38:08.252138196 +0100
+--- openjdk-boot.orig/jdk/src/windows/classes/java/lang/ProcessEnvironment.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/windows/classes/java/lang/ProcessEnvironment.java	2017-04-04 20:01:42.759618111 +0100
 @@ -250,7 +250,8 @@
                                     envblock.substring(eql+1,end));
          }
@@ -9165,8 +10219,8 @@
  
          StringBuilder sb = new StringBuilder(size()*30);
 diff -Nru openjdk-boot.orig/jdk/src/windows/classes/java/lang/ProcessImpl.java openjdk-boot/jdk/src/windows/classes/java/lang/ProcessImpl.java
---- openjdk-boot.orig/jdk/src/windows/classes/java/lang/ProcessImpl.java	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/windows/classes/java/lang/ProcessImpl.java	2016-09-21 06:38:08.252138196 +0100
+--- openjdk-boot.orig/jdk/src/windows/classes/java/lang/ProcessImpl.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/windows/classes/java/lang/ProcessImpl.java	2017-04-04 20:01:42.759618111 +0100
 @@ -162,7 +162,7 @@
       * There are no escape sequences.
       */
@@ -9177,8 +10231,8 @@
          while (regexMatcher.find())
              matchList.add(regexMatcher.group());
 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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/windows/classes/sun/net/dns/ResolverConfigurationImpl.java	2016-09-21 06:38:08.252138196 +0100
+--- openjdk-boot.orig/jdk/src/windows/classes/sun/net/dns/ResolverConfigurationImpl.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/windows/classes/sun/net/dns/ResolverConfigurationImpl.java	2017-04-04 20:01:42.759618111 +0100
 @@ -63,7 +63,7 @@
      // Parse string that consists of token delimited by space or commas
      // and return LinkedHashMap
@@ -9189,8 +10243,8 @@
          // comma and space are valid delimites
          StringTokenizer st = new StringTokenizer(str, ", ");
 diff -Nru openjdk-boot.orig/jdk/src/windows/classes/sun/net/www/protocol/jar/JarFileFactory.java openjdk-boot/jdk/src/windows/classes/sun/net/www/protocol/jar/JarFileFactory.java
---- openjdk-boot.orig/jdk/src/windows/classes/sun/net/www/protocol/jar/JarFileFactory.java	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/windows/classes/sun/net/www/protocol/jar/JarFileFactory.java	2016-09-21 06:38:08.252138196 +0100
+--- openjdk-boot.orig/jdk/src/windows/classes/sun/net/www/protocol/jar/JarFileFactory.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/windows/classes/sun/net/www/protocol/jar/JarFileFactory.java	2017-04-04 20:01:42.759618111 +0100
 @@ -43,10 +43,10 @@
  class JarFileFactory implements URLJarFile.URLJarFileCloseController {
  
@@ -9205,8 +10259,8 @@
      private static final JarFileFactory instance = new JarFileFactory();
  
 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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/windows/classes/sun/nio/fs/WindowsFileSystem.java	2016-09-21 06:38:08.252138196 +0100
+--- openjdk-boot.orig/jdk/src/windows/classes/sun/nio/fs/WindowsFileSystem.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/windows/classes/sun/nio/fs/WindowsFileSystem.java	2017-04-04 20:01:42.759618111 +0100
 @@ -128,7 +128,7 @@
          }
  
@@ -9217,8 +10271,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/windows/classes/sun/nio/fs/WindowsPath.java	2016-09-21 06:38:08.252138196 +0100
+--- openjdk-boot.orig/jdk/src/windows/classes/sun/nio/fs/WindowsPath.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/windows/classes/sun/nio/fs/WindowsPath.java	2017-04-04 20:01:42.759618111 +0100
 @@ -575,7 +575,7 @@
      // generate offset array
      private void initOffsets() {
@@ -9229,8 +10283,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/windows/classes/sun/nio/fs/WindowsSecurityDescriptor.java	2016-09-21 06:38:08.252138196 +0100
+--- openjdk-boot.orig/jdk/src/windows/classes/sun/nio/fs/WindowsSecurityDescriptor.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/windows/classes/sun/nio/fs/WindowsSecurityDescriptor.java	2017-04-04 20:01:42.759618111 +0100
 @@ -378,7 +378,7 @@
              AclInformation aclInfo = GetAclInformation(aclAddress);
              aceCount = aclInfo.aceCount();
@@ -9241,8 +10295,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/windows/classes/sun/nio/fs/WindowsUserDefinedFileAttributeView.java	2016-09-21 06:38:08.252138196 +0100
+--- openjdk-boot.orig/jdk/src/windows/classes/sun/nio/fs/WindowsUserDefinedFileAttributeView.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/windows/classes/sun/nio/fs/WindowsUserDefinedFileAttributeView.java	2017-04-04 20:01:42.759618111 +0100
 @@ -65,7 +65,7 @@
  
      // enumerates the file streams using FindFirstStream/FindNextStream APIs.
@@ -9289,8 +10343,8 @@
                  opts.add(WindowsChannelFactory.OPEN_REPARSE_POINT);
              opts.add(CREATE);
 diff -Nru openjdk-boot.orig/jdk/src/windows/classes/sun/nio/fs/WindowsWatchService.java openjdk-boot/jdk/src/windows/classes/sun/nio/fs/WindowsWatchService.java
---- openjdk-boot.orig/jdk/src/windows/classes/sun/nio/fs/WindowsWatchService.java	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/windows/classes/sun/nio/fs/WindowsWatchService.java	2016-09-21 06:38:08.252138196 +0100
+--- openjdk-boot.orig/jdk/src/windows/classes/sun/nio/fs/WindowsWatchService.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/windows/classes/sun/nio/fs/WindowsWatchService.java	2017-04-04 20:01:42.759618111 +0100
 @@ -289,8 +289,8 @@
              this.fs = fs;
              this.watcher = watcher;
@@ -9303,8 +10357,8 @@
          }
  
 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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/test/java/io/Serializable/NPEProvoker/NPEProvoker.java	2016-09-21 06:38:08.252138196 +0100
+--- openjdk-boot.orig/jdk/test/java/io/Serializable/NPEProvoker/NPEProvoker.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/test/java/io/Serializable/NPEProvoker/NPEProvoker.java	2017-04-04 20:01:42.759618111 +0100
 @@ -56,7 +56,7 @@
      public static void main(String[] args) {
          System.err.println("\n Regression test for bug 6541870\n");
@@ -9315,8 +10369,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/test/java/lang/instrument/ilib/InjectBytecodes.java	2016-09-21 06:38:08.256138130 +0100
+--- openjdk-boot.orig/jdk/test/java/lang/instrument/ilib/InjectBytecodes.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/test/java/lang/instrument/ilib/InjectBytecodes.java	2017-04-04 20:01:42.759618111 +0100
 @@ -50,7 +50,7 @@
      private final Injector[] after  = new Injector[256];
      private final String className;
@@ -9327,8 +10381,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/test/java/lang/instrument/ilib/Inject.java	2016-09-21 06:38:08.256138130 +0100
+--- openjdk-boot.orig/jdk/test/java/lang/instrument/ilib/Inject.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/test/java/lang/instrument/ilib/Inject.java	2017-04-04 20:01:42.759618111 +0100
 @@ -107,7 +107,7 @@
      class IndexedInjector implements TrackerInjector {
          int counter = 0;
@@ -9339,8 +10393,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/test/java/lang/reflect/Generics/TestPlainArrayNotGeneric.java	2016-09-21 06:38:08.256138130 +0100
+--- openjdk-boot.orig/jdk/test/java/lang/reflect/Generics/TestPlainArrayNotGeneric.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/test/java/lang/reflect/Generics/TestPlainArrayNotGeneric.java	2017-04-04 20:01:42.759618111 +0100
 @@ -103,7 +103,7 @@
          }
      }
@@ -9351,8 +10405,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/test/java/util/logging/ClassLoaderLeakTest.java	2016-09-21 06:38:08.256138130 +0100
+--- openjdk-boot.orig/jdk/test/java/util/logging/ClassLoaderLeakTest.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/test/java/util/logging/ClassLoaderLeakTest.java	2017-04-04 20:01:42.759618111 +0100
 @@ -89,7 +89,7 @@
  
           MyClassLoader appClassLoader = new MyClassLoader(urls, "test0");
@@ -9363,8 +10417,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/test/java/util/Random/DistinctSeeds.java	2016-09-21 06:38:08.256138130 +0100
+--- openjdk-boot.orig/jdk/test/java/util/Random/DistinctSeeds.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/test/java/util/Random/DistinctSeeds.java	2017-04-04 20:01:42.759618111 +0100
 @@ -59,7 +59,7 @@
              }
          }
@@ -9374,15 +10428,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/com/sun/jndi/ldap/LdapClient.java openjdk-boot/jdk/src/share/classes/com/sun/jndi/ldap/LdapClient.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/jndi/ldap/LdapClient.java	2016-10-27 04:53:38.758268589 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/jndi/ldap/LdapClient.java	2016-10-27 04:53:54.718000231 +0100
-@@ -1571,7 +1571,7 @@
-     private void notifyUnsolicited(Object e) {
-         Vector<LdapCtx> unsolicitedCopy;
-         synchronized (unsolicited) {
--            unsolicitedCopy = new Vector<>(unsolicited);
-+            unsolicitedCopy = new Vector<LdapCtx>(unsolicited);
-             if (e instanceof NamingException) {
-                 unsolicited.setSize(0);  // no more listeners after exception
-             }
--- a/patches/boot/ecj-multicatch.patch	Tue Apr 04 03:29:16 2017 +0100
+++ b/patches/boot/ecj-multicatch.patch	Fri Apr 14 07:14:20 2017 +0100
@@ -1,6 +1,6 @@
 diff -Nru openjdk-boot.orig/jaxp/src/com/sun/org/apache/xml/internal/serializer/Encodings.java openjdk-boot/jaxp/src/com/sun/org/apache/xml/internal/serializer/Encodings.java
---- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xml/internal/serializer/Encodings.java	2015-07-19 18:19:26.000000000 +0100
-+++ openjdk-boot/jaxp/src/com/sun/org/apache/xml/internal/serializer/Encodings.java	2015-09-08 09:48:23.152974575 +0100
+--- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xml/internal/serializer/Encodings.java	2017-03-30 18:03:44.000000000 +0100
++++ openjdk-boot/jaxp/src/com/sun/org/apache/xml/internal/serializer/Encodings.java	2017-04-04 18:32:33.537730981 +0100
 @@ -145,7 +145,9 @@
                  final String name = c.name();
                  ei = new EncodingInfo(name, name);
@@ -13,8 +13,8 @@
              }
          }
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/jmx/remote/internal/ArrayNotificationBuffer.java openjdk-boot/jdk/src/share/classes/com/sun/jmx/remote/internal/ArrayNotificationBuffer.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/jmx/remote/internal/ArrayNotificationBuffer.java	2015-07-31 14:21:55.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/jmx/remote/internal/ArrayNotificationBuffer.java	2015-09-08 09:48:23.156974510 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/jmx/remote/internal/ArrayNotificationBuffer.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/jmx/remote/internal/ArrayNotificationBuffer.java	2017-04-04 18:32:33.537730981 +0100
 @@ -402,7 +402,13 @@
                          try {
                              ServerNotifForwarder.checkMBeanPermission(this.mBeanServer,
@@ -31,8 +31,8 @@
                                  logger.debug("fetchNotifications", "candidate: " + candidate + " skipped. exception " + e);
                              }
 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	2015-07-31 14:21:55.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/io/PrintStream.java	2015-09-08 09:48:23.156974510 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/io/PrintStream.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/io/PrintStream.java	2017-04-04 18:32:33.537730981 +0100
 @@ -91,7 +91,10 @@
          requireNonNull(csn, "charsetName");
          try {
@@ -46,8 +46,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	2015-07-31 14:21:55.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/io/PrintWriter.java	2015-09-08 09:48:23.156974510 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/io/PrintWriter.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/io/PrintWriter.java	2017-04-04 18:32:33.537730981 +0100
 @@ -85,7 +85,10 @@
          Objects.requireNonNull(csn, "charsetName");
          try {
@@ -61,8 +61,8 @@
              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	2015-07-31 14:21:55.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/BoundMethodHandle.java	2015-09-08 09:48:23.156974510 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/BoundMethodHandle.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/BoundMethodHandle.java	2017-04-04 18:32:33.541730919 +0100
 @@ -748,7 +748,9 @@
              Class<?> fieldType = Wrapper.forBasicType(types.charAt(index)).primitiveType();
              try {
@@ -90,8 +90,8 @@
              }
          }
 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	2015-07-31 14:21:55.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/LambdaForm.java	2015-09-08 09:48:23.156974510 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/LambdaForm.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/LambdaForm.java	2017-04-04 18:32:33.541730919 +0100
 @@ -456,9 +456,11 @@
                  traceInterpreter("compileToBytecode", this);
              isCompiled = true;
@@ -120,9 +120,26 @@
              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/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	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/MemberName.java	2017-04-04 18:32:33.545730857 +0100
+@@ -862,7 +862,12 @@
+                 m = MethodHandleNatives.resolve(m, lookupClass);
+                 m.checkForTypeAlias(m.getDeclaringClass());
+                 m.resolution = null;
+-            } catch (ClassNotFoundException | LinkageError ex) {
++            } catch (ClassNotFoundException ex) {
++                // JVM reports that the "bytecode behavior" would get an error
++                assert(!m.isResolved());
++                m.resolution = ex;
++                return m;
++            } catch (LinkageError ex) {
+                 // JVM reports that the "bytecode behavior" would get an error
+                 assert(!m.isResolved());
+                 m.resolution = ex;
 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	2015-07-31 14:21:55.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandleNatives.java	2015-09-08 09:48:23.156974510 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/MethodHandleNatives.java	2017-04-04 13:20:52.128968527 +0100
++++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandleNatives.java	2017-04-04 18:32:33.541730919 +0100
 @@ -264,7 +264,12 @@
                      continue;
                  }
@@ -138,8 +155,8 @@
                  // 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	2015-07-31 14:21:55.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/lang/management/ManagementFactory.java	2015-09-08 09:48:23.156974510 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/management/ManagementFactory.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/lang/management/ManagementFactory.java	2017-04-04 18:32:33.541730919 +0100
 @@ -606,7 +606,9 @@
              // create an MXBean proxy
              return JMX.newMXBeanProxy(connection, objName, mxbeanInterface,
@@ -152,8 +169,8 @@
          }
      }
 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	2015-07-31 14:21:55.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/lang/ProcessBuilder.java	2015-09-08 09:48:23.156974510 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/ProcessBuilder.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/lang/ProcessBuilder.java	2017-04-04 18:32:33.541730919 +0100
 @@ -1030,10 +1030,10 @@
                                       dir,
                                       redirects,
@@ -185,8 +202,8 @@
                  + (dir == null ? "" : " (in directory \"" + dir + "\")")
                  + exceptionInfo,
 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	2015-07-31 14:21:55.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/lang/reflect/Proxy.java	2015-09-08 09:48:23.156974510 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/reflect/Proxy.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/lang/reflect/Proxy.java	2017-04-04 18:32:33.541730919 +0100
 @@ -762,7 +762,9 @@
      private static Object newInstance(Constructor<?> cons, InvocationHandler h) {
          try {
@@ -199,8 +216,8 @@
          } catch (InvocationTargetException e) {
              Throwable t = e.getCause();
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/nio/charset/Charset.java openjdk-boot/jdk/src/share/classes/java/nio/charset/Charset.java
---- openjdk-boot.orig/jdk/src/share/classes/java/nio/charset/Charset.java	2015-07-31 14:21:55.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/nio/charset/Charset.java	2015-09-08 09:48:23.156974510 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/nio/charset/Charset.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/nio/charset/Charset.java	2017-04-04 18:32:33.541730919 +0100
 @@ -440,8 +440,9 @@
                                  } catch (ClassNotFoundException x) {
                                      // Extended charsets not available
@@ -214,8 +231,8 @@
                                  }
                                  return null;
 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	2015-07-31 14:21:55.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/util/Formatter.java	2015-09-08 09:48:23.156974510 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/Formatter.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/util/Formatter.java	2017-04-04 18:32:33.541730919 +0100
 @@ -1857,7 +1857,10 @@
          Objects.requireNonNull(csn, "charsetName");
          try {
@@ -229,9 +246,9 @@
              throw new UnsupportedEncodingException(csn);
          }
 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	2015-07-31 14:21:55.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/util/Scanner.java	2015-09-08 09:48:23.160974446 +0100
-@@ -633,7 +633,10 @@
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/Scanner.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/util/Scanner.java	2017-04-04 18:32:33.541730919 +0100
+@@ -638,7 +638,10 @@
          Objects.requireNonNull(csn, "charsetName");
          try {
              return Charset.forName(csn);
@@ -243,7 +260,7 @@
              // IllegalArgumentException should be thrown
              throw new IllegalArgumentException(e);
          }
-@@ -684,7 +687,9 @@
+@@ -689,7 +692,9 @@
          Objects.requireNonNull(charsetName, "charsetName");
          try {
              return Charset.forName(charsetName).newDecoder();
@@ -255,8 +272,8 @@
          }
      }
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/javax/crypto/CipherInputStream.java openjdk-boot/jdk/src/share/classes/javax/crypto/CipherInputStream.java
---- openjdk-boot.orig/jdk/src/share/classes/javax/crypto/CipherInputStream.java	2015-07-31 14:21:55.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/javax/crypto/CipherInputStream.java	2015-09-08 09:49:34.295820122 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/javax/crypto/CipherInputStream.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/javax/crypto/CipherInputStream.java	2017-04-04 18:32:33.541730919 +0100
 @@ -116,7 +116,10 @@
              done = true;
              try {
@@ -282,8 +299,8 @@
              }
          }
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/javax/crypto/CipherOutputStream.java openjdk-boot/jdk/src/share/classes/javax/crypto/CipherOutputStream.java
---- openjdk-boot.orig/jdk/src/share/classes/javax/crypto/CipherOutputStream.java	2015-07-31 14:21:55.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/javax/crypto/CipherOutputStream.java	2015-09-08 09:48:23.164974381 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/javax/crypto/CipherOutputStream.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/javax/crypto/CipherOutputStream.java	2017-04-04 18:32:33.541730919 +0100
 @@ -208,7 +208,9 @@
          closed = true;
          try {
@@ -295,397 +312,9 @@
              obuffer = null;
          }
          try {
-diff -Nru openjdk-boot.orig/jdk/src/share/classes/javax/swing/SortingFocusTraversalPolicy.java openjdk-boot/jdk/src/share/classes/javax/swing/SortingFocusTraversalPolicy.java
---- openjdk-boot.orig/jdk/src/share/classes/javax/swing/SortingFocusTraversalPolicy.java	2015-07-31 14:21:55.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/javax/swing/SortingFocusTraversalPolicy.java	2015-09-08 09:48:23.160974446 +0100
-@@ -113,7 +113,10 @@
-                         Method m = c.getDeclaredMethod("legacyMergeSort", new Class[]{Object[].class, Comparator.class});
-                         m.setAccessible(true);
-                         return m;
--                    } catch (ClassNotFoundException | NoSuchMethodException e) {
-+                    } catch (ClassNotFoundException e) {
-+                        // using default sorting algo
-+                        return null;
-+                    } catch (NoSuchMethodException e) {
-                         // using default sorting algo
-                         return null;
-                     }
-@@ -181,7 +184,9 @@
-         Object[] a = l.toArray();
-         try {
-             legacyMergeSortMethod.invoke(null, a, c);
--        } catch (IllegalAccessException | InvocationTargetException e) {
-+        } catch (InvocationTargetException e) {
-+            return false;
-+        } catch (IllegalAccessException e) {
-             return false;
-         }
-         ListIterator<Component> i = l.listIterator();
-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	2015-07-31 14:21:55.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/invoke/util/ValueConversions.java	2015-09-08 09:48:23.160974446 +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));
--        } catch (NoSuchMethodException | IllegalAccessException ex) {
-+        } catch (NoSuchMethodException ex) {
-+            throw newInternalError("uncaught exception", ex);
-+        } catch (IllegalAccessException ex) {
-             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	2015-07-31 14:21:55.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/rmi/server/ActivationGroupImpl.java	2015-09-08 09:48:23.160974446 +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	2015-07-31 14:21:55.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/rmi/server/LoaderHandler.java	2015-09-08 09:48:23.160974446 +0100
-@@ -262,11 +262,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	2015-07-31 14:21:55.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/rmi/transport/proxy/RMIMasterSocketFactory.java	2015-09-08 09:48:23.160974446 +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	2015-07-31 14:21:55.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/rmi/transport/tcp/TCPEndpoint.java	2015-09-08 09:48:23.160974446 +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	2015-07-31 14:21:55.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/PAData.java	2015-09-08 09:48:23.160974446 +0100
-@@ -280,7 +280,9 @@
-                                     .append(info.getSalt())
-                                     .append('\n');
-                         }
--                    } catch (IOException|Asn1Exception e) {
-+                    } catch (Asn1Exception e) {
-+                        sb.append("\t <Unparseable PA-ETYPE-INFO>\n");
-+                    } catch (IOException e) {
-                         sb.append("\t <Unparseable PA-ETYPE-INFO>\n");
-                     }
-                 }
-@@ -307,7 +309,9 @@
-                                         .encodeBuffer(s2kparams));
-                             }
-                         }
--                    } catch (IOException|Asn1Exception e) {
-+                    } catch (IOException e) {
-+                        sb.append("\t <Unparseable PA-ETYPE-INFO>\n");
-+                    } catch (Asn1Exception e) {
-                         sb.append("\t <Unparseable PA-ETYPE-INFO>\n");
-                     }
-                 }
-diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/provider/SecureRandom.java openjdk-boot/jdk/src/share/classes/sun/security/provider/SecureRandom.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/provider/SecureRandom.java	2015-07-31 14:21:55.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/provider/SecureRandom.java	2015-09-08 09:48:23.160974446 +0100
-@@ -100,7 +100,15 @@
-              * performance overhead.
-              */
-             digest = MessageDigest.getInstance("SHA", "SUN");
--        } catch (NoSuchProviderException | NoSuchAlgorithmException e) {
-+        } catch (NoSuchProviderException e) {
-+            // Fallback to any available.
-+            try {
-+                digest = MessageDigest.getInstance("SHA");
-+            } catch (NoSuchAlgorithmException exc) {
-+                throw new InternalError(
-+                    "internal error: SHA-1 not available.");
-+            }
-+        } catch (NoSuchAlgorithmException e) {
-             // Fallback to any available.
-             try {
-                 digest = MessageDigest.getInstance("SHA");
-@@ -274,7 +282,15 @@
-              * performance overhead.
-              */
-             digest = MessageDigest.getInstance("SHA", "SUN");
--        } catch (NoSuchProviderException | NoSuchAlgorithmException e) {
-+        } catch (NoSuchProviderException e) {
-+            // Fallback to any available.
-+            try {
-+                digest = MessageDigest.getInstance("SHA");
-+            } catch (NoSuchAlgorithmException exc) {
-+                throw new InternalError(
-+                    "internal error: SHA-1 not available.");
-+            }
-+        } catch (NoSuchAlgorithmException e) {
-             // Fallback to any available.
-             try {
-                 digest = MessageDigest.getInstance("SHA");
-diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/ECDHCrypt.java openjdk-boot/jdk/src/share/classes/sun/security/ssl/ECDHCrypt.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/ECDHCrypt.java	2015-07-31 14:21:55.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/ECDHCrypt.java	2015-09-08 11:53:31.962469733 +0100
-@@ -118,7 +118,10 @@
-             ECPublicKeySpec spec = new ECPublicKeySpec(point, params);
-             PublicKey peerPublicKey = kf.generatePublic(spec);
-             return getAgreedSecret(peerPublicKey);
--        } catch (GeneralSecurityException | java.io.IOException e) {
-+        } catch (GeneralSecurityException e) {
-+            throw (SSLHandshakeException) new SSLHandshakeException(
-+                "Could not generate secret").initCause(e);
-+        } catch (java.io.IOException e) {
-             throw (SSLHandshakeException) new SSLHandshakeException(
-                 "Could not generate secret").initCause(e);
-         }
-@@ -144,7 +147,10 @@
-                 throw new SSLHandshakeException(
-                     "ECPublicKey does not comply to algorithm constraints");
-             }
--        } catch (GeneralSecurityException | java.io.IOException e) {
-+        } catch (GeneralSecurityException e) {
-+            throw (SSLHandshakeException) new SSLHandshakeException(
-+                    "Could not generate ECPublicKey").initCause(e);
-+        } catch (java.io.IOException e) {
-             throw (SSLHandshakeException) new SSLHandshakeException(
-                     "Could not generate ECPublicKey").initCause(e);
-         }
-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	2015-07-31 14:21:55.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/Handshaker.java	2015-09-08 09:48:23.160974446 +0100
-@@ -1096,8 +1096,7 @@
-             KeyGenerator kg = JsseJce.getKeyGenerator(masterAlg);
-             kg.init(spec);
-             return kg.generateKey();
--        } catch (InvalidAlgorithmParameterException |
--                NoSuchAlgorithmException iae) {
-+        } catch (InvalidAlgorithmParameterException iae) {
-             // unlikely to happen, otherwise, must be a provider exception
-             //
-             // For RSA premaster secrets, do not signal a protocol error
-@@ -1105,6 +1104,12 @@
-             if (debug != null && Debug.isOn("handshake")) {
-                 System.out.println("RSA master secret generation error:");
-                 iae.printStackTrace(System.out);
-+            }
-+            throw new ProviderException(iae);
-+	} catch (NoSuchAlgorithmException iae) {
-+            if (debug != null && Debug.isOn("handshake")) {
-+                System.out.println("RSA master secret generation error:");
-+                iae.printStackTrace(System.out);
-             }
-             throw new ProviderException(iae);
-         }
-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	2015-07-31 14:21:55.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/util/UntrustedCertificates.java	2015-09-08 09:48:23.160974446 +0100
-@@ -65,7 +65,10 @@
-                 throw new RuntimeException("Duplicate untrusted certificate: " +
-                     cert.getSubjectX500Principal());
-             }
--        } catch (CertificateException | IOException e) {
-+	} catch (CertificateException e) {
-+            throw new RuntimeException(
-+                        "Incorrect untrusted certificate: " + alias, e);
-+	} catch (IOException e) {
-             throw new RuntimeException(
-                         "Incorrect untrusted certificate: " + alias, e);
-         }
-diff -Nru openjdk-boot.orig/jdk/src/share/classes/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	2015-07-31 14:21:55.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/text/bidi/BidiBase.java	2015-09-08 09:48:23.160974446 +0100
-@@ -3478,7 +3478,9 @@
-             try {
-                 Field f = clazz.getField(name);
-                 return f.get(null);
--            } catch (NoSuchFieldException | IllegalAccessException x) {
-+            } catch (NoSuchFieldException x) {
-+                throw new AssertionError(x);
-+            } catch (IllegalAccessException x) {
-                 throw new AssertionError(x);
-             }
-         }
-diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/tools/jcmd/JCmd.java openjdk-boot/jdk/src/share/classes/sun/tools/jcmd/JCmd.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/tools/jcmd/JCmd.java	2015-07-31 14:21:55.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/tools/jcmd/JCmd.java	2015-09-08 09:48:23.160974446 +0100
-@@ -94,7 +94,7 @@
-                         && mainClass.indexOf(arg.getProcessSubstring()) != -1) {
-                             pids.add(vmd.id());
-                     }
--                } catch (MonitorException|URISyntaxException e) {
-+                } catch (MonitorException e) {
-                     if (e.getMessage() != null) {
-                         System.err.println(e.getMessage());
-                     } else {
-@@ -105,7 +105,18 @@
-                             e.printStackTrace();
-                         }
-                     }
--                }
-+                } catch (URISyntaxException e) {
-+                    if (e.getMessage() != null) {
-+                        System.err.println(e.getMessage());
-+                    } else {
-+                        Throwable cause = e.getCause();
-+                        if ((cause != null) && (cause.getMessage() != null)) {
-+                            System.err.println(cause.getMessage());
-+                        } else {
-+                            e.printStackTrace();
-+                        }
-+                    }
-+		}
-             }
-             if (pids.isEmpty()) {
-                 System.err.println("Could not find any processes matching : '"
-@@ -191,9 +202,11 @@
-         try {
-             String mainClass = getMainClass(vmd);
-             return mainClass != null && mainClass.equals(JCmd.class.getName());
--        } catch (URISyntaxException|MonitorException ex) {
-+        } catch (URISyntaxException ex) {
-             return false;
--        }
-+        } catch (MonitorException ex) {
-+	    return false;
-+	}
-     }
- 
-     private static String getMainClass(VirtualMachineDescriptor vmd)
-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	2015-07-31 14:21:55.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/tools/jconsole/Resources.java	2015-09-08 09:48:23.160974446 +0100
-@@ -129,7 +129,9 @@
-     private static void setFieldValue(Field field, String value) {
-         try {
-             field.set(null, value);
--        } catch (IllegalArgumentException | IllegalAccessException e) {
-+        } catch (IllegalArgumentException e) {
-+            throw new Error("Unable to access or set message for field " + field.getName());
-+        } catch (IllegalAccessException e) {
-             throw new Error("Unable to access or set message for field " + field.getName());
-         }
-     }
-@@ -200,8 +202,16 @@
-         try {
-             return KeyEvent.class.getDeclaredField("VK_" + c.toUpperCase())
-                     .getInt(null);
--        } catch (IllegalArgumentException | IllegalAccessException
--                | NoSuchFieldException | SecurityException e) {
-+        } catch (IllegalArgumentException e) {
-+            // Missing VK is okay
-+            return 0;
-+        } catch (IllegalAccessException e) {
-+            // Missing VK is okay
-+            return 0;
-+        } catch (NoSuchFieldException e) {
-+            // Missing VK is okay
-+            return 0;
-+        } catch (SecurityException e) {
-             // Missing VK is okay
-             return 0;
-         }
-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	2016-09-21 20:40:40.276914774 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/PrincipalName.java	2016-09-21 20:41:14.560360126 +0100
-@@ -421,7 +421,9 @@
-                                 hostName.toLowerCase(Locale.ENGLISH)+".")) {
-                         hostName = canonicalized;
-                     }
--                } catch (UnknownHostException | SecurityException e) {
-+                } catch (UnknownHostException e) {
-+                    // not canonicalized or no permission to do so, use old
-+                } catch (SecurityException e) {
-                     // not canonicalized or no permission to do so, use old
-                 }
-                 nameParts[1] = hostName.toLowerCase(Locale.ENGLISH);
-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	2016-09-23 15:15:03.191967011 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/MemberName.java	2016-09-23 15:22:20.332755375 +0100
-@@ -862,7 +862,12 @@
-                 m = MethodHandleNatives.resolve(m, lookupClass);
-                 m.checkForTypeAlias(m.getDeclaringClass());
-                 m.resolution = null;
--            } catch (ClassNotFoundException | LinkageError ex) {
-+            } catch (ClassNotFoundException ex) {
-+                // JVM reports that the "bytecode behavior" would get an error
-+                assert(!m.isResolved());
-+                m.resolution = ex;
-+                return m;
-+            } catch (LinkageError ex) {
-                 // JVM reports that the "bytecode behavior" would get an error
-                 assert(!m.isResolved());
-                 m.resolution = ex;
-diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/invoke/util/VerifyAccess.java openjdk-boot/jdk/src/share/classes/sun/invoke/util/VerifyAccess.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/invoke/util/VerifyAccess.java	2016-09-23 15:15:03.199966880 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/invoke/util/VerifyAccess.java	2016-09-23 15:22:46.000332273 +0100
-@@ -222,7 +222,9 @@
-                     public Class<?> run() {
-                         try {
-                             return Class.forName(name, false, refcLoader);
--                        } catch (ClassNotFoundException | LinkageError e) {
-+                        } catch (ClassNotFoundException e) {
-+                            return null; // Assume the class is not found
-+                        } catch (LinkageError e) {
-                             return null; // Assume the class is not found
-                         }
-                     }
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/javax/crypto/EncryptedPrivateKeyInfo.java openjdk-boot/jdk/src/share/classes/javax/crypto/EncryptedPrivateKeyInfo.java
---- openjdk-boot.orig/jdk/src/share/classes/javax/crypto/EncryptedPrivateKeyInfo.java	2016-09-23 16:23:05.180335751 +0100
-+++ openjdk-boot/jdk/src/share/classes/javax/crypto/EncryptedPrivateKeyInfo.java	2016-09-23 16:27:25.492014703 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/javax/crypto/EncryptedPrivateKeyInfo.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/javax/crypto/EncryptedPrivateKeyInfo.java	2017-04-04 18:32:33.545730857 +0100
 @@ -249,9 +249,13 @@
          try {
              encoded = cipher.doFinal(encryptedData);
@@ -716,8 +345,8 @@
                      "Cannot retrieve the PKCS8EncodedKeySpec", ex);
          }
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/javax/crypto/SealedObject.java openjdk-boot/jdk/src/share/classes/javax/crypto/SealedObject.java
---- openjdk-boot.orig/jdk/src/share/classes/javax/crypto/SealedObject.java	2016-09-23 16:23:05.192335551 +0100
-+++ openjdk-boot/jdk/src/share/classes/javax/crypto/SealedObject.java	2016-09-23 16:24:51.118576883 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/javax/crypto/SealedObject.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/javax/crypto/SealedObject.java	2017-04-04 18:32:33.545730857 +0100
 @@ -353,7 +353,9 @@
  
          try {
@@ -729,60 +358,182 @@
              throw new InvalidKeyException(ex.getMessage());
          }
      }
-diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/provider/certpath/URICertStore.java openjdk-boot/jdk/src/share/classes/sun/security/provider/certpath/URICertStore.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/provider/certpath/URICertStore.java	2016-09-23 17:07:13.421018536 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/provider/certpath/URICertStore.java	2016-09-23 17:07:55.180339579 +0100
-@@ -307,7 +307,12 @@
-                     factory.generateCertificates(in);
-             }
-             return getMatchingCerts(certs, selector);
--        } catch (IOException | CertificateException e) {
-+        } catch (IOException e) {
-+            if (debug != null) {
-+                debug.println("Exception fetching certificates:");
-+                e.printStackTrace();
-+            }
-+        } catch (CertificateException e) {
-             if (debug != null) {
-                 debug.println("Exception fetching certificates:");
-                 e.printStackTrace();
-@@ -414,7 +419,12 @@
-                 crl = (X509CRL) factory.generateCRL(in);
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/javax/swing/SortingFocusTraversalPolicy.java openjdk-boot/jdk/src/share/classes/javax/swing/SortingFocusTraversalPolicy.java
+--- openjdk-boot.orig/jdk/src/share/classes/javax/swing/SortingFocusTraversalPolicy.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/javax/swing/SortingFocusTraversalPolicy.java	2017-04-04 18:32:33.541730919 +0100
+@@ -113,7 +113,10 @@
+                         Method m = c.getDeclaredMethod("legacyMergeSort", new Class[]{Object[].class, Comparator.class});
+                         m.setAccessible(true);
+                         return m;
+-                    } catch (ClassNotFoundException | NoSuchMethodException e) {
++                    } catch (ClassNotFoundException e) {
++                        // using default sorting algo
++                        return null;
++                    } catch (NoSuchMethodException e) {
+                         // using default sorting algo
+                         return null;
+                     }
+@@ -181,7 +184,9 @@
+         Object[] a = l.toArray();
+         try {
+             legacyMergeSortMethod.invoke(null, a, c);
+-        } catch (IllegalAccessException | InvocationTargetException e) {
++        } catch (InvocationTargetException e) {
++            return false;
++        } catch (IllegalAccessException e) {
+             return false;
+         }
+         ListIterator<Component> i = l.listIterator();
+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	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/invoke/util/ValueConversions.java	2017-04-04 18:32:33.541730919 +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));
+-        } catch (NoSuchMethodException | IllegalAccessException ex) {
++        } catch (NoSuchMethodException ex) {
++            throw newInternalError("uncaught exception", ex);
++        } catch (IllegalAccessException ex) {
+             throw newInternalError("uncaught exception", ex);
+         }
+     }
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/invoke/util/VerifyAccess.java openjdk-boot/jdk/src/share/classes/sun/invoke/util/VerifyAccess.java
+--- openjdk-boot.orig/jdk/src/share/classes/sun/invoke/util/VerifyAccess.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/invoke/util/VerifyAccess.java	2017-04-04 18:32:33.545730857 +0100
+@@ -222,7 +222,9 @@
+                     public Class<?> run() {
+                         try {
+                             return Class.forName(name, false, refcLoader);
+-                        } catch (ClassNotFoundException | LinkageError e) {
++                        } catch (ClassNotFoundException e) {
++                            return null; // Assume the class is not found
++                        } catch (LinkageError e) {
+                             return null; // Assume the class is not found
+                         }
+                     }
+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	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/rmi/server/ActivationGroupImpl.java	2017-04-04 18:32:33.541730919 +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	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/rmi/server/LoaderHandler.java	2017-04-04 18:32:33.541730919 +0100
+@@ -262,11 +262,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	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/rmi/transport/proxy/RMIMasterSocketFactory.java	2017-04-04 18:32:33.541730919 +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	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/rmi/transport/tcp/TCPEndpoint.java	2017-04-04 18:32:33.541730919 +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
              }
-             return getMatchingCRLs(crl, selector);
--        } catch (IOException | CRLException e) {
-+        } catch (IOException e) {
-+            if (debug != null) {
-+                debug.println("Exception fetching CRL:");
-+                e.printStackTrace();
-+            }
-+        } catch (CRLException e) {
-             if (debug != null) {
-                 debug.println("Exception fetching CRL:");
-                 e.printStackTrace();
-diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/RSAClientKeyExchange.java openjdk-boot/jdk/src/share/classes/sun/security/ssl/RSAClientKeyExchange.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/RSAClientKeyExchange.java	2016-09-23 17:07:13.457017951 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/RSAClientKeyExchange.java	2016-09-23 17:15:54.756537449 +0100
-@@ -173,8 +173,14 @@
-                     clientVersion, serverVersion, encodedSecret),
-                     generator);
-             return kg.generateKey();
--        } catch (InvalidAlgorithmParameterException |
--                NoSuchAlgorithmException iae) {
-+        } catch (InvalidAlgorithmParameterException iae) {
-+            // unlikely to happen, otherwise, must be a provider exception
-+            if (debug != null && Debug.isOn("handshake")) {
-+                System.out.println("RSA premaster secret generation error:");
-+                iae.printStackTrace(System.out);
-+            }
-+            throw new RuntimeException("Could not generate premaster secret", iae);
-+        } catch (NoSuchAlgorithmException iae) {
-             // unlikely to happen, otherwise, must be a provider exception
-             if (debug != null && Debug.isOn("handshake")) {
-                 System.out.println("RSA premaster secret generation error:");
+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	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/PAData.java	2017-04-04 18:32:33.545730857 +0100
+@@ -280,7 +280,9 @@
+                                     .append(info.getSalt())
+                                     .append('\n');
+                         }
+-                    } catch (IOException|Asn1Exception e) {
++                    } catch (Asn1Exception e) {
++                        sb.append("\t <Unparseable PA-ETYPE-INFO>\n");
++                    } catch (IOException e) {
+                         sb.append("\t <Unparseable PA-ETYPE-INFO>\n");
+                     }
+                 }
+@@ -307,7 +309,9 @@
+                                         .encodeBuffer(s2kparams));
+                             }
+                         }
+-                    } catch (IOException|Asn1Exception e) {
++                    } catch (IOException e) {
++                        sb.append("\t <Unparseable PA-ETYPE-INFO>\n");
++                    } catch (Asn1Exception e) {
+                         sb.append("\t <Unparseable PA-ETYPE-INFO>\n");
+                     }
+                 }
+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	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/PrincipalName.java	2017-04-04 18:32:33.545730857 +0100
+@@ -421,7 +421,9 @@
+                                 hostName.toLowerCase(Locale.ENGLISH)+".")) {
+                         hostName = canonicalized;
+                     }
+-                } catch (UnknownHostException | SecurityException e) {
++                } catch (UnknownHostException e) {
++                    // not canonicalized or no permission to do so, use old
++                } catch (SecurityException e) {
+                     // not canonicalized or no permission to do so, use old
+                 }
+                 nameParts[1] = hostName.toLowerCase(Locale.ENGLISH);
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/pkcs11/P11KeyStore.java openjdk-boot/jdk/src/share/classes/sun/security/pkcs11/P11KeyStore.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/pkcs11/P11KeyStore.java	2016-09-23 18:04:55.125088351 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/pkcs11/P11KeyStore.java	2016-09-23 18:10:03.312134476 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/pkcs11/P11KeyStore.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/pkcs11/P11KeyStore.java	2017-04-04 18:32:33.545730857 +0100
 @@ -325,7 +325,9 @@
  
              // did not find anything
@@ -876,8 +627,8 @@
              }
          }
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/pkcs11/P11RSAKeyFactory.java openjdk-boot/jdk/src/share/classes/sun/security/pkcs11/P11RSAKeyFactory.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/pkcs11/P11RSAKeyFactory.java	2016-09-23 18:04:55.137088159 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/pkcs11/P11RSAKeyFactory.java	2016-09-23 18:06:53.927179034 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/pkcs11/P11RSAKeyFactory.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/pkcs11/P11RSAKeyFactory.java	2017-04-04 18:32:33.545730857 +0100
 @@ -130,7 +130,10 @@
                  rs.getModulus(),
                  rs.getPublicExponent()
@@ -902,9 +653,151 @@
              throw new InvalidKeySpecException
                  ("Could not create RSA private key", e);
          }
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/tools/keytool/Main.java	2016-09-23 18:24:05.646575464 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/tools/keytool/Main.java	2016-09-23 18:24:20.022343797 +0100
-@@ -2538,7 +2538,9 @@
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/provider/certpath/URICertStore.java openjdk-boot/jdk/src/share/classes/sun/security/provider/certpath/URICertStore.java
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/provider/certpath/URICertStore.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/provider/certpath/URICertStore.java	2017-04-04 18:32:33.545730857 +0100
+@@ -307,7 +307,12 @@
+                     factory.generateCertificates(in);
+             }
+             return getMatchingCerts(certs, selector);
+-        } catch (IOException | CertificateException e) {
++        } catch (IOException e) {
++            if (debug != null) {
++                debug.println("Exception fetching certificates:");
++                e.printStackTrace();
++            }
++        } catch (CertificateException e) {
+             if (debug != null) {
+                 debug.println("Exception fetching certificates:");
+                 e.printStackTrace();
+@@ -414,7 +419,12 @@
+                 crl = (X509CRL) factory.generateCRL(in);
+             }
+             return getMatchingCRLs(crl, selector);
+-        } catch (IOException | CRLException e) {
++        } catch (IOException e) {
++            if (debug != null) {
++                debug.println("Exception fetching CRL:");
++                e.printStackTrace();
++            }
++        } catch (CRLException e) {
+             if (debug != null) {
+                 debug.println("Exception fetching CRL:");
+                 e.printStackTrace();
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/provider/SecureRandom.java openjdk-boot/jdk/src/share/classes/sun/security/provider/SecureRandom.java
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/provider/SecureRandom.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/provider/SecureRandom.java	2017-04-04 18:32:33.545730857 +0100
+@@ -100,7 +100,15 @@
+              * performance overhead.
+              */
+             digest = MessageDigest.getInstance("SHA", "SUN");
+-        } catch (NoSuchProviderException | NoSuchAlgorithmException e) {
++        } catch (NoSuchProviderException e) {
++            // Fallback to any available.
++            try {
++                digest = MessageDigest.getInstance("SHA");
++            } catch (NoSuchAlgorithmException exc) {
++                throw new InternalError(
++                    "internal error: SHA-1 not available.");
++            }
++        } catch (NoSuchAlgorithmException e) {
+             // Fallback to any available.
+             try {
+                 digest = MessageDigest.getInstance("SHA");
+@@ -274,7 +282,15 @@
+              * performance overhead.
+              */
+             digest = MessageDigest.getInstance("SHA", "SUN");
+-        } catch (NoSuchProviderException | NoSuchAlgorithmException e) {
++        } catch (NoSuchProviderException e) {
++            // Fallback to any available.
++            try {
++                digest = MessageDigest.getInstance("SHA");
++            } catch (NoSuchAlgorithmException exc) {
++                throw new InternalError(
++                    "internal error: SHA-1 not available.");
++            }
++        } catch (NoSuchAlgorithmException e) {
+             // Fallback to any available.
+             try {
+                 digest = MessageDigest.getInstance("SHA");
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/ECDHCrypt.java openjdk-boot/jdk/src/share/classes/sun/security/ssl/ECDHCrypt.java
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/ECDHCrypt.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/ECDHCrypt.java	2017-04-04 18:32:33.545730857 +0100
+@@ -119,7 +119,10 @@
+             ECPublicKeySpec spec = new ECPublicKeySpec(point, params);
+             PublicKey peerPublicKey = kf.generatePublic(spec);
+             return getAgreedSecret(peerPublicKey);
+-        } catch (GeneralSecurityException | java.io.IOException e) {
++        } catch (GeneralSecurityException e) {
++            throw (SSLHandshakeException) new SSLHandshakeException(
++                "Could not generate secret").initCause(e);
++        } catch (java.io.IOException e) {
+             throw (SSLHandshakeException) new SSLHandshakeException(
+                 "Could not generate secret").initCause(e);
+         }
+@@ -145,7 +148,10 @@
+                 throw new SSLHandshakeException(
+                     "ECPublicKey does not comply to algorithm constraints");
+             }
+-        } catch (GeneralSecurityException | java.io.IOException e) {
++        } catch (GeneralSecurityException e) {
++            throw (SSLHandshakeException) new SSLHandshakeException(
++                    "Could not generate ECPublicKey").initCause(e);
++        } catch (java.io.IOException e) {
+             throw (SSLHandshakeException) new SSLHandshakeException(
+                     "Could not generate ECPublicKey").initCause(e);
+         }
+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	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/Handshaker.java	2017-04-04 18:32:33.545730857 +0100
+@@ -1144,8 +1144,7 @@
+             KeyGenerator kg = JsseJce.getKeyGenerator(masterAlg);
+             kg.init(spec);
+             return kg.generateKey();
+-        } catch (InvalidAlgorithmParameterException |
+-                NoSuchAlgorithmException iae) {
++        } catch (InvalidAlgorithmParameterException iae) {
+             // unlikely to happen, otherwise, must be a provider exception
+             //
+             // For RSA premaster secrets, do not signal a protocol error
+@@ -1153,6 +1152,12 @@
+             if (debug != null && Debug.isOn("handshake")) {
+                 System.out.println("RSA master secret generation error:");
+                 iae.printStackTrace(System.out);
++            }
++            throw new ProviderException(iae);
++	} catch (NoSuchAlgorithmException iae) {
++            if (debug != null && Debug.isOn("handshake")) {
++                System.out.println("RSA master secret generation error:");
++                iae.printStackTrace(System.out);
+             }
+             throw new ProviderException(iae);
+         }
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/RSAClientKeyExchange.java openjdk-boot/jdk/src/share/classes/sun/security/ssl/RSAClientKeyExchange.java
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/RSAClientKeyExchange.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/RSAClientKeyExchange.java	2017-04-04 18:32:33.545730857 +0100
+@@ -173,8 +173,14 @@
+                     clientVersion, serverVersion, encodedSecret),
+                     generator);
+             return kg.generateKey();
+-        } catch (InvalidAlgorithmParameterException |
+-                NoSuchAlgorithmException iae) {
++        } catch (InvalidAlgorithmParameterException iae) {
++            // unlikely to happen, otherwise, must be a provider exception
++            if (debug != null && Debug.isOn("handshake")) {
++                System.out.println("RSA premaster secret generation error:");
++                iae.printStackTrace(System.out);
++            }
++            throw new RuntimeException("Could not generate premaster secret", iae);
++        } catch (NoSuchAlgorithmException iae) {
+             // unlikely to happen, otherwise, must be a provider exception
+             if (debug != null && Debug.isOn("handshake")) {
+                 System.out.println("RSA premaster secret generation error:");
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/tools/keytool/Main.java openjdk-boot/jdk/src/share/classes/sun/security/tools/keytool/Main.java
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/tools/keytool/Main.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/tools/keytool/Main.java	2017-04-04 18:32:33.545730857 +0100
+@@ -2533,7 +2533,9 @@
          X509Certificate cert = null;
          try {
              cert = (X509Certificate)cf.generateCertificate(in);
@@ -915,3 +808,290 @@
              throw new Exception(rb.getString("Input.not.an.X.509.certificate"));
          }
  
+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	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/text/bidi/BidiBase.java	2017-04-04 18:32:33.545730857 +0100
+@@ -3478,7 +3478,9 @@
+             try {
+                 Field f = clazz.getField(name);
+                 return f.get(null);
+-            } catch (NoSuchFieldException | IllegalAccessException x) {
++            } catch (NoSuchFieldException x) {
++                throw new AssertionError(x);
++            } catch (IllegalAccessException x) {
+                 throw new AssertionError(x);
+             }
+         }
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/tools/jcmd/JCmd.java openjdk-boot/jdk/src/share/classes/sun/tools/jcmd/JCmd.java
+--- openjdk-boot.orig/jdk/src/share/classes/sun/tools/jcmd/JCmd.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/tools/jcmd/JCmd.java	2017-04-04 18:32:33.545730857 +0100
+@@ -94,7 +94,7 @@
+                         && mainClass.indexOf(arg.getProcessSubstring()) != -1) {
+                             pids.add(vmd.id());
+                     }
+-                } catch (MonitorException|URISyntaxException e) {
++                } catch (MonitorException e) {
+                     if (e.getMessage() != null) {
+                         System.err.println(e.getMessage());
+                     } else {
+@@ -105,7 +105,18 @@
+                             e.printStackTrace();
+                         }
+                     }
+-                }
++                } catch (URISyntaxException e) {
++                    if (e.getMessage() != null) {
++                        System.err.println(e.getMessage());
++                    } else {
++                        Throwable cause = e.getCause();
++                        if ((cause != null) && (cause.getMessage() != null)) {
++                            System.err.println(cause.getMessage());
++                        } else {
++                            e.printStackTrace();
++                        }
++                    }
++		}
+             }
+             if (pids.isEmpty()) {
+                 System.err.println("Could not find any processes matching : '"
+@@ -191,9 +202,11 @@
+         try {
+             String mainClass = getMainClass(vmd);
+             return mainClass != null && mainClass.equals(JCmd.class.getName());
+-        } catch (URISyntaxException|MonitorException ex) {
++        } catch (URISyntaxException ex) {
+             return false;
+-        }
++        } catch (MonitorException ex) {
++	    return false;
++	}
+     }
+ 
+     private static String getMainClass(VirtualMachineDescriptor vmd)
+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	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/tools/jconsole/Resources.java	2017-04-04 18:32:33.545730857 +0100
+@@ -129,7 +129,9 @@
+     private static void setFieldValue(Field field, String value) {
+         try {
+             field.set(null, value);
+-        } catch (IllegalArgumentException | IllegalAccessException e) {
++        } catch (IllegalArgumentException e) {
++            throw new Error("Unable to access or set message for field " + field.getName());
++        } catch (IllegalAccessException e) {
+             throw new Error("Unable to access or set message for field " + field.getName());
+         }
+     }
+@@ -200,8 +202,16 @@
+         try {
+             return KeyEvent.class.getDeclaredField("VK_" + c.toUpperCase())
+                     .getInt(null);
+-        } catch (IllegalArgumentException | IllegalAccessException
+-                | NoSuchFieldException | SecurityException e) {
++        } catch (IllegalArgumentException e) {
++            // Missing VK is okay
++            return 0;
++        } catch (IllegalAccessException e) {
++            // Missing VK is okay
++            return 0;
++        } catch (NoSuchFieldException e) {
++            // Missing VK is okay
++            return 0;
++        } catch (SecurityException e) {
+             // Missing VK is okay
+             return 0;
+         }
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/naming/internal/ResourceManager.java openjdk-boot/jdk/src/share/classes/com/sun/naming/internal/ResourceManager.java
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/naming/internal/ResourceManager.java	2017-04-05 06:24:02.686583433 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/naming/internal/ResourceManager.java	2017-04-05 06:27:36.255186614 +0100
+@@ -165,8 +165,9 @@
+                 throw new ClassCastException(applet.getClass().getName());
+             try {
+                 return getMethod.invoke(applet, name);
+-            } catch (InvocationTargetException |
+-                     IllegalAccessException e) {
++            } catch (InvocationTargetException e) {
++                throw new AssertionError(e);
++            } catch (IllegalAccessException e) {
+                 throw new AssertionError(e);
+             }
+         }
+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	2017-04-05 06:24:02.694583307 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/net/www/protocol/http/HttpURLConnection.java	2017-04-05 06:34:54.984207303 +0100
+@@ -883,7 +883,8 @@
+                     InetAddress a1 = InetAddress.getByName(h1);
+                     InetAddress a2 = InetAddress.getByName(h2);
+                     result[0] = a1.equals(a2);
+-                } catch(UnknownHostException | SecurityException e) {
++                } catch (UnknownHostException e) {
++                } catch (SecurityException e) {
+                 }
+                 return null;
+             }
+@@ -1650,8 +1651,9 @@
+                                 // HttpsURLConnection instance saved in
+                                 // DelegateHttpsURLConnection
+                                 uconn = (URLConnection)this.getClass().getField("httpsURLConnection").get(this);
+-                                } catch (IllegalAccessException |
+-                                         NoSuchFieldException e) {
++                                } catch (IllegalAccessException e) {
++                                    // ignored; use 'this'
++                                } catch (NoSuchFieldException e) {
+                                     // ignored; use 'this'
+                                 }
+                             }
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/reflect/ReflectionFactory.java openjdk-boot/jdk/src/share/classes/sun/reflect/ReflectionFactory.java
+--- openjdk-boot.orig/jdk/src/share/classes/sun/reflect/ReflectionFactory.java	2017-04-05 06:24:02.702583180 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/reflect/ReflectionFactory.java	2017-04-05 06:26:19.276411016 +0100
+@@ -598,7 +598,10 @@
+         }
+         try {
+             return (Boolean) m.invoke(null, cl);
+-        } catch (InvocationTargetException | IllegalAccessException ex) {
++        } catch (InvocationTargetException ex) {
++            throw (InternalError)
++                new InternalError("Exception invoking hasStaticInitializer").initCause(ex);
++        } catch (IllegalAccessException ex) {
+             throw (InternalError)
+                 new InternalError("Exception invoking hasStaticInitializer").initCause(ex);
+         }
+@@ -616,8 +619,16 @@
+                     OptionalDataException.class.getDeclaredConstructor(Boolean.TYPE);
+             boolCtor.setAccessible(true);
+             return boolCtor.newInstance(bool);
+-        } catch (NoSuchMethodException | InstantiationException|
+-                IllegalAccessException|InvocationTargetException ex) {
++        } catch (NoSuchMethodException ex) {
++            throw (InternalError)
++                new InternalError("unable to create OptionalDataException").initCause(ex);
++        } catch (InstantiationException ex) {
++            throw (InternalError)
++                new InternalError("unable to create OptionalDataException").initCause(ex);
++        } catch (IllegalAccessException ex) {
++            throw (InternalError)
++                new InternalError("unable to create OptionalDataException").initCause(ex);
++        } catch (InvocationTargetException ex) {
+             throw (InternalError)
+                 new InternalError("unable to create OptionalDataException").initCause(ex);
+         }
+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	2017-04-05 06:24:02.710583053 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/x509/X509CertImpl.java	2017-04-05 06:24:53.541774619 +0100
+@@ -1936,7 +1936,9 @@
+                 byte2hex(digest[i], buf);
+             }
+             fingerPrint = buf.toString();
+-        } catch (NoSuchAlgorithmException | CertificateEncodingException e) {
++        } catch (NoSuchAlgorithmException e) {
++            // ignored
++        } catch (CertificateEncodingException e) {
+             // ignored
+         }
+         return fingerPrint;
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/net/httpserver/spi/HttpServerProvider.java	2017-04-06 00:49:26.316084950 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/net/httpserver/spi/HttpServerProvider.java	2017-04-06 00:50:37.090952124 +0100
+@@ -85,10 +85,13 @@
+                                     ClassLoader.getSystemClassLoader());
+             provider = (HttpServerProvider)c.newInstance();
+             return true;
+-        } catch (ClassNotFoundException |
+-                 IllegalAccessException |
+-                 InstantiationException |
+-                 SecurityException x) {
++        } catch (ClassNotFoundException x) {
++            throw new ServiceConfigurationError(x);
++        } catch (IllegalAccessException x) {
++            throw new ServiceConfigurationError(x);
++        } catch (InstantiationException x) {
++            throw new ServiceConfigurationError(x);
++        } catch (SecurityException x) {
+             throw new ServiceConfigurationError(x);
+         }
+     }
+--- openjdk-boot.orig/jdk/src/share/classes/sun/net/ftp/FtpClientProvider.java	2017-04-06 04:24:15.396440889 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/net/ftp/FtpClientProvider.java	2017-04-06 04:25:03.467669795 +0100
+@@ -70,10 +70,13 @@
+             Class<?> c = Class.forName(cm, true, null);
+             provider = (FtpClientProvider) c.newInstance();
+             return true;
+-        } catch (ClassNotFoundException |
+-                 IllegalAccessException |
+-                 InstantiationException |
+-                 SecurityException x) {
++        } catch (ClassNotFoundException x) {
++            throw new ServiceConfigurationError(x.toString());
++        } catch (IllegalAccessException x) {
++            throw new ServiceConfigurationError(x.toString());
++        } catch (InstantiationException x) {
++            throw new ServiceConfigurationError(x.toString());
++        } catch (SecurityException x) {
+             throw new ServiceConfigurationError(x.toString());
+         }
+     }
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/jndi/ldap/AbstractLdapNamingEnumeration.java openjdk-boot/jdk/src/share/classes/com/sun/jndi/ldap/AbstractLdapNamingEnumeration.java
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/jndi/ldap/AbstractLdapNamingEnumeration.java	2017-04-06 05:07:07.423235486 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/jndi/ldap/AbstractLdapNamingEnumeration.java	2017-04-06 05:11:36.834917914 +0100
+@@ -147,7 +147,9 @@
+                 // convert referrals into a chain of LdapReferralException
+                 homeCtx.processReturnCode(res, listArg);
+ 
+-            } catch (LimitExceededException | PartialResultException e) {
++            } catch (LimitExceededException e) {
++                setNamingException(e);
++            } catch (PartialResultException e) {
+                 setNamingException(e);
+ 
+             }
+@@ -226,9 +228,13 @@
+                 // try to process another referral
+                 return hasMoreReferrals();
+ 
+-            } catch (LdapReferralException |
+-                     LimitExceededException |
+-                     PartialResultException e) {
++            } catch (LdapReferralException e) {
++                cleanup();
++                throw e;
++            } catch (LimitExceededException e) {
++                cleanup();
++                throw e;
++            } catch (PartialResultException e) {
+                 cleanup();
+                 throw e;
+ 
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/jndi/ldap/Connection.java openjdk-boot/jdk/src/share/classes/com/sun/jndi/ldap/Connection.java
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/jndi/ldap/Connection.java	2017-04-06 05:07:07.435235294 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/jndi/ldap/Connection.java	2017-04-06 05:10:34.611915195 +0100
+@@ -251,10 +251,13 @@
+             return inetSocketAddressCons.newInstance(new Object[]{
+                 host, new Integer(port)});
+ 
+-        } catch (ClassNotFoundException |
+-                 InstantiationException |
+-                 InvocationTargetException |
+-                 IllegalAccessException e) {
++        } catch (ClassNotFoundException e) {
++            throw new NoSuchMethodException();
++        } catch (InstantiationException e) {
++            throw new NoSuchMethodException();
++        } catch (InvocationTargetException e) {
++            throw new NoSuchMethodException();
++        } catch (IllegalAccessException e) {
+             throw new NoSuchMethodException();
+ 
+         }
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/jndi/ldap/LdapCtx.java openjdk-boot/jdk/src/share/classes/com/sun/jndi/ldap/LdapCtx.java
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/jndi/ldap/LdapCtx.java	2017-04-06 05:07:07.447235101 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/jndi/ldap/LdapCtx.java	2017-04-06 05:09:56.288529396 +0100
+@@ -560,7 +560,9 @@
+                 if (answer.resControls != null) {
+                     respCtls = appendVector(respCtls, answer.resControls);
+                 }
+-            } catch (NamingException | IOException ae) {
++            } catch (NamingException ae) {
++                addEx = ae;
++            } catch (IOException ae) {
+                 addEx = ae;
+             }
+ 
--- a/patches/boot/ecj-stringswitch.patch	Tue Apr 04 03:29:16 2017 +0100
+++ b/patches/boot/ecj-stringswitch.patch	Fri Apr 14 07:14:20 2017 +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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/ClassReader.java	2016-09-21 04:56:42.479974458 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/ClassReader.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/ClassReader.java	2017-04-04 13:15:36.557971350 +0100
 @@ -350,19 +350,16 @@
              if (attrCommands != null) {
                  Attribute.Layout 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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java	2016-09-21 04:55:45.672897910 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java	2017-04-04 13:15:36.557971350 +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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Package.java	2016-09-21 04:55:45.672897910 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Package.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Package.java	2017-04-04 13:15:36.557971350 +0100
 @@ -1107,30 +1107,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/security/ntlm/NTLM.java	2016-09-21 04:55:45.672897910 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/security/ntlm/NTLM.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/security/ntlm/NTLM.java	2017-04-04 13:15:36.557971350 +0100
 @@ -65,17 +65,23 @@
  
      protected NTLM(String version) throws NTLMException {
@@ -181,9 +181,223 @@
          try {
              fac = SecretKeyFactory.getInstance ("DES");
              cipher = Cipher.getInstance ("DES/ECB/NoPadding");
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/security/sasl/digest/DigestMD5Base.java openjdk-boot/jdk/src/share/classes/com/sun/security/sasl/digest/DigestMD5Base.java
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/security/sasl/digest/DigestMD5Base.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/security/sasl/digest/DigestMD5Base.java	2017-04-04 13:15:36.557971350 +0100
+@@ -1579,45 +1579,42 @@
+         KeySpec spec = null;
+         SecretKeyFactory desFactory =
+             SecretKeyFactory.getInstance(desStrength);
+-        switch (desStrength) {
+-            case "des":
+-                spec = new DESKeySpec(subkey1, 0);
+-                if (logger.isLoggable(Level.FINEST)) {
+-                    traceOutput(DP_CLASS_NAME, "makeDesKeys",
+-                        "DIGEST42:DES key input: ", input);
+-                    traceOutput(DP_CLASS_NAME, "makeDesKeys",
+-                        "DIGEST43:DES key parity-adjusted: ", subkey1);
+-                    traceOutput(DP_CLASS_NAME, "makeDesKeys",
+-                        "DIGEST44:DES key material: ", ((DESKeySpec)spec).getKey());
+-                    logger.log(Level.FINEST, "DIGEST45: is parity-adjusted? {0}",
+-                        Boolean.valueOf(DESKeySpec.isParityAdjusted(subkey1, 0)));
+-                }
+-                break;
+-            case "desede":
+-                // Generate second subkey using second 7 bytes
+-                byte[] subkey2 = addDesParity(input, 7, 7);
+-                // Construct 24-byte encryption-decryption-encryption sequence
+-                byte[] ede = new byte[subkey1.length*2+subkey2.length];
+-                System.arraycopy(subkey1, 0, ede, 0, subkey1.length);
+-                System.arraycopy(subkey2, 0, ede, subkey1.length, subkey2.length);
+-                System.arraycopy(subkey1, 0, ede, subkey1.length+subkey2.length,
+-                    subkey1.length);
+-                spec = new DESedeKeySpec(ede, 0);
+-                if (logger.isLoggable(Level.FINEST)) {
+-                    traceOutput(DP_CLASS_NAME, "makeDesKeys",
+-                        "DIGEST46:3DES key input: ", input);
+-                    traceOutput(DP_CLASS_NAME, "makeDesKeys",
+-                        "DIGEST47:3DES key ede: ", ede);
+-                    traceOutput(DP_CLASS_NAME, "makeDesKeys",
+-                        "DIGEST48:3DES key material: ",
+-                        ((DESedeKeySpec)spec).getKey());
+-                    logger.log(Level.FINEST, "DIGEST49: is parity-adjusted? ",
+-                        Boolean.valueOf(DESedeKeySpec.isParityAdjusted(ede, 0)));
+-                }
+-                break;
+-            default:
+-                throw new IllegalArgumentException("Invalid DES strength:" +
+-                    desStrength);
++        if ("des".equals(desStrength)) {
++            spec = new DESKeySpec(subkey1, 0);
++            if (logger.isLoggable(Level.FINEST)) {
++                traceOutput(DP_CLASS_NAME, "makeDesKeys",
++                            "DIGEST42:DES key input: ", input);
++                traceOutput(DP_CLASS_NAME, "makeDesKeys",
++                            "DIGEST43:DES key parity-adjusted: ", subkey1);
++                traceOutput(DP_CLASS_NAME, "makeDesKeys",
++                            "DIGEST44:DES key material: ", ((DESKeySpec)spec).getKey());
++                logger.log(Level.FINEST, "DIGEST45: is parity-adjusted? {0}",
++                           Boolean.valueOf(DESKeySpec.isParityAdjusted(subkey1, 0)));
++            }
++        } else if ("desede".equals(desStrength)) {
++            // Generate second subkey using second 7 bytes
++            byte[] subkey2 = addDesParity(input, 7, 7);
++            // Construct 24-byte encryption-decryption-encryption sequence
++            byte[] ede = new byte[subkey1.length*2+subkey2.length];
++            System.arraycopy(subkey1, 0, ede, 0, subkey1.length);
++            System.arraycopy(subkey2, 0, ede, subkey1.length, subkey2.length);
++            System.arraycopy(subkey1, 0, ede, subkey1.length+subkey2.length,
++                             subkey1.length);
++            spec = new DESedeKeySpec(ede, 0);
++            if (logger.isLoggable(Level.FINEST)) {
++                traceOutput(DP_CLASS_NAME, "makeDesKeys",
++                            "DIGEST46:3DES key input: ", input);
++                traceOutput(DP_CLASS_NAME, "makeDesKeys",
++                            "DIGEST47:3DES key ede: ", ede);
++                traceOutput(DP_CLASS_NAME, "makeDesKeys",
++                            "DIGEST48:3DES key material: ",
++                            ((DESedeKeySpec)spec).getKey());
++                logger.log(Level.FINEST, "DIGEST49: is parity-adjusted? ",
++                           Boolean.valueOf(DESedeKeySpec.isParityAdjusted(ede, 0)));
++            }
++        } else {
++            throw new IllegalArgumentException("Invalid DES strength:" +
++                                               desStrength);
+         }
+         return desFactory.generateSecret(spec);
+     }
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/security/sasl/digest/DigestMD5Server.java openjdk-boot/jdk/src/share/classes/com/sun/security/sasl/digest/DigestMD5Server.java
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/security/sasl/digest/DigestMD5Server.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/security/sasl/digest/DigestMD5Server.java	2017-04-04 13:15:36.557971350 +0100
+@@ -461,23 +461,19 @@
+ 
+         // Check that QOP is one sent by server
+         byte cQop;
+-        switch (negotiatedQop) {
+-            case "auth":
+-                cQop = NO_PROTECTION;
+-                break;
+-            case "auth-int":
+-                cQop = INTEGRITY_ONLY_PROTECTION;
+-                integrity = true;
+-                rawSendSize = sendMaxBufSize - 16;
+-                break;
+-            case "auth-conf":
+-                cQop = PRIVACY_PROTECTION;
+-                integrity = privacy = true;
+-                rawSendSize = sendMaxBufSize - 26;
+-                break;
+-            default:
+-                throw new SaslException("DIGEST-MD5: digest response format " +
+-                    "violation. Invalid QOP: " + negotiatedQop);
++        if ("auth".equals(negotiatedQop)) {
++            cQop = NO_PROTECTION;
++        } else if ("auth-int".equals(negotiatedQop)) {
++            cQop = INTEGRITY_ONLY_PROTECTION;
++            integrity = true;
++            rawSendSize = sendMaxBufSize - 16;
++        } else if ("auth-conf".equals(negotiatedQop)) {
++            cQop = PRIVACY_PROTECTION;
++            integrity = privacy = true;
++            rawSendSize = sendMaxBufSize - 26;
++        } else {
++            throw new SaslException("DIGEST-MD5: digest response format " +
++                                    "violation. Invalid QOP: " + negotiatedQop);
+         }
+         if ((cQop&allQop) == 0) {
+             throw new SaslException("DIGEST-MD5: server does not support " +
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/security/sasl/ntlm/NTLMClient.java openjdk-boot/jdk/src/share/classes/com/sun/security/sasl/ntlm/NTLMClient.java
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/security/sasl/ntlm/NTLMClient.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/security/sasl/ntlm/NTLMClient.java	2017-04-04 13:15:36.557971350 +0100
+@@ -205,13 +205,12 @@
+         if (!isComplete()) {
+             throw new IllegalStateException("authentication not complete");
+         }
+-        switch (propName) {
+-            case Sasl.QOP:
+-                return "auth";
+-            case NTLM_DOMAIN:
+-                return client.getDomain();
+-            default:
+-                return null;
++        if (Sasl.QOP.equals(propName)) {
++            return "auth";
++        } else if (NTLM_DOMAIN.equals(propName)) {
++            return client.getDomain();
++        } else {
++            return null;
+         }
+     }
+ 
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/security/sasl/ntlm/NTLMServer.java openjdk-boot/jdk/src/share/classes/com/sun/security/sasl/ntlm/NTLMServer.java
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/security/sasl/ntlm/NTLMServer.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/security/sasl/ntlm/NTLMServer.java	2017-04-04 13:15:36.557971350 +0100
+@@ -219,13 +219,12 @@
+         if (!isComplete()) {
+             throw new IllegalStateException("authentication not complete");
+         }
+-        switch (propName) {
+-            case Sasl.QOP:
+-                return "auth";
+-            case NTLM_HOSTNAME:
+-                return hostname;
+-            default:
+-                return null;
++        if (Sasl.QOP.equals(propName)) {
++            return "auth";
++        } else if (NTLM_HOSTNAME.equals(propName)) {
++            return hostname;
++        } else {
++            return null;
+         }
+     }
+ 
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/security/sasl/util/AbstractSaslImpl.java openjdk-boot/jdk/src/share/classes/com/sun/security/sasl/util/AbstractSaslImpl.java
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/security/sasl/util/AbstractSaslImpl.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/security/sasl/util/AbstractSaslImpl.java	2017-04-04 13:15:36.561971285 +0100
+@@ -155,23 +155,22 @@
+         if (!completed) {
+             throw new IllegalStateException("SASL authentication not completed");
+         }
+-        switch (propName) {
+-            case Sasl.QOP:
+-                if (privacy) {
+-                    return "auth-conf";
+-                } else if (integrity) {
+-                    return "auth-int";
+-                } else {
+-                    return "auth";
+-                }
+-            case Sasl.MAX_BUFFER:
+-                return Integer.toString(recvMaxBufSize);
+-            case Sasl.RAW_SEND_SIZE:
+-                return Integer.toString(rawSendSize);
+-            case MAX_SEND_BUF:
+-                return Integer.toString(sendMaxBufSize);
+-            default:
+-                return null;
++        if (Sasl.QOP.equals(propName)) {
++            if (privacy) {
++                return "auth-conf";
++            } else if (integrity) {
++                return "auth-int";
++            } else {
++                return "auth";
++            }
++        } else if (Sasl.MAX_BUFFER.equals(propName)) {
++            return Integer.toString(recvMaxBufSize);
++        } else if (Sasl.RAW_SEND_SIZE.equals(propName)) {
++            return Integer.toString(rawSendSize);
++        } else if (MAX_SEND_BUF.equals(propName)) {
++            return Integer.toString(sendMaxBufSize);
++        } else {
++            return null;
+         }
+     }
+ 
 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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandleNatives.java	2016-09-21 04:55:45.672897910 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/MethodHandleNatives.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandleNatives.java	2017-04-04 13:15:36.557971350 +0100
 @@ -328,12 +328,11 @@
                                       Object[] appendixResult) {
          try {
@@ -434,8 +648,8 @@
          }
          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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandleProxies.java	2016-09-21 04:55:45.672897910 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/MethodHandleProxies.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandleProxies.java	2017-04-04 13:15:36.557971350 +0100
 @@ -269,14 +269,16 @@
  
      private static
@@ -477,8 +691,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/launcher/LauncherHelper.java	2016-09-21 04:55:45.672897910 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/launcher/LauncherHelper.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/launcher/LauncherHelper.java	2017-04-04 13:15:36.557971350 +0100
 @@ -119,24 +119,20 @@
          String optStr = (opts.length > 1 && opts[1] != null)
                  ? opts[1].trim()
@@ -516,8 +730,8 @@
  
      /*
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/reflect/annotation/AnnotationInvocationHandler.java openjdk-boot/jdk/src/share/classes/sun/reflect/annotation/AnnotationInvocationHandler.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/reflect/annotation/AnnotationInvocationHandler.java	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/reflect/annotation/AnnotationInvocationHandler.java	2016-09-21 04:55:45.672897910 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/reflect/annotation/AnnotationInvocationHandler.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/reflect/annotation/AnnotationInvocationHandler.java	2017-04-04 13:15:36.557971350 +0100
 @@ -65,14 +65,12 @@
          if (paramTypes.length != 0)
              throw new AssertionError("Too many parameters for an annotation method");
@@ -537,8 +751,8 @@
          // Handle annotation member accessors
          Object result = memberValues.get(member);
 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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/Config.java	2016-09-21 04:55:45.676897844 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/Config.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/Config.java	2017-04-04 13:15:36.557971350 +0100
 @@ -428,14 +428,13 @@
          if (s == null) {
              return null;
@@ -558,278 +772,9 @@
      }
  
      /**
-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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/util/DisabledAlgorithmConstraints.java	2016-09-21 04:55:45.672897910 +0100
-@@ -228,19 +228,23 @@
-             GE;         // ">="
- 
-             static Operator of(String s) {
--                switch (s) {
--                    case "==":
--                        return EQ;
--                    case "!=":
--                        return NE;
--                    case "<":
--                        return LT;
--                    case "<=":
--                        return LE;
--                    case ">":
--                        return GT;
--                    case ">=":
--                        return GE;
-+                if ("==".equals(s)) {
-+                    return EQ;
-+                }
-+                if ("!=".equals(s)) {
-+                    return NE;
-+                }
-+                if ("<".equals(s)) {
-+                    return LT;
-+                }
-+                if ("<=".equals(s)) {
-+                    return LE;
-+                }
-+                if (">".equals(s)) {
-+                    return GT;
-+                }
-+                if (">=".equals(s)) {
-+                    return GE;
-                 }
- 
-                 throw new IllegalArgumentException(
-diff -Nru openjdk-boot.orig/jdk/src/solaris/classes/sun/security/smartcardio/PlatformPCSC.java openjdk-boot/jdk/src/solaris/classes/sun/security/smartcardio/PlatformPCSC.java
---- openjdk-boot.orig/jdk/src/solaris/classes/sun/security/smartcardio/PlatformPCSC.java	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/solaris/classes/sun/security/smartcardio/PlatformPCSC.java	2016-09-21 04:55:45.676897844 +0100
-@@ -101,19 +101,17 @@
-         k = lib.indexOf("$ARCH");
-         if (k != -1) {
-             String arch = System.getProperty("os.arch");
--            switch (arch) {
--            case "amd64":
-+	    if ("amd64".equals(arch)) {
-                 arch = "x86_64";
--                break;
--            case "ppc":
-+	    }
-+	    if ("ppc".equals(arch)) {
-                 arch = "powerpc";
--                break;
--            case "ppc64":
-+	    }
-+	    if ("ppc64".equals(arch)) {
-                 arch = "powerpc64";
--                break;
--            case "ppc64le":
-+	    }
-+            if ("ppc64le".equals(arch)) {
-                 arch = "powerpc64le";
--                break;
-             }
-             lib = replace(k, lib, "$ARCH", arch);
-         }
-diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/provider/certpath/X509CertPath.java openjdk-boot/jdk/src/share/classes/sun/security/provider/certpath/X509CertPath.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/provider/certpath/X509CertPath.java	2016-09-22 01:48:46.637378277 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/provider/certpath/X509CertPath.java	2016-09-22 01:50:21.179836041 +0100
-@@ -153,15 +153,12 @@
-             throws CertificateException {
-         super("X.509");
- 
--        switch (encoding) {
--            case PKIPATH_ENCODING:
--                certs = parsePKIPATH(is);
--                break;
--            case PKCS7_ENCODING:
--                certs = parsePKCS7(is);
--                break;
--            default:
--                throw new CertificateException("unsupported encoding");
-+        if (PKIPATH_ENCODING.equals(encoding)) {
-+	    certs = parsePKIPATH(is);
-+	} else if (PKCS7_ENCODING.equals(encoding)) {
-+	    certs = parsePKCS7(is);
-+	} else {
-+	    throw new CertificateException("unsupported encoding");
-         }
-     }
- 
-@@ -344,13 +341,12 @@
-      */
-     public byte[] getEncoded(String encoding)
-             throws CertificateEncodingException {
--        switch (encoding) {
--            case PKIPATH_ENCODING:
--                return encodePKIPATH();
--            case PKCS7_ENCODING:
--                return encodePKCS7();
--            default:
--                throw new CertificateEncodingException("unsupported encoding");
-+        if (PKIPATH_ENCODING.equals(encoding)) {
-+	    return encodePKIPATH();
-+	} else if (PKCS7_ENCODING.equals(encoding)) {
-+	    return encodePKCS7();
-+	} else {
-+	    throw new CertificateEncodingException("unsupported encoding");
-         }
-     }
- 
-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	2016-09-23 17:47:51.277522108 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/HandshakeMessage.java	2016-09-23 17:52:27.357088372 +0100
-@@ -823,16 +823,13 @@
-             sig = JsseJce.getSignature(
-                         preferableSignatureAlgorithm.getAlgorithmName());
-         } else {
--                switch (algorithm) {
--                    case "DSA":
--                        sig = JsseJce.getSignature(JsseJce.SIGNATURE_DSA);
--                        break;
--                    case "RSA":
--                        sig = RSASignature.getInstance();
--                        break;
--                    default:
--                        throw new SSLKeyException("neither an RSA or a DSA key");
--                }
-+            if ("DSA".equals(algorithm)) {
-+                sig = JsseJce.getSignature(JsseJce.SIGNATURE_DSA);
-+            } else if ("RSA".equals(algorithm)) {
-+                sig = RSASignature.getInstance();
-+            } else {
-+                throw new SSLKeyException("neither an RSA or a DSA key");
-+            }
-         }
- 
-         sig.initVerify(publicKey);
-@@ -1112,14 +1109,13 @@
- 
-     private static Signature getSignature(String keyAlgorithm)
-             throws NoSuchAlgorithmException {
--            switch (keyAlgorithm) {
--                case "EC":
--                    return JsseJce.getSignature(JsseJce.SIGNATURE_ECDSA);
--                case "RSA":
--                    return RSASignature.getInstance();
--                default:
--                    throw new NoSuchAlgorithmException("neither an RSA or a EC key");
--            }
-+        if ("EC".equals(keyAlgorithm)) {
-+            return JsseJce.getSignature(JsseJce.SIGNATURE_ECDSA);
-+        } else if ("RSA".equals(keyAlgorithm)) {
-+            return RSASignature.getInstance();
-+        } else {
-+            throw new NoSuchAlgorithmException("neither an RSA or a EC key");
-+        }
-     }
- 
-     private void updateSignature(Signature sig, byte clntNonce[],
-@@ -1627,17 +1623,16 @@
-      */
-     private static Signature getSignature(ProtocolVersion protocolVersion,
-             String algorithm) throws GeneralSecurityException {
--            switch (algorithm) {
--                case "RSA":
--                    return RSASignature.getInternalInstance();
--                case "DSA":
--                    return JsseJce.getSignature(JsseJce.SIGNATURE_RAWDSA);
--                case "EC":
--                    return JsseJce.getSignature(JsseJce.SIGNATURE_RAWECDSA);
--                default:
--                    throw new SignatureException("Unrecognized algorithm: "
--                        + algorithm);
--            }
-+        if ("RSA".equals(algorithm)) {
-+            return RSASignature.getInternalInstance();
-+        } else if ("DSA".equals(algorithm)) {
-+            return JsseJce.getSignature(JsseJce.SIGNATURE_RAWDSA);
-+        } else if ("EC".equals(algorithm)) {
-+            return JsseJce.getSignature(JsseJce.SIGNATURE_RAWECDSA);
-+        } else {
-+            throw new SignatureException("Unrecognized algorithm: "
-+                                         + algorithm);
-+        }
-     }
- 
-     /*
-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	2016-09-23 17:47:51.305521658 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/X509KeyManagerImpl.java	2016-09-23 17:52:23.493150294 +0100
-@@ -525,43 +525,38 @@
-                 if (ku != null) {
-                     String algorithm = cert.getPublicKey().getAlgorithm();
-                     boolean kuSignature = getBit(ku, 0);
--                    switch (algorithm) {
--                        case "RSA":
--                            // require either signature bit
--                            // or if server also allow key encipherment bit
--                            if (kuSignature == false) {
--                                if ((this == CLIENT) || (getBit(ku, 2) == false)) {
--                                    return CheckResult.EXTENSION_MISMATCH;
--                                }
--                            }
--                            break;
--                        case "DSA":
--                            // require signature bit
--                            if (kuSignature == false) {
--                                return CheckResult.EXTENSION_MISMATCH;
--                            }
--                            break;
--                        case "DH":
--                            // require keyagreement bit
--                            if (getBit(ku, 4) == false) {
--                                return CheckResult.EXTENSION_MISMATCH;
--                            }
--                            break;
--                        case "EC":
--                            // require signature bit
--                            if (kuSignature == false) {
--                                return CheckResult.EXTENSION_MISMATCH;
--                            }
--                            // For servers, also require key agreement.
--                            // This is not totally accurate as the keyAgreement bit
--                            // is only necessary for static ECDH key exchange and
--                            // not ephemeral ECDH. We leave it in for now until
--                            // there are signs that this check causes problems
--                            // for real world EC certificates.
--                            if ((this == SERVER) && (getBit(ku, 4) == false)) {
-+                    if ("RSA".equals(algorithm)) {
-+                        // require either signature bit
-+                        // or if server also allow key encipherment bit
-+                        if (kuSignature == false) {
-+                            if ((this == CLIENT) || (getBit(ku, 2) == false)) {
-                                 return CheckResult.EXTENSION_MISMATCH;
-                             }
--                            break;
-+                        }
-+                    } else if ("DSA".equals(algorithm)) {
-+                        // require signature bit
-+                        if (kuSignature == false) {
-+                            return CheckResult.EXTENSION_MISMATCH;
-+                        }
-+                    } else if ("DH".equals(algorithm)) {
-+                        // require keyagreement bit
-+                        if (getBit(ku, 4) == false) {
-+                            return CheckResult.EXTENSION_MISMATCH;
-+                        }
-+                    } else if ("EC".equals(algorithm)) {
-+                        // require signature bit
-+                        if (kuSignature == false) {
-+                            return CheckResult.EXTENSION_MISMATCH;
-+                        }
-+                        // For servers, also require key agreement.
-+                        // This is not totally accurate as the keyAgreement bit
-+                        // is only necessary for static ECDH key exchange and
-+                        // not ephemeral ECDH. We leave it in for now until
-+                        // there are signs that this check causes problems
-+                        // for real world EC certificates.
-+                        if ((this == SERVER) && (getBit(ku, 4) == false)) {
-+                            return CheckResult.EXTENSION_MISMATCH;
-+                        }
-                     }
-                 }
-             } catch (CertificateException e) {
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/pkcs11/Config.java openjdk-boot/jdk/src/share/classes/sun/security/pkcs11/Config.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/pkcs11/Config.java	2016-09-23 17:57:17.100442422 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/pkcs11/Config.java	2016-09-23 18:01:58.299928821 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/pkcs11/Config.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/pkcs11/Config.java	2017-04-04 13:15:36.557971350 +0100
 @@ -574,13 +574,12 @@
  
      private boolean parseBoolean() throws IOException {
@@ -875,8 +820,8 @@
      }
  
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/pkcs11/P11Key.java openjdk-boot/jdk/src/share/classes/sun/security/pkcs11/P11Key.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/pkcs11/P11Key.java	2016-09-23 17:57:17.108442294 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/pkcs11/P11Key.java	2016-09-23 18:01:58.287929014 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/pkcs11/P11Key.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/pkcs11/P11Key.java	2017-04-04 13:15:36.557971350 +0100
 @@ -304,22 +304,21 @@
      // we assume that all components of public keys are always accessible
      static PublicKey publicKey(Session session, long keyID, String algorithm,
@@ -995,217 +940,649 @@
              }
          }
      }
-diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/security/sasl/digest/DigestMD5Base.java openjdk-boot/jdk/src/share/classes/com/sun/security/sasl/digest/DigestMD5Base.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/security/sasl/digest/DigestMD5Base.java	2016-09-24 00:05:03.122266846 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/security/sasl/digest/DigestMD5Base.java	2016-09-24 00:11:08.200316405 +0100
-@@ -1579,45 +1579,42 @@
-         KeySpec spec = null;
-         SecretKeyFactory desFactory =
-             SecretKeyFactory.getInstance(desStrength);
--        switch (desStrength) {
--            case "des":
--                spec = new DESKeySpec(subkey1, 0);
--                if (logger.isLoggable(Level.FINEST)) {
--                    traceOutput(DP_CLASS_NAME, "makeDesKeys",
--                        "DIGEST42:DES key input: ", input);
--                    traceOutput(DP_CLASS_NAME, "makeDesKeys",
--                        "DIGEST43:DES key parity-adjusted: ", subkey1);
--                    traceOutput(DP_CLASS_NAME, "makeDesKeys",
--                        "DIGEST44:DES key material: ", ((DESKeySpec)spec).getKey());
--                    logger.log(Level.FINEST, "DIGEST45: is parity-adjusted? {0}",
--                        Boolean.valueOf(DESKeySpec.isParityAdjusted(subkey1, 0)));
--                }
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/provider/certpath/X509CertPath.java openjdk-boot/jdk/src/share/classes/sun/security/provider/certpath/X509CertPath.java
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/provider/certpath/X509CertPath.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/provider/certpath/X509CertPath.java	2017-04-04 13:15:36.557971350 +0100
+@@ -153,15 +153,12 @@
+             throws CertificateException {
+         super("X.509");
+ 
+-        switch (encoding) {
+-            case PKIPATH_ENCODING:
+-                certs = parsePKIPATH(is);
 -                break;
--            case "desede":
--                // Generate second subkey using second 7 bytes
--                byte[] subkey2 = addDesParity(input, 7, 7);
--                // Construct 24-byte encryption-decryption-encryption sequence
--                byte[] ede = new byte[subkey1.length*2+subkey2.length];
--                System.arraycopy(subkey1, 0, ede, 0, subkey1.length);
--                System.arraycopy(subkey2, 0, ede, subkey1.length, subkey2.length);
--                System.arraycopy(subkey1, 0, ede, subkey1.length+subkey2.length,
--                    subkey1.length);
--                spec = new DESedeKeySpec(ede, 0);
--                if (logger.isLoggable(Level.FINEST)) {
--                    traceOutput(DP_CLASS_NAME, "makeDesKeys",
--                        "DIGEST46:3DES key input: ", input);
--                    traceOutput(DP_CLASS_NAME, "makeDesKeys",
--                        "DIGEST47:3DES key ede: ", ede);
--                    traceOutput(DP_CLASS_NAME, "makeDesKeys",
--                        "DIGEST48:3DES key material: ",
--                        ((DESedeKeySpec)spec).getKey());
--                    logger.log(Level.FINEST, "DIGEST49: is parity-adjusted? ",
--                        Boolean.valueOf(DESedeKeySpec.isParityAdjusted(ede, 0)));
--                }
+-            case PKCS7_ENCODING:
+-                certs = parsePKCS7(is);
 -                break;
 -            default:
--                throw new IllegalArgumentException("Invalid DES strength:" +
--                    desStrength);
-+        if ("des".equals(desStrength)) {
-+            spec = new DESKeySpec(subkey1, 0);
-+            if (logger.isLoggable(Level.FINEST)) {
-+                traceOutput(DP_CLASS_NAME, "makeDesKeys",
-+                            "DIGEST42:DES key input: ", input);
-+                traceOutput(DP_CLASS_NAME, "makeDesKeys",
-+                            "DIGEST43:DES key parity-adjusted: ", subkey1);
-+                traceOutput(DP_CLASS_NAME, "makeDesKeys",
-+                            "DIGEST44:DES key material: ", ((DESKeySpec)spec).getKey());
-+                logger.log(Level.FINEST, "DIGEST45: is parity-adjusted? {0}",
-+                           Boolean.valueOf(DESKeySpec.isParityAdjusted(subkey1, 0)));
-+            }
-+        } else if ("desede".equals(desStrength)) {
-+            // Generate second subkey using second 7 bytes
-+            byte[] subkey2 = addDesParity(input, 7, 7);
-+            // Construct 24-byte encryption-decryption-encryption sequence
-+            byte[] ede = new byte[subkey1.length*2+subkey2.length];
-+            System.arraycopy(subkey1, 0, ede, 0, subkey1.length);
-+            System.arraycopy(subkey2, 0, ede, subkey1.length, subkey2.length);
-+            System.arraycopy(subkey1, 0, ede, subkey1.length+subkey2.length,
-+                             subkey1.length);
-+            spec = new DESedeKeySpec(ede, 0);
-+            if (logger.isLoggable(Level.FINEST)) {
-+                traceOutput(DP_CLASS_NAME, "makeDesKeys",
-+                            "DIGEST46:3DES key input: ", input);
-+                traceOutput(DP_CLASS_NAME, "makeDesKeys",
-+                            "DIGEST47:3DES key ede: ", ede);
-+                traceOutput(DP_CLASS_NAME, "makeDesKeys",
-+                            "DIGEST48:3DES key material: ",
-+                            ((DESedeKeySpec)spec).getKey());
-+                logger.log(Level.FINEST, "DIGEST49: is parity-adjusted? ",
-+                           Boolean.valueOf(DESedeKeySpec.isParityAdjusted(ede, 0)));
-+            }
-+        } else {
-+            throw new IllegalArgumentException("Invalid DES strength:" +
-+                                               desStrength);
+-                throw new CertificateException("unsupported encoding");
++        if (PKIPATH_ENCODING.equals(encoding)) {
++	    certs = parsePKIPATH(is);
++	} else if (PKCS7_ENCODING.equals(encoding)) {
++	    certs = parsePKCS7(is);
++	} else {
++	    throw new CertificateException("unsupported encoding");
          }
-         return desFactory.generateSecret(spec);
      }
-diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/security/sasl/digest/DigestMD5Server.java openjdk-boot/jdk/src/share/classes/com/sun/security/sasl/digest/DigestMD5Server.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/security/sasl/digest/DigestMD5Server.java	2016-09-24 00:05:03.130266715 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/security/sasl/digest/DigestMD5Server.java	2016-09-24 00:11:08.172316862 +0100
-@@ -461,23 +461,19 @@
  
-         // Check that QOP is one sent by server
-         byte cQop;
--        switch (negotiatedQop) {
--            case "auth":
--                cQop = NO_PROTECTION;
--                break;
--            case "auth-int":
--                cQop = INTEGRITY_ONLY_PROTECTION;
--                integrity = true;
--                rawSendSize = sendMaxBufSize - 16;
--                break;
--            case "auth-conf":
--                cQop = PRIVACY_PROTECTION;
--                integrity = privacy = true;
--                rawSendSize = sendMaxBufSize - 26;
--                break;
+@@ -344,13 +341,12 @@
+      */
+     public byte[] getEncoded(String encoding)
+             throws CertificateEncodingException {
+-        switch (encoding) {
+-            case PKIPATH_ENCODING:
+-                return encodePKIPATH();
+-            case PKCS7_ENCODING:
+-                return encodePKCS7();
 -            default:
--                throw new SaslException("DIGEST-MD5: digest response format " +
--                    "violation. Invalid QOP: " + negotiatedQop);
-+        if ("auth".equals(negotiatedQop)) {
-+            cQop = NO_PROTECTION;
-+        } else if ("auth-int".equals(negotiatedQop)) {
-+            cQop = INTEGRITY_ONLY_PROTECTION;
-+            integrity = true;
-+            rawSendSize = sendMaxBufSize - 16;
-+        } else if ("auth-conf".equals(negotiatedQop)) {
-+            cQop = PRIVACY_PROTECTION;
-+            integrity = privacy = true;
-+            rawSendSize = sendMaxBufSize - 26;
-+        } else {
-+            throw new SaslException("DIGEST-MD5: digest response format " +
-+                                    "violation. Invalid QOP: " + negotiatedQop);
-         }
-         if ((cQop&allQop) == 0) {
-             throw new SaslException("DIGEST-MD5: server does not support " +
-diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/security/sasl/ntlm/NTLMClient.java openjdk-boot/jdk/src/share/classes/com/sun/security/sasl/ntlm/NTLMClient.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/security/sasl/ntlm/NTLMClient.java	2016-09-24 00:05:03.142266519 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/security/sasl/ntlm/NTLMClient.java	2016-09-24 00:11:08.164316992 +0100
-@@ -205,13 +205,12 @@
-         if (!isComplete()) {
-             throw new IllegalStateException("authentication not complete");
-         }
--        switch (propName) {
--            case Sasl.QOP:
--                return "auth";
--            case NTLM_DOMAIN:
--                return client.getDomain();
--            default:
--                return null;
-+        if (Sasl.QOP.equals(propName)) {
-+            return "auth";
-+        } else if (NTLM_DOMAIN.equals(propName)) {
-+            return client.getDomain();
-+        } else {
-+            return null;
+-                throw new CertificateEncodingException("unsupported encoding");
++        if (PKIPATH_ENCODING.equals(encoding)) {
++	    return encodePKIPATH();
++	} else if (PKCS7_ENCODING.equals(encoding)) {
++	    return encodePKCS7();
++	} else {
++	    throw new CertificateEncodingException("unsupported encoding");
          }
      }
  
-diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/security/sasl/ntlm/NTLMServer.java openjdk-boot/jdk/src/share/classes/com/sun/security/sasl/ntlm/NTLMServer.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/security/sasl/ntlm/NTLMServer.java	2016-09-24 00:05:03.154266324 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/security/sasl/ntlm/NTLMServer.java	2016-09-24 00:11:08.156317122 +0100
-@@ -219,13 +219,12 @@
-         if (!isComplete()) {
-             throw new IllegalStateException("authentication not complete");
+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	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/HandshakeMessage.java	2017-04-04 13:15:36.557971350 +0100
+@@ -818,16 +818,13 @@
+             sig = JsseJce.getSignature(
+                         preferableSignatureAlgorithm.getAlgorithmName());
+         } else {
+-                switch (algorithm) {
+-                    case "DSA":
+-                        sig = JsseJce.getSignature(JsseJce.SIGNATURE_DSA);
+-                        break;
+-                    case "RSA":
+-                        sig = RSASignature.getInstance();
+-                        break;
+-                    default:
+-                        throw new SSLKeyException("neither an RSA or a DSA key");
+-                }
++            if ("DSA".equals(algorithm)) {
++                sig = JsseJce.getSignature(JsseJce.SIGNATURE_DSA);
++            } else if ("RSA".equals(algorithm)) {
++                sig = RSASignature.getInstance();
++            } else {
++                throw new SSLKeyException("neither an RSA or a DSA key");
++            }
          }
--        switch (propName) {
--            case Sasl.QOP:
--                return "auth";
--            case NTLM_HOSTNAME:
--                return hostname;
--            default:
--                return null;
-+        if (Sasl.QOP.equals(propName)) {
-+            return "auth";
-+        } else if (NTLM_HOSTNAME.equals(propName)) {
-+            return hostname;
+ 
+         sig.initVerify(publicKey);
+@@ -1107,14 +1104,13 @@
+ 
+     private static Signature getSignature(String keyAlgorithm)
+             throws NoSuchAlgorithmException {
+-            switch (keyAlgorithm) {
+-                case "EC":
+-                    return JsseJce.getSignature(JsseJce.SIGNATURE_ECDSA);
+-                case "RSA":
+-                    return RSASignature.getInstance();
+-                default:
+-                    throw new NoSuchAlgorithmException("neither an RSA or a EC key");
+-            }
++        if ("EC".equals(keyAlgorithm)) {
++            return JsseJce.getSignature(JsseJce.SIGNATURE_ECDSA);
++        } else if ("RSA".equals(keyAlgorithm)) {
++            return RSASignature.getInstance();
 +        } else {
-+            return null;
-         }
++            throw new NoSuchAlgorithmException("neither an RSA or a EC key");
++        }
+     }
+ 
+     private void updateSignature(Signature sig, byte clntNonce[],
+@@ -1622,17 +1618,16 @@
+      */
+     private static Signature getSignature(ProtocolVersion protocolVersion,
+             String algorithm) throws GeneralSecurityException {
+-            switch (algorithm) {
+-                case "RSA":
+-                    return RSASignature.getInternalInstance();
+-                case "DSA":
+-                    return JsseJce.getSignature(JsseJce.SIGNATURE_RAWDSA);
+-                case "EC":
+-                    return JsseJce.getSignature(JsseJce.SIGNATURE_RAWECDSA);
+-                default:
+-                    throw new SignatureException("Unrecognized algorithm: "
+-                        + algorithm);
+-            }
++        if ("RSA".equals(algorithm)) {
++            return RSASignature.getInternalInstance();
++        } else if ("DSA".equals(algorithm)) {
++            return JsseJce.getSignature(JsseJce.SIGNATURE_RAWDSA);
++        } else if ("EC".equals(algorithm)) {
++            return JsseJce.getSignature(JsseJce.SIGNATURE_RAWECDSA);
++        } else {
++            throw new SignatureException("Unrecognized algorithm: "
++                                         + algorithm);
++        }
      }
  
-diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/security/sasl/util/AbstractSaslImpl.java openjdk-boot/jdk/src/share/classes/com/sun/security/sasl/util/AbstractSaslImpl.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/security/sasl/util/AbstractSaslImpl.java	2016-09-24 00:05:03.166266129 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/security/sasl/util/AbstractSaslImpl.java	2016-09-24 00:11:08.152317188 +0100
-@@ -155,23 +155,22 @@
-         if (!completed) {
-             throw new IllegalStateException("SASL authentication not completed");
+     /*
+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	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/X509KeyManagerImpl.java	2017-04-04 13:15:36.557971350 +0100
+@@ -525,43 +525,38 @@
+                 if (ku != null) {
+                     String algorithm = cert.getPublicKey().getAlgorithm();
+                     boolean kuSignature = getBit(ku, 0);
+-                    switch (algorithm) {
+-                        case "RSA":
+-                            // require either signature bit
+-                            // or if server also allow key encipherment bit
+-                            if (kuSignature == false) {
+-                                if ((this == CLIENT) || (getBit(ku, 2) == false)) {
+-                                    return CheckResult.EXTENSION_MISMATCH;
+-                                }
+-                            }
+-                            break;
+-                        case "DSA":
+-                            // require signature bit
+-                            if (kuSignature == false) {
+-                                return CheckResult.EXTENSION_MISMATCH;
+-                            }
+-                            break;
+-                        case "DH":
+-                            // require keyagreement bit
+-                            if (getBit(ku, 4) == false) {
+-                                return CheckResult.EXTENSION_MISMATCH;
+-                            }
+-                            break;
+-                        case "EC":
+-                            // require signature bit
+-                            if (kuSignature == false) {
+-                                return CheckResult.EXTENSION_MISMATCH;
+-                            }
+-                            // For servers, also require key agreement.
+-                            // This is not totally accurate as the keyAgreement bit
+-                            // is only necessary for static ECDH key exchange and
+-                            // not ephemeral ECDH. We leave it in for now until
+-                            // there are signs that this check causes problems
+-                            // for real world EC certificates.
+-                            if ((this == SERVER) && (getBit(ku, 4) == false)) {
++                    if ("RSA".equals(algorithm)) {
++                        // require either signature bit
++                        // or if server also allow key encipherment bit
++                        if (kuSignature == false) {
++                            if ((this == CLIENT) || (getBit(ku, 2) == false)) {
+                                 return CheckResult.EXTENSION_MISMATCH;
+                             }
+-                            break;
++                        }
++                    } else if ("DSA".equals(algorithm)) {
++                        // require signature bit
++                        if (kuSignature == false) {
++                            return CheckResult.EXTENSION_MISMATCH;
++                        }
++                    } else if ("DH".equals(algorithm)) {
++                        // require keyagreement bit
++                        if (getBit(ku, 4) == false) {
++                            return CheckResult.EXTENSION_MISMATCH;
++                        }
++                    } else if ("EC".equals(algorithm)) {
++                        // require signature bit
++                        if (kuSignature == false) {
++                            return CheckResult.EXTENSION_MISMATCH;
++                        }
++                        // For servers, also require key agreement.
++                        // This is not totally accurate as the keyAgreement bit
++                        // is only necessary for static ECDH key exchange and
++                        // not ephemeral ECDH. We leave it in for now until
++                        // there are signs that this check causes problems
++                        // for real world EC certificates.
++                        if ((this == SERVER) && (getBit(ku, 4) == false)) {
++                            return CheckResult.EXTENSION_MISMATCH;
++                        }
+                     }
+                 }
+             } catch (CertificateException e) {
+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	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/util/DisabledAlgorithmConstraints.java	2017-04-04 13:16:32.753067002 +0100
+@@ -387,19 +387,23 @@
+             GE;         // ">="
+ 
+             static Operator of(String s) {
+-                switch (s) {
+-                    case "==":
+-                        return EQ;
+-                    case "!=":
+-                        return NE;
+-                    case "<":
+-                        return LT;
+-                    case "<=":
+-                        return LE;
+-                    case ">":
+-                        return GT;
+-                    case ">=":
+-                        return GE;
++                if ("==".equals(s)) {
++                    return EQ;
++                }
++                if ("!=".equals(s)) {
++                    return NE;
++                }
++                if ("<".equals(s)) {
++                    return LT;
++                }
++                if ("<=".equals(s)) {
++                    return LE;
++                }
++                if (">".equals(s)) {
++                    return GT;
++                }
++                if (">=".equals(s)) {
++                    return GE;
+                 }
+ 
+                 throw new IllegalArgumentException("Error in security " +
+diff -Nru openjdk-boot.orig/jdk/src/solaris/classes/sun/security/smartcardio/PlatformPCSC.java openjdk-boot/jdk/src/solaris/classes/sun/security/smartcardio/PlatformPCSC.java
+--- openjdk-boot.orig/jdk/src/solaris/classes/sun/security/smartcardio/PlatformPCSC.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/solaris/classes/sun/security/smartcardio/PlatformPCSC.java	2017-04-04 13:15:36.557971350 +0100
+@@ -101,19 +101,17 @@
+         k = lib.indexOf("$ARCH");
+         if (k != -1) {
+             String arch = System.getProperty("os.arch");
+-            switch (arch) {
+-            case "amd64":
++	    if ("amd64".equals(arch)) {
+                 arch = "x86_64";
+-                break;
+-            case "ppc":
++	    }
++	    if ("ppc".equals(arch)) {
+                 arch = "powerpc";
+-                break;
+-            case "ppc64":
++	    }
++	    if ("ppc64".equals(arch)) {
+                 arch = "powerpc64";
+-                break;
+-            case "ppc64le":
++	    }
++            if ("ppc64le".equals(arch)) {
+                 arch = "powerpc64le";
+-                break;
+             }
+             lib = replace(k, lib, "$ARCH", arch);
+         }
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/jndi/ldap/LdapCtx.java openjdk-boot/jdk/src/share/classes/com/sun/jndi/ldap/LdapCtx.java
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/jndi/ldap/LdapCtx.java	2017-04-07 15:22:02.796779767 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/jndi/ldap/LdapCtx.java	2017-04-07 15:36:19.702877596 +0100
+@@ -2163,66 +2163,50 @@
+         if (envprops == null || envprops.get(propName) == null) {
+             return null;
          }
 -        switch (propName) {
--            case Sasl.QOP:
--                if (privacy) {
--                    return "auth-conf";
--                } else if (integrity) {
--                    return "auth-int";
--                } else {
--                    return "auth";
--                }
--            case Sasl.MAX_BUFFER:
--                return Integer.toString(recvMaxBufSize);
--            case Sasl.RAW_SEND_SIZE:
--                return Integer.toString(rawSendSize);
--            case MAX_SEND_BUF:
--                return Integer.toString(sendMaxBufSize);
--            default:
--                return null;
-+        if (Sasl.QOP.equals(propName)) {
-+            if (privacy) {
-+                return "auth-conf";
-+            } else if (integrity) {
-+                return "auth-int";
+-            case REF_SEPARATOR:
+-                addrEncodingSeparator = DEFAULT_REF_SEPARATOR;
+-                break;
+-            case TYPES_ONLY:
++        if (REF_SEPARATOR.equals(propName)) {
++            addrEncodingSeparator = DEFAULT_REF_SEPARATOR;
++        } else if (TYPES_ONLY.equals(propName)) {
+                 typesOnly = DEFAULT_TYPES_ONLY;
+-                break;
+-            case DELETE_RDN:
++        } else if (DELETE_RDN.equals(propName)) {
+                 deleteRDN = DEFAULT_DELETE_RDN;
+-                break;
+-            case DEREF_ALIASES:
+-                derefAliases = DEFAULT_DEREF_ALIASES;
+-                break;
+-            case Context.BATCHSIZE:
+-                batchSize = DEFAULT_BATCH_SIZE;
+-                break;
+-            case REFERRAL_LIMIT:
+-                referralHopLimit = DEFAULT_REFERRAL_LIMIT;
+-                break;
+-            case Context.REFERRAL:
+-                setReferralMode(null, true);
+-                break;
+-            case BINARY_ATTRIBUTES:
+-                setBinaryAttributes(null);
+-                break;
+-            case CONNECT_TIMEOUT:
+-                connectTimeout = -1;
+-                break;
+-            case READ_TIMEOUT:
+-                readTimeout = -1;
+-                break;
+-            case WAIT_FOR_REPLY:
+-                waitForReply = true;
+-                break;
+-            case REPLY_QUEUE_SIZE:
+-                replyQueueSize = -1;
+-                break;
++        } else if (DEREF_ALIASES.equals(propName)) {
++            derefAliases = DEFAULT_DEREF_ALIASES;
++        } else if (Context.BATCHSIZE.equals(propName)) {
++            batchSize = DEFAULT_BATCH_SIZE;
++        } else if (REFERRAL_LIMIT.equals(propName)) {
++            referralHopLimit = DEFAULT_REFERRAL_LIMIT;
++        } else if (Context.REFERRAL.equals(propName)) {
++            setReferralMode(null, true);
++        } else if (BINARY_ATTRIBUTES.equals(propName)) {
++            setBinaryAttributes(null);
++        } else if (CONNECT_TIMEOUT.equals(propName)) {
++            connectTimeout = -1;
++        } else if (READ_TIMEOUT.equals(propName)) {
++            readTimeout = -1;
++        } else if (WAIT_FOR_REPLY.equals(propName)) {
++            waitForReply = true;
++        } else if (REPLY_QUEUE_SIZE.equals(propName)) {
++            replyQueueSize = -1;
+ 
+             // The following properties affect the connection
+ 
+-            case Context.SECURITY_PROTOCOL:
+-                closeConnection(SOFT_CLOSE);
+-                // De-activate SSL and reset the context's url and port number
+-                if (useSsl && !hasLdapsScheme) {
+-                    useSsl = false;
+-                    url = null;
+-                    if (useDefaultPortNumber) {
+-                        port_number = DEFAULT_PORT;
+-                    }
++        } else if (Context.SECURITY_PROTOCOL.equals(propName)) {
++            closeConnection(SOFT_CLOSE);
++            // De-activate SSL and reset the context's url and port number
++            if (useSsl && !hasLdapsScheme) {
++                useSsl = false;
++                url = null;
++                if (useDefaultPortNumber) {
++                    port_number = DEFAULT_PORT;
+                 }
+-                break;
+-            case VERSION:
+-            case SOCKET_FACTORY:
+-                closeConnection(SOFT_CLOSE);
+-                break;
+-            case Context.SECURITY_AUTHENTICATION:
+-            case Context.SECURITY_PRINCIPAL:
+-            case Context.SECURITY_CREDENTIALS:
+-                sharable = false;
+-                break;
++            }
++        } else if (VERSION.equals(propName) ||
++                   SOCKET_FACTORY.equals(propName)) {
++            closeConnection(SOFT_CLOSE);
++        } else if (Context.SECURITY_AUTHENTICATION.equals(propName) ||
++                   Context.SECURITY_PRINCIPAL.equals(propName) ||
++                   Context.SECURITY_CREDENTIALS.equals(propName)) {
++            sharable = false;
+         }
+ 
+         // Update environment; reconnection will use new props
+@@ -2238,66 +2222,50 @@
+             if (propVal == null) {
+                 return removeFromEnvironment(propName);
+             }
+-            switch (propName) {
+-                case REF_SEPARATOR:
+-                    setRefSeparator((String)propVal);
+-                    break;
+-                case TYPES_ONLY:
+-                    setTypesOnly((String)propVal);
+-                    break;
+-                case DELETE_RDN:
+-                    setDeleteRDN((String)propVal);
+-                    break;
+-                case DEREF_ALIASES:
+-                    setDerefAliases((String)propVal);
+-                    break;
+-                case Context.BATCHSIZE:
+-                    setBatchSize((String)propVal);
+-                    break;
+-                case REFERRAL_LIMIT:
+-                    setReferralLimit((String)propVal);
+-                    break;
+-                case Context.REFERRAL:
++            if (REF_SEPARATOR.equals(propName)) {
++                setRefSeparator((String)propVal);
++            } else if (TYPES_ONLY.equals(propName)) {
++                setTypesOnly((String)propVal);
++            } else if (DELETE_RDN.equals(propName)) {
++                setDeleteRDN((String)propVal);
++            } else if (DEREF_ALIASES.equals(propName)) {
++                setDerefAliases((String)propVal);
++            } else if (Context.BATCHSIZE.equals(propName)) {
++                setBatchSize((String)propVal);
++            } else if (REFERRAL_LIMIT.equals(propName)) {
++                setReferralLimit((String)propVal);
++            } else if (Context.REFERRAL.equals(propName)) {
+                     setReferralMode((String)propVal, true);
+-                    break;
+-                case BINARY_ATTRIBUTES:
+-                    setBinaryAttributes((String)propVal);
+-                    break;
+-                case CONNECT_TIMEOUT:
+-                    setConnectTimeout((String)propVal);
+-                    break;
+-                case READ_TIMEOUT:
+-                    setReadTimeout((String)propVal);
+-                    break;
+-                case WAIT_FOR_REPLY:
+-                    setWaitForReply((String)propVal);
+-                    break;
+-                case REPLY_QUEUE_SIZE:
+-                    setReplyQueueSize((String)propVal);
+-                    break;
++            } else if (BINARY_ATTRIBUTES.equals(propName)) {
++                setBinaryAttributes((String)propVal);
++            } else if (CONNECT_TIMEOUT.equals(propName)) {
++                setConnectTimeout((String)propVal);
++            } else if (READ_TIMEOUT.equals(propName)) {
++                setReadTimeout((String)propVal);
++            } else if (WAIT_FOR_REPLY.equals(propName)) {
++                setWaitForReply((String)propVal);
++            } else if (REPLY_QUEUE_SIZE.equals(propName)) {
++                setReplyQueueSize((String)propVal);
+ 
+             // The following properties affect the connection
+ 
+-                case Context.SECURITY_PROTOCOL:
+-                    closeConnection(SOFT_CLOSE);
+-                    // Activate SSL and reset the context's url and port number
+-                    if ("ssl".equals(propVal)) {
+-                        useSsl = true;
+-                        url = null;
+-                        if (useDefaultPortNumber) {
+-                            port_number = DEFAULT_SSL_PORT;
+-                        }
++            } else if (Context.SECURITY_PROTOCOL.equals(propName)) {
++                closeConnection(SOFT_CLOSE);
++                // Activate SSL and reset the context's url and port number
++                if ("ssl".equals(propVal)) {
++                    useSsl = true;
++                    url = null;
++                    if (useDefaultPortNumber) {
++                        port_number = DEFAULT_SSL_PORT;
+                     }
+-                    break;
+-                case VERSION:
+-                case SOCKET_FACTORY:
+-                    closeConnection(SOFT_CLOSE);
+-                    break;
+-                case Context.SECURITY_AUTHENTICATION:
+-                case Context.SECURITY_PRINCIPAL:
+-                case Context.SECURITY_CREDENTIALS:
+-                    sharable = false;
+-                    break;
++                }
++            } else if (VERSION.equals(propName) ||
++                       SOCKET_FACTORY.equals(propName)) {
++                closeConnection(SOFT_CLOSE);
++            } else if (Context.SECURITY_AUTHENTICATION.equals(propName) ||
++                       Context.SECURITY_PRINCIPAL.equals(propName) ||
++                       Context.SECURITY_CREDENTIALS.equals(propName)) {
++                sharable = false;
+             }
+ 
+             // Update environment; reconnection will use new props
+@@ -2414,19 +2382,15 @@
+     private void setReferralMode(String ref, boolean update) {
+         // First determine the referral mode
+         if (ref != null) {
+-            switch (ref) {
+-                case "follow":
++	    if ("follow".equals(ref)) {
+                     handleReferrals = LdapClient.LDAP_REF_FOLLOW;
+-                    break;
+-                case "throw":
+-                    handleReferrals = LdapClient.LDAP_REF_THROW;
+-                    break;
+-                case "ignore":
+-                    handleReferrals = LdapClient.LDAP_REF_IGNORE;
+-                    break;
+-                default:
+-                    throw new IllegalArgumentException(
+-                        "Illegal value for " + Context.REFERRAL + " property.");
++	    } else if ("throw".equals(ref)) {
++		handleReferrals = LdapClient.LDAP_REF_THROW;
++	    } else if ( "ignore".equals(ref)) {
++		handleReferrals = LdapClient.LDAP_REF_IGNORE;
++	    } else {
++		throw new IllegalArgumentException(
++                    "Illegal value for " + Context.REFERRAL + " property.");
+             }
+         } else {
+             handleReferrals = DEFAULT_REFERRAL_MODE;
+@@ -2449,22 +2413,17 @@
+      */
+     private void setDerefAliases(String deref) {
+         if (deref != null) {
+-            switch (deref) {
+-                case "never":
+-                    derefAliases = 0; // never de-reference aliases
+-                    break;
+-                case "searching":
+-                    derefAliases = 1; // de-reference aliases during searching
+-                    break;
+-                case "finding":
+-                    derefAliases = 2; // de-reference during name resolution
+-                    break;
+-                case "always":
+-                    derefAliases = 3; // always de-reference aliases
+-                    break;
+-                default:
+-                    throw new IllegalArgumentException("Illegal value for " +
+-                        DEREF_ALIASES + " property.");
++	    if ("never".equals(deref)) {
++		derefAliases = 0; // never de-reference aliases
++	    } else if ("searching".equals(deref)) {
++		derefAliases = 1; // de-reference aliases during searching
++	    } else if ("finding".equals(deref)) {
++		derefAliases = 2; // de-reference during name resolution
++	    } else if ("always".equals(deref)) {
++		derefAliases = 3; // always de-reference aliases
++	    } else {
++		throw new IllegalArgumentException("Illegal value for " +
++                    DEREF_ALIASES + " property.");
+             }
+         } else {
+             derefAliases = DEFAULT_DEREF_ALIASES;
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/Policy.java openjdk-boot/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/Policy.java
+--- openjdk-boot.orig/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/Policy.java	2017-04-07 16:43:10.660296981 +0100
++++ openjdk-boot/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/Policy.java	2017-04-07 16:45:55.481614942 +0100
+@@ -81,56 +81,48 @@
+         for (String entry : entries) {
+             String[] tokens = entry.split("\\s");
+             String type = tokens[0];
+-            switch(type) {
+-                case "disallowAlg":
+-                    if (tokens.length != 2) {
+-                        error(entry);
+-                    }
+-                    disallowedAlgs.add(URI.create(tokens[1]));
+-                    break;
+-                case "maxTransforms":
+-                    if (tokens.length != 2) {
+-                        error(entry);
+-                    }
+-                    maxTrans = Parsing.parseUnsignedInt(tokens[1]);
+-                    break;
+-                case "maxReferences":
+-                    if (tokens.length != 2) {
+-                        error(entry);
+-                    }
+-                    maxRefs = Parsing.parseUnsignedInt(tokens[1]);
+-                    break;
+-                case "disallowReferenceUriSchemes":
+-                    if (tokens.length == 1) {
+-                        error(entry);
+-                    }
+-                    for (int i = 1; i < tokens.length; i++) {
+-                        String scheme = tokens[i];
+-                        disallowedRefUriSchemes.add(
+-                            scheme.toLowerCase(Locale.ROOT));
+-                    }
+-                    break;
+-                case "minKeySize":
+-                    if (tokens.length != 3) {
+-                        error(entry);
+-                    }
+-                    minKeyMap.put(tokens[1],
+-                                  Parsing.parseUnsignedInt(tokens[2]));
+-                    break;
+-                case "noDuplicateIds":
+-                    if (tokens.length != 1) {
+-                        error(entry);
+-                    }
+-                    noDuplicateIds = true;
+-                    break;
+-                case "noRetrievalMethodLoops":
+-                    if (tokens.length != 1) {
+-                        error(entry);
+-                    }
+-                    noRMLoops = true;
+-                    break;
+-                default:
++            if ("disallowAlg".equals(type)) {
++                if (tokens.length != 2) {
+                     error(entry);
++                }
++                disallowedAlgs.add(URI.create(tokens[1]));
++            } else if ("maxTransforms".equals(type)) {
++                if (tokens.length != 2) {
++                    error(entry);
++                }
++                maxTrans = Parsing.parseUnsignedInt(tokens[1]);
++            } else if ("maxReferences".equals(type)) {
++                if (tokens.length != 2) {
++                    error(entry);
++                }
++                maxRefs = Parsing.parseUnsignedInt(tokens[1]);
++            } else if ("disallowReferenceUriSchemes".equals(type)) {
++                if (tokens.length == 1) {
++                    error(entry);
++                }
++                for (int i = 1; i < tokens.length; i++) {
++                    String scheme = tokens[i];
++                    disallowedRefUriSchemes.add(
++                        scheme.toLowerCase(Locale.ROOT));
++                }
++            } else if ("minKeySize".equals(type)) {
++                if (tokens.length != 3) {
++                    error(entry);
++                }
++                minKeyMap.put(tokens[1],
++                              Parsing.parseUnsignedInt(tokens[2]));
++            } else if ("noDuplicateIds".equals(type)) {
++                if (tokens.length != 1) {
++                    error(entry);
++                }
++                noDuplicateIds = true;
++            } else if ("noRetrievalMethodLoops".equals(type)) {
++                if (tokens.length != 1) {
++                    error(entry);
++                }
++                noRMLoops = true;
 +            } else {
-+                return "auth";
-+            }
-+        } else if (Sasl.MAX_BUFFER.equals(propName)) {
-+            return Integer.toString(recvMaxBufSize);
-+        } else if (Sasl.RAW_SEND_SIZE.equals(propName)) {
-+            return Integer.toString(rawSendSize);
-+        } else if (MAX_SEND_BUF.equals(propName)) {
-+            return Integer.toString(sendMaxBufSize);
-+        } else {
-+            return null;
++                error(entry);
+             }
          }
      }
- 
--- a/patches/boot/ecj-trywithresources.patch	Tue Apr 04 03:29:16 2017 +0100
+++ b/patches/boot/ecj-trywithresources.patch	Fri Apr 14 07:14:20 2017 +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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/BandStructure.java	2016-09-24 15:19:13.304801728 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/BandStructure.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/BandStructure.java	2017-04-04 19:12:04.788060862 +0100
 @@ -743,7 +743,9 @@
  
          private void dumpBand() throws IOException {
@@ -54,8 +54,8 @@
  
          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	2016-09-24 15:17:56.922022903 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java	2016-09-24 15:19:13.308801664 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java	2017-04-04 18:43:19.639569675 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java	2017-04-04 19:12:04.788060862 +0100
 @@ -151,8 +151,13 @@
                  if ("--config-file=".equals(state)) {
                      String propFile = av.remove(0);
@@ -109,8 +109,8 @@
      }
  
 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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/NativeUnpack.java	2016-09-24 15:19:13.308801664 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/NativeUnpack.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/NativeUnpack.java	2017-04-04 19:12:04.788060862 +0100
 @@ -245,9 +245,15 @@
      void run(File inFile, JarOutputStream jstream) throws IOException {
          // %%% maybe memory-map the file, and pass it straight into unpacker
@@ -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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageReader.java	2016-09-24 15:19:13.308801664 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageReader.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageReader.java	2017-04-04 19:12:04.788060862 +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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageWriter.java	2016-09-24 15:19:13.308801664 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageWriter.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageWriter.java	2017-04-04 19:12:04.788060862 +0100
 @@ -458,9 +458,15 @@
                  Utils.log.info("Writing "+cpMap.length+" "+ConstantPool.tagName(tag)+" entries...");
  
@@ -219,8 +219,8 @@
  
      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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PropMap.java	2016-09-24 15:19:13.308801664 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PropMap.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PropMap.java	2017-04-04 19:12:04.792060798 +0100
 @@ -122,8 +122,9 @@
          // Do this after the previous props are put in place,
          // to allow override if necessary.
@@ -249,8 +249,8 @@
          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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/UnpackerImpl.java	2016-09-24 15:19:13.308801664 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/UnpackerImpl.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/UnpackerImpl.java	2017-04-04 19:12:04.792060798 +0100
 @@ -160,9 +160,15 @@
          }
          // Use the stream-based implementation.
@@ -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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Utils.java	2016-09-24 15:19:13.308801664 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Utils.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Utils.java	2017-04-04 19:12:04.792060798 +0100
 @@ -268,18 +268,30 @@
          // 4947205 : Peformance is slow when using pack-effort=0
          out = new BufferedOutputStream(out);
@@ -304,9 +304,55 @@
      }
          // Wrapper to prevent closing of client-supplied stream.
      static private
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/jndi/ldap/Obj.java openjdk-boot/jdk/src/share/classes/com/sun/jndi/ldap/Obj.java
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/jndi/ldap/Obj.java	2017-04-07 16:36:15.903029077 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/jndi/ldap/Obj.java	2017-04-07 16:39:34.403810259 +0100
+@@ -503,9 +503,15 @@
+ 
+         try {
+             ByteArrayOutputStream bytes = new ByteArrayOutputStream();
+-            try (ObjectOutputStream serial = new ObjectOutputStream(bytes)) {
++	    ObjectOutputStream serial = null;
++            try {
++		serial = new ObjectOutputStream(bytes);
+                 serial.writeObject(obj);
+-            }
++            } finally {
++		if (serial != null) {
++		    serial.close();
++		}
++	    }
+ 
+             return (bytes.toByteArray());
+ 
+@@ -525,15 +531,21 @@
+         try {
+             // Create ObjectInputStream for deserialization
+             ByteArrayInputStream bytes = new ByteArrayInputStream(obj);
+-            try (ObjectInputStream deserial = cl == null ?
++	    ObjectInputStream deserial = null;
++            try {
++		deserial = cl == null ?
+                     new ObjectInputStream(bytes) :
+-                    new LoaderInputStream(bytes, cl)) {
++                    new LoaderInputStream(bytes, cl);
+                 return deserial.readObject();
+             } catch (ClassNotFoundException e) {
+                 NamingException ne = new NamingException();
+                 ne.setRootCause(e);
+                 throw ne;
+-            }
++            } finally {
++		if (deserial != null) {
++		    try { deserial.close(); } catch (IOException ex) {}
++		}
++	    }
+         } catch (IOException e) {
+             NamingException ne = new NamingException();
+             ne.setRootCause(e);
 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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandleImpl.java	2016-09-24 15:19:13.308801664 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/MethodHandleImpl.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandleImpl.java	2017-04-04 19:12:04.792060798 +0100
 @@ -912,10 +912,15 @@
                              java.net.URLConnection uconn = tClass.getResource(tResource).openConnection();
                              int len = uconn.getContentLength();
@@ -326,8 +372,8 @@
                          } 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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/lang/Package.java	2016-09-24 15:19:13.308801664 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/Package.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/lang/Package.java	2017-04-04 19:12:04.792060798 +0100
 @@ -578,12 +578,23 @@
       * Returns the Manifest for the specified JAR file name.
       */
@@ -356,8 +402,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/nio/channels/SocketChannel.java	2016-09-24 15:19:13.308801664 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/nio/channels/SocketChannel.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/nio/channels/SocketChannel.java	2017-04-04 19:12:04.792060798 +0100
 @@ -188,7 +188,7 @@
              } catch (Throwable suppressed) {
                  x.addSuppressed(suppressed);
@@ -368,8 +414,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/nio/file/CopyMoveHelper.java	2016-09-24 15:19:13.308801664 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/nio/file/CopyMoveHelper.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/nio/file/CopyMoveHelper.java	2017-04-04 19:12:04.792060798 +0100
 @@ -122,9 +122,15 @@
          if (attrs.isDirectory()) {
              Files.createDirectory(target);
@@ -397,8 +443,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/nio/file/Files.java	2016-09-24 15:19:13.308801664 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/nio/file/Files.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/nio/file/Files.java	2017-04-04 19:12:04.792060798 +0100
 @@ -2850,8 +2850,11 @@
          }
  
@@ -526,8 +572,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/util/Currency.java	2016-09-24 15:19:13.308801664 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/Currency.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/util/Currency.java	2017-04-04 19:12:04.792060798 +0100
 @@ -237,9 +237,14 @@
                                               "currency.properties");
                      if (propFile.exists()) {
@@ -545,8 +591,8 @@
                          Pattern propertiesPattern =
                              Pattern.compile("([A-Z]{3})\\s*,\\s*(\\d{3})\\s*,\\s*(\\d+)");
 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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/util/jar/JarFile.java	2016-09-24 15:19:13.308801664 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/jar/JarFile.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/util/jar/JarFile.java	2017-04-04 19:12:04.792060798 +0100
 @@ -386,9 +386,14 @@
       * META-INF files.
       */
@@ -565,8 +611,8 @@
  
      /**
 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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/javax/sql/rowset/serial/SerialClob.java	2016-09-24 15:19:13.308801664 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/javax/sql/rowset/serial/SerialClob.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/javax/sql/rowset/serial/SerialClob.java	2017-04-04 19:12:04.792060798 +0100
 @@ -144,8 +144,9 @@
          buf = new char[(int)len];
          int read = 0;
@@ -626,8 +672,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/javax/sql/rowset/spi/SyncFactory.java	2016-09-24 15:19:13.308801664 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/javax/sql/rowset/spi/SyncFactory.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/javax/sql/rowset/spi/SyncFactory.java	2017-04-04 19:12:04.792060798 +0100
 @@ -382,9 +382,15 @@
                      // Load user's implementation of SyncProvider
                      // here. -Drowset.properties=/abc/def/pqr.txt
@@ -678,8 +724,8 @@
                  } catch (PrivilegedActionException ex) {
                      Throwable e = ex.getException();
 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	2016-09-24 15:17:56.922022903 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/launcher/LauncherHelper.java	2016-09-24 15:19:13.308801664 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/launcher/LauncherHelper.java	2017-04-04 18:43:19.643569612 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/launcher/LauncherHelper.java	2017-04-04 19:12:04.792060798 +0100
 @@ -555,8 +555,9 @@
                  if (parent == null) {
                      parent = new File(".");
@@ -703,8 +749,8 @@
              } 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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/net/www/protocol/jar/URLJarFile.java	2016-09-24 15:19:13.308801664 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/net/www/protocol/jar/URLJarFile.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/net/www/protocol/jar/URLJarFile.java	2017-04-04 19:12:04.792060798 +0100
 @@ -194,7 +194,8 @@
       * Given a URL, retrieves a JAR file, caches it to disk, and creates a
       * cached JAR file object.
@@ -738,8 +784,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/nio/fs/PollingWatchService.java	2016-09-24 15:19:13.308801664 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/nio/fs/PollingWatchService.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/nio/fs/PollingWatchService.java	2017-04-04 19:12:04.792060798 +0100
 @@ -255,7 +255,9 @@
              this.entries = new HashMap<Path,CacheEntry>();
  
@@ -763,8 +809,8 @@
          }
  
 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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/print/PSPrinterJob.java	2016-09-24 15:19:13.312801601 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/print/PSPrinterJob.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/print/PSPrinterJob.java	2017-04-04 19:12:04.792060798 +0100
 @@ -680,25 +680,38 @@
  
          private void handleProcessFailure(final Process failedProcess,
@@ -811,8 +857,8 @@
  
          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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/rmi/log/ReliableLog.java	2016-09-24 15:19:13.312801601 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/log/ReliableLog.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/rmi/log/ReliableLog.java	2017-04-04 19:12:04.792060798 +0100
 @@ -594,10 +594,16 @@
          } else {
              name = versionFile;
@@ -851,8 +897,8 @@
  
      /**
 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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/rmi/server/Activation.java	2016-09-24 15:19:13.312801601 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/server/Activation.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/rmi/server/Activation.java	2017-04-04 19:12:04.792060798 +0100
 @@ -1233,13 +1233,16 @@
                      PipeWriter.plugTogetherPair
                          (child.getInputStream(), System.out,
@@ -874,8 +920,8 @@
  
                  } 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	2016-09-24 15:17:57.814008645 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/rmi/transport/proxy/RMIMasterSocketFactory.java	2016-09-24 15:19:13.312801601 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/proxy/RMIMasterSocketFactory.java	2017-04-04 18:43:20.319558954 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/rmi/transport/proxy/RMIMasterSocketFactory.java	2017-04-04 19:12:04.792060798 +0100
 @@ -233,13 +233,14 @@
                          proxyLog.log(Log.BRIEF,
                              "trying with factory: " + factory);
@@ -905,8 +951,8 @@
  
                      // factory succeeded, open new socket for caller's use
 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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/ccache/FileCredentialsCache.java	2016-09-24 15:19:13.312801601 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/ccache/FileCredentialsCache.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/ccache/FileCredentialsCache.java	2017-04-04 19:12:04.796060734 +0100
 @@ -156,18 +156,33 @@
      synchronized void init(PrincipalName principal, String name)
          throws IOException, KrbException {
@@ -990,8 +1036,8 @@
      }
  
 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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/ktab/KeyTab.java	2016-09-24 15:19:13.312801601 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/ktab/KeyTab.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/ktab/KeyTab.java	2017-04-04 19:12:04.796060734 +0100
 @@ -92,9 +92,13 @@
          tabName = filename;
          try {
@@ -1060,8 +1106,8 @@
      }
  }
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/provider/certpath/URICertStore.java openjdk-boot/jdk/src/share/classes/sun/security/provider/certpath/URICertStore.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/provider/certpath/URICertStore.java	2016-09-24 15:17:57.818008581 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/provider/certpath/URICertStore.java	2016-09-24 16:37:32.492712711 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/provider/certpath/URICertStore.java	2017-04-04 18:43:20.319558954 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/provider/certpath/URICertStore.java	2017-04-04 19:12:04.796060734 +0100
 @@ -279,7 +279,9 @@
                  connection.setIfModifiedSince(lastModified);
              }
@@ -1103,8 +1149,8 @@
              return getMatchingCRLs(crl, selector);
          } catch (IOException e) {
 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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/provider/SeedGenerator.java	2016-09-24 15:19:13.312801601 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/provider/SeedGenerator.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/provider/SeedGenerator.java	2017-04-04 19:12:04.796060734 +0100
 @@ -179,7 +179,9 @@
                          // The temporary dir
                          File f = new File(p.getProperty("java.io.tmpdir"));
@@ -1127,9 +1173,42 @@
                          }
                      } catch (Exception ex) {
                          md.update((byte)ex.hashCode());
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/tools/jarsigner/Main.java openjdk-boot/jdk/src/share/classes/sun/security/tools/jarsigner/Main.java
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/tools/jarsigner/Main.java	2017-04-06 04:20:36.335954421 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/tools/jarsigner/Main.java	2017-04-06 04:22:10.078450933 +0100
+@@ -606,13 +606,15 @@
+             while (entries.hasMoreElements()) {
+                 JarEntry je = entries.nextElement();
+                 entriesVec.addElement(je);
+-                try (InputStream is = jf.getInputStream(je)) {
++                InputStream is = null;
++                try {
++                    is = jf.getInputStream(je);
+                     String name = je.getName();
+                     if (signatureRelated(name)
+                             && SignatureFileVerifier.isBlockOrSF(name)) {
+                         String alias = name.substring(name.lastIndexOf('/') + 1,
+                                 name.lastIndexOf('.'));
+-                try {
++                        try {
+                             if (name.endsWith(".SF")) {
+                                 Manifest sf = new Manifest(is);
+                                 boolean found = false;
+@@ -647,7 +649,11 @@
+                         while (is.read(buffer, 0, buffer.length) != -1) {
+                         // we just read. this will throw a SecurityException
+                         // if  a signature/digest check fails.
++                        }
+                     }
++                } finally {
++                    if (is != null) {
++                        is.close();
+                     }
+                 }
+             }
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/tools/KeyStoreUtil.java openjdk-boot/jdk/src/share/classes/sun/security/tools/KeyStoreUtil.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/tools/KeyStoreUtil.java	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/tools/KeyStoreUtil.java	2016-09-24 15:19:13.312801601 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/tools/KeyStoreUtil.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/tools/KeyStoreUtil.java	2017-04-04 19:12:04.796060734 +0100
 @@ -94,9 +94,13 @@
              return null;
          }
@@ -1168,8 +1247,8 @@
              } catch (IOException ioe) {
                  System.err.println(ioe);
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/tools/keytool/Main.java openjdk-boot/jdk/src/share/classes/sun/security/tools/keytool/Main.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/tools/keytool/Main.java	2016-09-24 15:17:57.818008581 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/tools/keytool/Main.java	2016-09-24 15:19:13.316801537 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/tools/keytool/Main.java	2017-04-04 18:43:20.323558891 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/tools/keytool/Main.java	2017-04-04 19:12:04.796060734 +0100
 @@ -917,9 +917,12 @@
          // Perform the specified command
          if (command == CERTREQ) {
@@ -1289,42 +1368,69 @@
                  }
              } else {
                  printCertFromStream(System.in, out);
-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	2016-09-24 15:17:57.814008645 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/util/UntrustedCertificates.java	2016-09-24 15:19:13.312801601 +0100
-@@ -56,8 +56,9 @@
- 
-     private static void add(String alias, String pemCert) {
-         // generate certificate from PEM certificate
--        try (ByteArrayInputStream is =
--                new ByteArrayInputStream(pemCert.getBytes())) {
-+	ByteArrayInputStream is = null;
-+        try {
-+            is = new ByteArrayInputStream(pemCert.getBytes());
-             CertificateFactory cf = CertificateFactory.getInstance("X.509");
-             X509Certificate cert = (X509Certificate)cf.generateCertificate(is);
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/util/AnchorCertificates.java openjdk-boot/jdk/src/share/classes/sun/security/util/AnchorCertificates.java
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/util/AnchorCertificates.java	2017-04-06 03:44:19.666859284 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/util/AnchorCertificates.java	2017-04-06 04:15:13.837131378 +0100
+@@ -27,6 +27,7 @@
  
-@@ -68,9 +69,14 @@
- 	} catch (CertificateException e) {
-             throw new RuntimeException(
-                         "Incorrect untrusted certificate: " + alias, e);
--	} catch (IOException e) {
--            throw new RuntimeException(
--                        "Incorrect untrusted certificate: " + alias, e);
-+        } finally {
-+	    try {
-+		if (is != null)
-+		    is.close();
-+	    } catch (IOException e) {
-+		throw new RuntimeException(
-+			 "Incorrect untrusted certificate: " + alias, e);
-+	    }
-         }
-     }
- 
+ import java.io.File;
+ import java.io.FileInputStream;
++import java.io.IOException;
+ import java.security.AccessController;
+ import java.security.KeyStore;
+ import java.security.PrivilegedAction;
+@@ -55,7 +56,9 @@
+                 KeyStore cacerts;
+                 try {
+                     cacerts = KeyStore.getInstance("JKS");
+-                    try (FileInputStream fis = new FileInputStream(f)) {
++                    FileInputStream fis = null;
++                    try {
++                        fis = new FileInputStream(f);
+                         cacerts.load(fis, null);
+                         certs = new HashSet<>();
+                         Enumeration<String> list = cacerts.aliases();
+@@ -69,6 +72,10 @@
+                                 certs.add(X509CertImpl.getFingerprint(HASH, cert));
+                             }
+                         }
++		    } finally {
++			if (fis != null) {
++			    try { fis.close(); } catch (IOException ex) {}
++			}
+                     }
+                 } catch (Exception e) {
+                     if (debug != null) {
+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	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/util/UntrustedCertificates.java	2017-04-06 04:03:53.524046185 +0100
+@@ -56,7 +56,9 @@
+             public Void run() {
+                 File f = new File(System.getProperty("java.home"),
+                         "lib/security/blacklisted.certs");
+-                try (FileInputStream fin = new FileInputStream(f)) {
++		FileInputStream fin = null;
++                try {
++		    fin = new FileInputStream(f);
+                     props.load(fin);
+                     // It's said that the fingerprint could contain colons
+                     for (Map.Entry<Object,Object> e: props.entrySet()) {
+@@ -66,7 +68,11 @@
+                     if (debug != null) {
+                         debug.println("Error parsing blacklisted.certs");
+                     }
+-                }
++                } finally {
++		    if (fin != null) {
++			try { fin.close(); } catch (IOException ex) {}
++		    }
++		}
+                 return null;
+             }
+         });
 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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/tools/jcmd/Arguments.java	2016-09-24 15:19:13.312801601 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/tools/jcmd/Arguments.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/tools/jcmd/Arguments.java	2017-04-04 19:12:04.796060734 +0100
 @@ -99,14 +99,19 @@
      }
  
@@ -1354,8 +1460,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	2016-09-24 15:17:57.814008645 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/tools/jcmd/JCmd.java	2016-09-24 15:19:13.312801601 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/tools/jcmd/JCmd.java	2017-04-04 18:43:20.327558828 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/tools/jcmd/JCmd.java	2017-04-04 19:12:04.796060734 +0100
 @@ -158,7 +158,9 @@
              if (line.trim().equals("stop")) {
                  break;
@@ -1378,8 +1484,8 @@
          }
          vm.detach();
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/util/calendar/LocalGregorianCalendar.java openjdk-boot/jdk/src/share/classes/sun/util/calendar/LocalGregorianCalendar.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/util/calendar/LocalGregorianCalendar.java	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/util/calendar/LocalGregorianCalendar.java	2016-09-24 15:19:13.312801601 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/util/calendar/LocalGregorianCalendar.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/util/calendar/LocalGregorianCalendar.java	2017-04-04 19:12:04.796060734 +0100
 @@ -127,9 +127,15 @@
              calendarProps = (Properties) AccessController.doPrivileged(new PrivilegedExceptionAction() {
                  public Object run() throws IOException {
@@ -1398,8 +1504,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/share/demo/jfc/Font2DTest/RangeMenu.java	2016-09-24 15:19:13.312801601 +0100
+--- openjdk-boot.orig/jdk/src/share/demo/jfc/Font2DTest/RangeMenu.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/demo/jfc/Font2DTest/RangeMenu.java	2017-04-04 19:12:04.796060734 +0100
 @@ -200,7 +200,7 @@
      }
  
@@ -1410,8 +1516,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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/solaris/classes/java/util/prefs/FileSystemPreferences.java	2016-09-24 15:19:13.312801601 +0100
+--- openjdk-boot.orig/jdk/src/solaris/classes/java/util/prefs/FileSystemPreferences.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/solaris/classes/java/util/prefs/FileSystemPreferences.java	2017-04-04 19:12:04.796060734 +0100
 @@ -569,11 +569,11 @@
                  public Void run() throws BackingStoreException {
                      Map<String, String> m = new TreeMap<>();
@@ -1475,9 +1581,9 @@
                  }
              });
 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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/UnixFileStore.java	2016-09-24 15:19:13.312801601 +0100
-@@ -255,9 +255,16 @@
+--- openjdk-boot.orig/jdk/src/solaris/classes/sun/nio/fs/UnixFileStore.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/UnixFileStore.java	2017-04-04 19:12:04.796060734 +0100
+@@ -256,9 +256,16 @@
          String fstypes = System.getProperty("java.home") + "/lib/fstypes.properties";
          Path file = Paths.get(fstypes);
          try {
@@ -1496,8 +1602,8 @@
          }
          return result;
 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	2016-09-20 03:39:19.000000000 +0100
-+++ openjdk-boot/jdk/src/solaris/classes/sun/print/UnixPrintJob.java	2016-09-24 15:19:13.312801601 +0100
+--- openjdk-boot.orig/jdk/src/solaris/classes/sun/print/UnixPrintJob.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/solaris/classes/sun/print/UnixPrintJob.java	2017-04-04 19:12:04.796060734 +0100
 @@ -960,25 +960,38 @@
  
          private void handleProcessFailure(final Process failedProcess,
--- a/patches/boot/ecj-underscored_literals.patch	Tue Apr 04 03:29:16 2017 +0100
+++ b/patches/boot/ecj-underscored_literals.patch	Fri Apr 14 07:14:20 2017 +0100
@@ -1,18 +1,7 @@
---- openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/ServerHandshaker.java.old	2015-04-03 20:33:29.164024020 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/ServerHandshaker.java	2015-04-03 20:33:38.840136632 +0100
-@@ -1850,7 +1850,7 @@
-                     return Integer.parseInt(s, radix);
-                 } else {
-                     long ell = Long.parseLong(s, radix);
--                    if ((ell & 0xffff_ffff_0000_0000L) == 0) {
-+                    if ((ell & 0xffffffff00000000L) == 0) {
-                         return (int) ell;
-                     } else {
-                         throw new
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/jndi/ldap/Connection.java openjdk-boot/jdk/src/share/classes/com/sun/jndi/ldap/Connection.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/jndi/ldap/Connection.java	2015-10-19 08:58:37.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/jndi/ldap/Connection.java	2015-10-20 02:41:38.769878548 +0100
-@@ -471,8 +471,8 @@
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/jndi/ldap/Connection.java	2016-09-19 11:44:50.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/jndi/ldap/Connection.java	2017-04-04 20:59:06.159985735 +0100
+@@ -466,8 +466,8 @@
                              // available
                              ldr.wait(readTimeout - elapsedMilli);
                              elapsedNano += (System.nanoTime() - beginNano);
@@ -23,3 +12,15 @@
  
                          } else {
                              // no timeout is set so we wait infinitely until
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/util/Parsing.java openjdk-boot/jdk/src/share/classes/sun/security/util/Parsing.java
+--- openjdk-boot.orig/jdk/src/share/classes/sun/security/util/Parsing.java	2017-04-04 21:01:27.961703352 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/security/util/Parsing.java	2017-04-04 21:01:47.193393788 +0100
+@@ -93,7 +93,7 @@
+                     return Integer.parseInt(s, radix);
+                 } else {
+                     long ell = Long.parseLong(s, radix);
+-                    if ((ell & 0xffff_ffff_0000_0000L) == 0) {
++                    if ((ell & 0xffffffff00000000L) == 0) {
+                         return (int) ell;
+                     } else {
+                         throw new
--- a/patches/pr2124.patch	Tue Apr 04 03:29:16 2017 +0100
+++ b/patches/pr2124.patch	Fri Apr 14 07:14:20 2017 +0100
@@ -484,3 +484,72 @@
          SPLIT_PATTERN = null;
      }
  
+diff --git a/src/share/classes/sun/security/ssl/SupportedEllipticCurvesExtension.java b/src/share/classes/sun/security/ssl/SupportedEllipticCurvesExtension.java
+--- openjdk/jdk/src/share/classes/sun/security/ssl/SupportedEllipticCurvesExtension.java
++++ openjdk/jdk/src/share/classes/sun/security/ssl/SupportedEllipticCurvesExtension.java
+@@ -62,29 +62,6 @@
+ 
+     // See sun.security.util.CurveDB for the OIDs
+     private static enum NamedEllipticCurve {
+-        T163_K1(1,  "sect163k1",    "1.3.132.0.1",      true),  // NIST K-163
+-        T163_R1(2,  "sect163r1",    "1.3.132.0.2",      false),
+-        T163_R2(3,  "sect163r2",    "1.3.132.0.15",     true),  // NIST B-163
+-        T193_R1(4,  "sect193r1",    "1.3.132.0.24",     false),
+-        T193_R2(5,  "sect193r2",    "1.3.132.0.25",     false),
+-        T233_K1(6,  "sect233k1",    "1.3.132.0.26",     true),  // NIST K-233
+-        T233_R1(7,  "sect233r1",    "1.3.132.0.27",     true),  // NIST B-233
+-        T239_K1(8,  "sect239k1",    "1.3.132.0.3",      false),
+-        T283_K1(9,  "sect283k1",    "1.3.132.0.16",     true),  // NIST K-283
+-        T283_R1(10, "sect283r1",    "1.3.132.0.17",     true),  // NIST B-283
+-        T409_K1(11, "sect409k1",    "1.3.132.0.36",     true),  // NIST K-409
+-        T409_R1(12, "sect409r1",    "1.3.132.0.37",     true),  // NIST B-409
+-        T571_K1(13, "sect571k1",    "1.3.132.0.38",     true),  // NIST K-571
+-        T571_R1(14, "sect571r1",    "1.3.132.0.39",     true),  // NIST B-571
+-
+-        P160_K1(15, "secp160k1",    "1.3.132.0.9",      false),
+-        P160_R1(16, "secp160r1",    "1.3.132.0.8",      false),
+-        P160_R2(17, "secp160r2",    "1.3.132.0.30",     false),
+-        P192_K1(18, "secp192k1",    "1.3.132.0.31",     false),
+-        P192_R1(19, "secp192r1",    "1.2.840.10045.3.1.1", true), // NIST P-192
+-        P224_K1(20, "secp224k1",    "1.3.132.0.32",     false),
+-        P224_R1(21, "secp224r1",    "1.3.132.0.33",     true),  // NIST P-224
+-        P256_K1(22, "secp256k1",    "1.3.132.0.10",     false),
+         P256_R1(23, "secp256r1",    "1.2.840.10045.3.1.7", true), // NIST P-256
+         P384_R1(24, "secp384r1",    "1.3.132.0.34",     true),  // NIST P-384
+         P521_R1(25, "secp521r1",    "1.3.132.0.35",     true);  // NIST P-521
+diff --git a/test/javax/net/ssl/ciphersuites/DisabledAlgorithms.java b/test/javax/net/ssl/ciphersuites/DisabledAlgorithms.java
+--- openjdk/jdk/test/javax/net/ssl/ciphersuites/DisabledAlgorithms.java
++++ openjdk/jdk/test/javax/net/ssl/ciphersuites/DisabledAlgorithms.java
+@@ -41,7 +41,7 @@
+  * @bug 8076221
+  * @summary Check if weak cipher suites are disabled
+  * @run main/othervm DisabledAlgorithms default
+- * @run main/othervm -Djdk.tls.namedGroups="secp256r1,secp192r1"
++ * @run main/othervm -Djdk.tls.namedGroups="secp256r1"
+  *     DisabledAlgorithms empty
+  */
+ public class DisabledAlgorithms {
+diff --git a/test/sun/security/ec/TestEC.java b/test/sun/security/ec/TestEC.java
+--- openjdk/jdk/test/sun/security/ec/TestEC.java
++++ openjdk/jdk/test/sun/security/ec/TestEC.java
+@@ -35,7 +35,7 @@
+  * @library ../pkcs11/sslecc
+  * @library ../../../java/security/testlibrary
+  * @compile -XDignore.symbol.file TestEC.java
+- * @run main/othervm -Djdk.tls.namedGroups="secp256r1,sect193r1" TestEC
++ * @run main/othervm -Djdk.tls.namedGroups="secp256r1" TestEC
+  */
+ 
+ import java.security.NoSuchProviderException;
+diff --git a/test/sun/security/ssl/sanity/interop/ClientJSSEServerJSSE.java b/test/sun/security/ssl/sanity/interop/ClientJSSEServerJSSE.java
+--- openjdk/jdk/test/sun/security/ssl/sanity/interop/ClientJSSEServerJSSE.java
++++ openjdk/jdk/test/sun/security/ssl/sanity/interop/ClientJSSEServerJSSE.java
+@@ -26,7 +26,7 @@
+  * @bug 4496785
+  * @summary Verify that all ciphersuites work in all configurations
+  * @author Andreas Sterbenz
+- * @run main/othervm/timeout=300 -Djdk.tls.namedGroups="secp256r1,secp192r1"
++ * @run main/othervm/timeout=300 -Djdk.tls.namedGroups="secp256r1"
+  *      ClientJSSEServerJSSE
+  */
+ 
--- a/patches/rh1022017.patch	Tue Apr 04 03:29:16 2017 +0100
+++ b/patches/rh1022017.patch	Fri Apr 14 07:14:20 2017 +0100
@@ -1,44 +1,28 @@
-diff -r cdfd161703ed src/share/classes/sun/security/ssl/HelloExtensions.java
---- openjdk/jdk/src/share/classes/sun/security/ssl/HelloExtensions.java	Wed Oct 23 05:22:55 2013 +0100
-+++ openjdk/jdk/src/share/classes/sun/security/ssl/HelloExtensions.java	Thu Nov 07 12:41:45 2013 +0000
-@@ -435,25 +435,11 @@
-     // the extension value to send in the ClientHello message
-     static final SupportedEllipticCurvesExtension DEFAULT;
+diff --git a/src/share/classes/sun/security/ssl/SupportedEllipticCurvesExtension.java b/src/share/classes/sun/security/ssl/SupportedEllipticCurvesExtension.java
+--- openjdk/jdk/src/share/classes/sun/security/ssl/SupportedEllipticCurvesExtension.java
++++ openjdk/jdk/src/share/classes/sun/security/ssl/SupportedEllipticCurvesExtension.java
+@@ -160,20 +160,10 @@
+                 }
+             }
+         } else {        // default curves
+-            int[] ids;
+-            if (requireFips) {
+-                ids = new int[] {
+-                    // only NIST curves in FIPS mode
+-                    23, 24, 25, 9, 10, 11, 12, 13, 14,
+-                };
+-            } else {
+-                ids = new int[] {
+-                    // NIST curves first
+-                    23, 24, 25, 9, 10, 11, 12, 13, 14,
+-                    // non-NIST curves
+-                    22,
+-                };
+-            }
++            int[] ids = new int[] { 
++		// NSS currently only supports these three NIST curves
++		23, 24, 25
++	    };
  
--    private static final boolean fips;
--
-     static {
--        int[] ids;
--        fips = SunJSSE.isFIPS();
--        if (fips == false) {
--            ids = new int[] {
--                // NIST curves first
--                // prefer NIST P-256, rest in order of increasing key length
--                23, 1, 3, 19, 21, 6, 7, 9, 10, 24, 11, 12, 25, 13, 14,
--                // non-NIST curves
--                15, 16, 17, 2, 18, 4, 5, 20, 8, 22,
--            };
--        } else {
--            ids = new int[] {
--                // same as above, but allow only NIST curves in FIPS mode
--                23, 1, 3, 19, 21, 6, 7, 9, 10, 24, 11, 12, 25, 13, 14,
--            };
--        }
-+	int[] ids = new int[] {
-+	    // NSS currently only supports these three NIST curves
-+	    23, 24, 25
-+	};
-         DEFAULT = new SupportedEllipticCurvesExtension(ids);
-     }
- 
-@@ -545,10 +531,6 @@
-         if ((index <= 0) || (index >= NAMED_CURVE_OID_TABLE.length)) {
-             return false;
-         }
--        if (fips == false) {
--            // in non-FIPS mode, we support all valid indices
--            return true;
--        }
-         return DEFAULT.contains(index);
-     }
- 
+             idList = new ArrayList<>(ids.length);
+             for (int curveId : ids) {