Merge tag jb8u212-b1586.4

Change-Id: I9e0241d90097aa681d96ff6573e147caf9a2db39
diff --git a/.hgtags b/.hgtags
index 7245b90..0c2443e 100644
--- a/.hgtags
+++ b/.hgtags
@@ -951,3 +951,54 @@
 6465f54b4b63be0234480d2f9aad1dca893d2f9e jdk8u192-b12
 fce0c0377cbd8471283bb6ba5900120f1505c7cc jdk8u192-b26
 5c4f2cff396cb24e33e18dbc0e9b7f5b757c299c jdk8u202-b01
+c6d5e32c8ce2e363f74b892f0b2f8a1f834d3396 jdk8u202-b02
+d492c0449092f847c0cd5ac54f6cae87285c50aa jdk8u202-b03
+521708c35dd0b9f59db8312da512193a66bbb462 jdk8u202-b04
+d61ae55f24a97aa0b11ca3ec16082488cc487c13 jdk8u202-b05
+9f0f2cf7a03d12ce7c7797e073022ec8b0306e2e jdk8u202-b06
+f9ce9e9e966acd4b057e7fdd024f032c6501cec8 jdk8u202-b07
+6c6166477778069fbb8bddda0b2bd490c5165fe4 jdk8u202-b08
+2e575d455cacab1117667d73f81bc2774c0408af jdk8u202-b25
+a14b334da6a14ff6c800888b31a621671ddedcd4 jdk8u202-b26
+6c6166477778069fbb8bddda0b2bd490c5165fe4 jdk8u202-ga
+382c9313d23fe2c7455adf105858d61f04e1c9cc jdk8u181-b31
+019bb0c95d8eff74f479cf43e472742f346979f0 jdk8u181-b32
+84e3a5220fdca5227307a59cd4f52ae13d10ba6b jdk8u181-b33
+dd700ba0a891f5fe79502f5a9530317e90032e68 jdk8u181-b34
+ed73be44ba93a599f517c044b0972a9df4ba4d36 jdk8u181-b35
+f6e56479aedce0cb4a66c1c0ff8b88eed8f88621 jdk8u181-b36
+0179f90264fafd8e678c59ee49767827f29c5c09 jdk8u181-b37
+fc3557ce51e4438d5f2b856fa68204a7a3d66233 jdk8u201-b01
+477375759c3876b35dc92158c58f70ec4999355d jdk8u201-b02
+bd61e1494e368120975a4ce7fc4b4ce8603fb52c jdk8u201-b03
+f00858e3cb6653a6ba81040100541c337f545667 jdk8u201-b04
+9c371081f0179530abbcacf5863515ed138d0659 jdk8u201-b74
+fadb12a859bcba9075a5536bedb5594f2c4442bd jdk8u201-b05
+8b544083d84187ad1c5569baa70bf0e1ffae8858 jdk8u201-b75
+0efa6d7335788fa6f7c7b088a020ace48c4f7d14 jdk8u201-b06
+f728390b15a5c81e5eb3194999d490f63965c829 jdk8u201-b76
+16c76ce6176a6042af69da226d95795976d7dbcd jdk8u201-b07
+ace766139b0a8b3df9ba5997410b6757e9e966ce jdk8u201-b77
+4d0534929ed33904995cab64d870f71f34df3820 jdk8u201-b08
+0bd4dbc4d66ff1a8ed6cc2095c19f9339283d274 jdk8u201-b09
+14a7e11e6db20a7023a0aa1960d45f5a72812633 jdk8u201-b79
+83dce201f51fcaf5e20518d2d8f843a267587680 jdk8u201-b25
+a55558a5e910f2336b24784592f77f4fa848fdb2 jdk8u201-b26
+0bd4dbc4d66ff1a8ed6cc2095c19f9339283d274 jdk8u201-ga
+5c4f2cff396cb24e33e18dbc0e9b7f5b757c299c jdk8u202-b01
+c6d5e32c8ce2e363f74b892f0b2f8a1f834d3396 jdk8u202-b02
+d492c0449092f847c0cd5ac54f6cae87285c50aa jdk8u202-b03
+521708c35dd0b9f59db8312da512193a66bbb462 jdk8u202-b04
+d61ae55f24a97aa0b11ca3ec16082488cc487c13 jdk8u202-b05
+9f0f2cf7a03d12ce7c7797e073022ec8b0306e2e jdk8u202-b06
+f9ce9e9e966acd4b057e7fdd024f032c6501cec8 jdk8u202-b07
+6c6166477778069fbb8bddda0b2bd490c5165fe4 jdk8u202-b08
+2e575d455cacab1117667d73f81bc2774c0408af jdk8u202-b25
+a14b334da6a14ff6c800888b31a621671ddedcd4 jdk8u202-b26
+6c6166477778069fbb8bddda0b2bd490c5165fe4 jdk8u202-ga
+58a54ab25e5201d29fea1ed1e165c95ce479f5cf jdk8u212-b00
+22d26c0a8eb7ddfdbebf835c59b07e8b8da47359 jdk8u212-b01
+8b263aef666d72459ac637e3ff19554c9fb4e7ca jdk8u212-b02
+7dca173f654edf0720e62b72ef750c673bc6ebfe jdk8u212-b03
+90f8352e7f0642918735d66c38b3c6c44473691a jdk8u212-b04
+7dca173f654edf0720e62b72ef750c673bc6ebfe jdk8u212-ga
diff --git a/THIRD_PARTY_README b/THIRD_PARTY_README
index a1662fe..2247356 100644
--- a/THIRD_PARTY_README
+++ b/THIRD_PARTY_README
@@ -1096,33 +1096,6 @@
 OF SUCH DAMAGE.
 --- end of LICENSE ---
 
-%% This notice is provided with respect to FontConfig 2.5, which may be 
-included with JRE 8, JDK 8, and OpenJDK 8 source distributions on
-Linux and Solaris.
-
---- begin of LICENSE ---
-
-Copyright ?? 2001,2003 Keith Packard
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that the
-above copyright notice appear in all copies and that both that copyright
-notice and this permission notice appear in supporting documentation, and that
-the name of Keith Packard not be used in advertising or publicity pertaining
-to distribution of the software without specific, written prior permission.
-Keith Packard makes no representations about the suitability of this software
-for any purpose.  It is provided "as is" without express or implied warranty.
-
-KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
-ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL KEITH
-PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY
-DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
-CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-
---- end of LICENSE ---
-
 -------------------------------------------------------------------------------
 
 %% This notice is provided with respect to freebXML Registry 3.0 & 3.1,
@@ -1668,13 +1641,13 @@
 
 -------------------------------------------------------------------------------
 
-%% This notice is provided with respect to Little CMS 2.7, which may be 
+%% This notice is provided with respect to Little CMS 2.9, which may be
 included with JRE 8, JDK 8, and OpenJDK 8.
 
 --- begin of LICENSE ---
 
 Little CMS
-Copyright (c) 1998-2015 Marti Maria Saguer
+Copyright (c) 1998-2011 Marti Maria Saguer
 
 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the "Software"), to deal
diff --git a/src/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_it.java b/src/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_it.java
index e4a7b2d..79c17a9 100644
--- a/src/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_it.java
+++ b/src/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_it.java
@@ -91,14 +91,14 @@
          * is a class name.  Used for internal errors in the processor.
          */
         {BasisLibrary.RUN_TIME_INTERNAL_ERR,
-        "Errore interno in fase di esecuzione in ''{0}''"},
+        "Errore interno in runtime in ''{0}''"},
 
         /*
          * Note to translators:  <xsl:copy> is a keyword that should not be
          * translated.
          */
         {BasisLibrary.RUN_TIME_COPY_ERR,
-        "Errore in fase di esecuzione durante l'esecuzione di <xsl:copy>."},
+        "Errore in runtime durante l'esecuzione di <xsl:copy>."},
 
         /*
          * Note to translators:  The substitution text refers to data types.
@@ -252,7 +252,7 @@
          * the name of the translet class.
          */
         {BasisLibrary.UNKNOWN_TRANSLET_VERSION_ERR,
-        "Il translet specificato ''{0}'' \u00E8 stato creato utilizzando una versione di XSLTC pi\u00F9 recente di quella della fase di esecuzione XSLTC in uso. Ricompilare il foglio di stile o utilizzare una versione pi\u00F9 recente di XSLTC per eseguire questo translet."},
+        "Il translet specificato ''{0}'' \u00E8 stato creato utilizzando una versione di XSLTC pi\u00F9 recente di quella della fase di runtime XSLTC in uso. Ricompilare il foglio di stile o utilizzare una versione pi\u00F9 recente di XSLTC per eseguire questo translet."},
 
         /*
          * Note to translators:  An attribute whose effective value is required
diff --git a/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_sv.properties b/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_sv.properties
index eadf57a..fe82b5d 100644
--- a/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_sv.properties
+++ b/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_sv.properties
@@ -29,9 +29,9 @@
         QuoteRequiredInXMLDecl = V\u00E4rdet som f\u00F6ljer "{0}" i XML-deklarationen m\u00E5ste omges av citattecken.
         XMLDeclUnterminated = XML-deklarationen m\u00E5ste avslutas med "?>".
         VersionInfoRequired = Versionen kr\u00E4vs i XML-deklarationen.
-        SpaceRequiredBeforeVersionInXMLDecl = Tomt utrymme kr\u00E4vs f\u00F6re versionens pseudoattribut i XML-deklarationen.
-        SpaceRequiredBeforeEncodingInXMLDecl = Tomt utrymme kr\u00E4vs f\u00F6re kodningens pseudoattribut i XML-deklarationen.
-        SpaceRequiredBeforeStandalone = Tomt utrymme kr\u00E4vs f\u00F6re kodningens pseudoattribut i XML-deklarationen.
+        SpaceRequiredBeforeVersionInXMLDecl = Blanktecken kr\u00E4vs f\u00F6re versionens pseudoattribut i XML-deklarationen.
+        SpaceRequiredBeforeEncodingInXMLDecl = Blanktecken kr\u00E4vs f\u00F6re kodningens pseudoattribut i XML-deklarationen.
+        SpaceRequiredBeforeStandalone = Blanktecken kr\u00E4vs f\u00F6re kodningens pseudoattribut i XML-deklarationen.
         MarkupNotRecognizedInProlog = Dokumentets kodtext f\u00F6re rotelementet m\u00E5ste vara v\u00E4lformulerad.
         MarkupNotRecognizedInMisc = Dokumentets kodtext efter rotelementet m\u00E5ste vara v\u00E4lformulerad.
         AlreadySeenDoctype = DOCTYPE har redan tagits emot.
@@ -84,7 +84,7 @@
         COMMENT_NOT_IN_ONE_ENTITY = Kommentaren innesluts inte i samma enhet.
 # 2.6 Processing Instructions
         PITargetRequired = Bearbetningsinstruktionen m\u00E5ste b\u00F6rja med m\u00E5lnamnet.
-        SpaceRequiredInPI = Tomt utrymme kr\u00E4vs mellan bearbetningsinstruktionens m\u00E5l och data.
+        SpaceRequiredInPI = Blanktecken kr\u00E4vs mellan bearbetningsinstruktionens m\u00E5l och data.
         PIUnterminated = Bearbetningsinstruktionen m\u00E5ste avslutas med "?>".
         ReservedPITarget = Bearbetningsinstruktionens m\u00E5lmatchning "[xX][mM][lL]" \u00E4r inte till\u00E5ten.
         PI_NOT_IN_ONE_ENTITY = Bearbetningsinstruktionen innesluts inte i samma enhet.
@@ -105,8 +105,8 @@
         EqRequiredInTextDecl = Ett likhetstecken ('' = '') m\u00E5ste anges efter "{0}" i textdeklarationen.
         QuoteRequiredInTextDecl = V\u00E4rdet som f\u00F6ljer "{0}" i textdeklarationen m\u00E5ste omges av citattecken.
         CloseQuoteMissingInTextDecl = avslutande citattecken saknas f\u00F6r v\u00E4rdet efter "{0}" i textdeklarationen.
-        SpaceRequiredBeforeVersionInTextDecl = Tomt utrymme kr\u00E4vs f\u00F6re versionens pseudoattribut i textdeklarationen.
-        SpaceRequiredBeforeEncodingInTextDecl = Tomt utrymme kr\u00E4vs f\u00F6re kodningens pseudoattribut i textdeklarationen.
+        SpaceRequiredBeforeVersionInTextDecl = Blanktecken kr\u00E4vs f\u00F6re versionens pseudoattribut i textdeklarationen.
+        SpaceRequiredBeforeEncodingInTextDecl = Blanktecken kr\u00E4vs f\u00F6re kodningens pseudoattribut i textdeklarationen.
         TextDeclUnterminated = Textdeklarationen m\u00E5ste avslutas med "?>".
         EncodingDeclRequired = Koddeklaration kr\u00E4vs i textdeklarationen.
         NoMorePseudoAttributes = Inga fler pseudoattribut \u00E4r till\u00E5tna.
@@ -133,16 +133,16 @@
         InvalidCharInPublicID = Ett ogiltigt XML-tecken (Unicode: 0x{0}) hittades i allm\u00E4n identifierare.
         InvalidCharInSystemID = Ett ogiltigt XML-tecken (Unicode: 0x{0}) hittades i systemidentifierare.
 # 2.3 Common Syntactic Constructs
-        SpaceRequiredAfterSYSTEM = Tomt utrymme kr\u00E4vs efter nyckelordet SYSTEM i DOCTYPE-deklarationen.
+        SpaceRequiredAfterSYSTEM = Blanktecken kr\u00E4vs efter nyckelordet SYSTEM i DOCTYPE-deklarationen.
         QuoteRequiredInSystemID = Systemidentifieraren m\u00E5ste inledas med antingen enkelt eller dubbelt citattecken.
         SystemIDUnterminated = Systemidentifieraren m\u00E5ste avslutas med matchande citattecken.
-        SpaceRequiredAfterPUBLIC = Tomma utrymmen kr\u00E4vs efter nyckelordet PUBLIC i DOCTYPE-deklarationen.
+        SpaceRequiredAfterPUBLIC = Blanktecken kr\u00E4vs efter nyckelordet PUBLIC i DOCTYPE-deklarationen.
         QuoteRequiredInPublicID = Den allm\u00E4nna identifieraren m\u00E5ste inledas med antingen enkelt eller dubbelt citattecken.
         PublicIDUnterminated = Den allm\u00E4nna identifieraren m\u00E5ste avslutas med matchande citattecken.
         PubidCharIllegal = Tecknet (Unicode: 0x{0}) \u00E4r inte till\u00E5tet i den allm\u00E4nna identifieraren.
-        SpaceRequiredBetweenPublicAndSystem = Tomma utrymmen kr\u00E4vs mellan publicId och systemId.
+        SpaceRequiredBetweenPublicAndSystem = Blanktecken kr\u00E4vs mellan publicId och systemId.
 # 2.8 Prolog and Document Type Declaration
-        MSG_SPACE_REQUIRED_BEFORE_ROOT_ELEMENT_TYPE_IN_DOCTYPEDECL = Tomt utrymme kr\u00E4vs efter "<!DOCTYPE" i dokumenttypdeklarationen.
+        MSG_SPACE_REQUIRED_BEFORE_ROOT_ELEMENT_TYPE_IN_DOCTYPEDECL = Blanktecken kr\u00E4vs efter "<!DOCTYPE" i dokumenttypdeklarationen.
         MSG_ROOT_ELEMENT_TYPE_REQUIRED = Rotelementtyp m\u00E5ste anges efter "<!DOCTYPE" i dokumenttypdeklarationen.
         DoctypedeclUnterminated = Dokumenttypdeklarationen f\u00F6r rotelementtyp "{0}" m\u00E5ste avslutas med ''>''.
         DoctypedeclNotClosed = Dokumenttypsdeklarationen f\u00F6r rotelementtypen "{0}" m\u00E5ste st\u00E4ngas med '']''.
@@ -151,9 +151,9 @@
 # 2.10 White Space Handling
         MSG_XML_SPACE_DECLARATION_ILLEGAL = Attributdeklarationen f\u00F6r "xml:space" m\u00E5ste anges som uppr\u00E4kningstyp vars enda m\u00F6jliga v\u00E4rden \u00E4r "default" och "preserve".
 # 3.2 Element Type Declarations
-        MSG_SPACE_REQUIRED_BEFORE_ELEMENT_TYPE_IN_ELEMENTDECL = Tomt utrymme kr\u00E4vs efter "<!ELEMENT" i elementtypdeklarationen.
+        MSG_SPACE_REQUIRED_BEFORE_ELEMENT_TYPE_IN_ELEMENTDECL = Blanktecken kr\u00E4vs efter "<!ELEMENT" i elementtypdeklarationen.
         MSG_ELEMENT_TYPE_REQUIRED_IN_ELEMENTDECL = Elementtyp m\u00E5ste anges i elementtypdeklarationen.
-        MSG_SPACE_REQUIRED_BEFORE_CONTENTSPEC_IN_ELEMENTDECL = Tomt utrymme kr\u00E4vs efter elementtyp "{0}" i elementtypdeklarationen.
+        MSG_SPACE_REQUIRED_BEFORE_CONTENTSPEC_IN_ELEMENTDECL = Blanktecken kr\u00E4vs efter elementtyp "{0}" i elementtypdeklarationen.
         MSG_CONTENTSPEC_REQUIRED_IN_ELEMENTDECL = Begr\u00E4nsningen kr\u00E4vs efter elementtyp "{0}" i elementtypdeklarationen.
         ElementDeclUnterminated = Deklarationen f\u00F6r elementtyp "{0}" m\u00E5ste avslutas med ''>''.
 # 3.2.1 Element Content
@@ -164,16 +164,16 @@
         MSG_CLOSE_PAREN_REQUIRED_IN_MIXED = Tecknet '')'' m\u00E5ste anges i deklarationen av elementtyp "{0}".
         MixedContentUnterminated = Modellen med blandat inneh\u00E5ll "{0}" m\u00E5ste avslutas med ")*" om typer av underordnade element \u00E4r begr\u00E4nsade.
 # 3.3 Attribute-List Declarations
-        MSG_SPACE_REQUIRED_BEFORE_ELEMENT_TYPE_IN_ATTLISTDECL = Tomt utrymme kr\u00E4vs efter "<!ATTLIST" i deklarationen f\u00F6r attributlista.
+        MSG_SPACE_REQUIRED_BEFORE_ELEMENT_TYPE_IN_ATTLISTDECL = Blanktecken kr\u00E4vs efter "<!ATTLIST" i deklarationen f\u00F6r attributlista.
         MSG_ELEMENT_TYPE_REQUIRED_IN_ATTLISTDECL = Elementtyp m\u00E5ste anges i deklarationen f\u00F6r attributlista.
-        MSG_SPACE_REQUIRED_BEFORE_ATTRIBUTE_NAME_IN_ATTDEF = Tomt utrymme kr\u00E4vs f\u00F6re attributnamnet i deklarationen f\u00F6r attributlista f\u00F6r elementet "{0}".
+        MSG_SPACE_REQUIRED_BEFORE_ATTRIBUTE_NAME_IN_ATTDEF = Blanktecken kr\u00E4vs f\u00F6re attributnamnet i deklarationen f\u00F6r attributlista f\u00F6r elementet "{0}".
         AttNameRequiredInAttDef = Attributnamnet m\u00E5ste anges i deklarationen f\u00F6r attributlista f\u00F6r elementet "{0}".
-        MSG_SPACE_REQUIRED_BEFORE_ATTTYPE_IN_ATTDEF = Tomt utrymme kr\u00E4vs f\u00F6re attributtyp i deklarationen f\u00F6r attributet "{1}" f\u00F6r elementet "{0}".
+        MSG_SPACE_REQUIRED_BEFORE_ATTTYPE_IN_ATTDEF = Blanktecken kr\u00E4vs f\u00F6re attributtyp i deklarationen f\u00F6r attributet "{1}" f\u00F6r elementet "{0}".
         AttTypeRequiredInAttDef = Attributtyp m\u00E5ste anges i deklarationen f\u00F6r attributet "{1}" f\u00F6r elementet "{0}".
-        MSG_SPACE_REQUIRED_BEFORE_DEFAULTDECL_IN_ATTDEF = Tomt utrymme kr\u00E4vs f\u00F6re attributstandardv\u00E4rde i deklarationen f\u00F6r attributet "{1}" f\u00F6r elementet "{0}".
+        MSG_SPACE_REQUIRED_BEFORE_DEFAULTDECL_IN_ATTDEF = Blanktecken kr\u00E4vs f\u00F6re attributstandardv\u00E4rde i deklarationen f\u00F6r attributet "{1}" f\u00F6r elementet "{0}".
         MSG_DUPLICATE_ATTRIBUTE_DEFINITION = Det finns fler \u00E4n en attributdefinition f\u00F6r samma attribut "{1}" f\u00F6r angivet element "{0}".
 # 3.3.1 Attribute Types
-        MSG_SPACE_REQUIRED_AFTER_NOTATION_IN_NOTATIONTYPE = Tomt utrymme m\u00E5ste anges efter "NOTATION" i attributdeklarationen "{1}".
+        MSG_SPACE_REQUIRED_AFTER_NOTATION_IN_NOTATIONTYPE = Blanktecken m\u00E5ste anges efter "NOTATION" i attributdeklarationen "{1}".
         MSG_OPEN_PAREN_REQUIRED_IN_NOTATIONTYPE = Tecknet ''('' m\u00E5ste anges efter "NOTATION" i attributdeklarationen "{1}".
         MSG_NAME_REQUIRED_IN_NOTATIONTYPE = Notationsnamn m\u00E5ste anges i notationstyplistan f\u00F6r attributdeklarationen "{1}".
         NotationTypeUnterminated = Notationstyplistan m\u00E5ste avslutas med '')'' i attributdeklarationen "{1}".
@@ -182,7 +182,7 @@
         MSG_DISTINCT_TOKENS_IN_ENUMERATION = Uppr\u00E4kningsv\u00E4rdet "{1}" har angetts fler \u00E4n en g\u00E5ng i attributdeklarationen "{2}" f\u00F6r elementet "{0}". Alla NMTOKENS i en och samma attributdeklaration f\u00F6r Enumeration m\u00E5ste vara unika.
         MSG_DISTINCT_NOTATION_IN_ENUMERATION = Uppr\u00E4kningsv\u00E4rdet "{1}" har angetts fler \u00E4n en g\u00E5ng i attributdeklarationen "{2}" f\u00F6r elementet "{0}". Alla NOTATION-namn i en och samma attributdeklaration f\u00F6r NotationType m\u00E5ste vara unika.
 # 3.3.2 Attribute Defaults
-        MSG_SPACE_REQUIRED_AFTER_FIXED_IN_DEFAULTDECL = Tomt utrymme m\u00E5ste anges efter "FIXED" i attributdeklarationen "{1}".
+        MSG_SPACE_REQUIRED_AFTER_FIXED_IN_DEFAULTDECL = Blanktecken m\u00E5ste anges efter "FIXED" i attributdeklarationen "{1}".
 # 3.4 Conditional Sections
         IncludeSectUnterminated = Sektionen f\u00F6r inkluderade villkor m\u00E5ste avslutas med "]]>".
         IgnoreSectUnterminated = Sektionen f\u00F6r exkluderade villkor m\u00E5ste avslutas med "]]>".
@@ -190,26 +190,26 @@
         NameRequiredInPEReference = Enhetsnamnet m\u00E5ste omedelbart f\u00F6ljas av '%' i parameterreferensen.
         SemicolonRequiredInPEReference = Parameterreferensen "%{0};" m\u00E5ste avslutas med '';''-avgr\u00E4nsare.
 # 4.2 Entity Declarations
-        MSG_SPACE_REQUIRED_BEFORE_ENTITY_NAME_IN_ENTITYDECL = Tomt utrymme kr\u00E4vs efter "<!ENTITY" i enhetsdeklarationen.
-        MSG_SPACE_REQUIRED_BEFORE_PERCENT_IN_PEDECL = Tomt utrymme kr\u00E4vs mellan "<!ENTITY" och '%'-tecknet i parameterdeklarationen.
-        MSG_SPACE_REQUIRED_BEFORE_ENTITY_NAME_IN_PEDECL = Tomt utrymme kr\u00E4vs mellan '%' och enhetsnamnet i parameterdeklarationen.
+        MSG_SPACE_REQUIRED_BEFORE_ENTITY_NAME_IN_ENTITYDECL = Blanktecken kr\u00E4vs efter "<!ENTITY" i enhetsdeklarationen.
+        MSG_SPACE_REQUIRED_BEFORE_PERCENT_IN_PEDECL = Blanktecken kr\u00E4vs mellan "<!ENTITY" och '%'-tecknet i parameterdeklarationen.
+        MSG_SPACE_REQUIRED_BEFORE_ENTITY_NAME_IN_PEDECL = Blanktecken kr\u00E4vs mellan '%' och enhetsnamnet i parameterdeklarationen.
         MSG_ENTITY_NAME_REQUIRED_IN_ENTITYDECL = Namnet p\u00E5 enheten m\u00E5ste anges i enhetsdeklarationen.
-        MSG_SPACE_REQUIRED_AFTER_ENTITY_NAME_IN_ENTITYDECL = Tomt utrymme kr\u00E4vs mellan enhetsnamnet "{0}" och definitionen i enhetsdeklarationen.
-        MSG_SPACE_REQUIRED_BEFORE_NOTATION_NAME_IN_UNPARSED_ENTITYDECL = Tomt utrymme kr\u00E4vs mellan "NDATA" och notationsnamnet i deklarationen f\u00F6r enheten "{0}".
-        MSG_SPACE_REQUIRED_BEFORE_NDATA_IN_UNPARSED_ENTITYDECL = Tomt utrymme kr\u00E4vs f\u00F6re "NDATA" i deklarationen f\u00F6r enheten "{0}".
+        MSG_SPACE_REQUIRED_AFTER_ENTITY_NAME_IN_ENTITYDECL = Blanktecken kr\u00E4vs mellan enhetsnamnet "{0}" och definitionen i enhetsdeklarationen.
+        MSG_SPACE_REQUIRED_BEFORE_NOTATION_NAME_IN_UNPARSED_ENTITYDECL = Blanktecken kr\u00E4vs mellan "NDATA" och notationsnamnet i deklarationen f\u00F6r enheten "{0}".
+        MSG_SPACE_REQUIRED_BEFORE_NDATA_IN_UNPARSED_ENTITYDECL = Blanktecken kr\u00E4vs f\u00F6re "NDATA" i deklarationen f\u00F6r enheten "{0}".
         MSG_NOTATION_NAME_REQUIRED_FOR_UNPARSED_ENTITYDECL = Notationsnamnet m\u00E5ste anges efter "NDATA" i deklarationen f\u00F6r enheten "{0}".
         EntityDeclUnterminated = Deklarationen f\u00F6r enheten "{0}" m\u00E5ste avslutas med ''>''.
 	MSG_DUPLICATE_ENTITY_DEFINITION = Enheten "{0}" har deklarerats mer \u00E4n en g\u00E5ng.        
 # 4.2.2 External Entities
         ExternalIDRequired = Den externa enhetsdeklarationen m\u00E5ste inledas med antingen "SYSTEM" eller "PUBLIC".
-        MSG_SPACE_REQUIRED_BEFORE_PUBIDLITERAL_IN_EXTERNALID = Tomt utrymme kr\u00E4vs mellan "PUBLIC" och den allm\u00E4nna identifieraren.
-        MSG_SPACE_REQUIRED_AFTER_PUBIDLITERAL_IN_EXTERNALID = Tomt utrymme kr\u00E4vs mellan den allm\u00E4nna identifieraren och systemidentifieraren.
-        MSG_SPACE_REQUIRED_BEFORE_SYSTEMLITERAL_IN_EXTERNALID = Tomt utrymme kr\u00E4vs mellan "SYSTEM" och systemidentifieraren.
+        MSG_SPACE_REQUIRED_BEFORE_PUBIDLITERAL_IN_EXTERNALID = Blanktecken kr\u00E4vs mellan "PUBLIC" och den allm\u00E4nna identifieraren.
+        MSG_SPACE_REQUIRED_AFTER_PUBIDLITERAL_IN_EXTERNALID = Blanktecken kr\u00E4vs mellan den allm\u00E4nna identifieraren och systemidentifieraren.
+        MSG_SPACE_REQUIRED_BEFORE_SYSTEMLITERAL_IN_EXTERNALID = Blanktecken kr\u00E4vs mellan "SYSTEM" och systemidentifieraren.
         MSG_URI_FRAGMENT_IN_SYSTEMID = Fragmentidentifieraren f\u00E5r inte anges som del av systemidentifieraren "{0}".
 # 4.7 Notation Declarations
-        MSG_SPACE_REQUIRED_BEFORE_NOTATION_NAME_IN_NOTATIONDECL = Tomt utrymme kr\u00E4vs efter "<!NOTATION" i notationsdeklarationen.
+        MSG_SPACE_REQUIRED_BEFORE_NOTATION_NAME_IN_NOTATIONDECL = Blanktecken kr\u00E4vs efter "<!NOTATION" i notationsdeklarationen.
         MSG_NOTATION_NAME_REQUIRED_IN_NOTATIONDECL = Namnet p\u00E5 notationen m\u00E5ste anges i notationsdeklarationen.
-        MSG_SPACE_REQUIRED_AFTER_NOTATION_NAME_IN_NOTATIONDECL = Tomt utrymme kr\u00E4vs efter notationsnamnet "{0}" i notationsdeklarationen.
+        MSG_SPACE_REQUIRED_AFTER_NOTATION_NAME_IN_NOTATIONDECL = Blanktecken kr\u00E4vs efter notationsnamnet "{0}" i notationsdeklarationen.
         ExternalIDorPublicIDRequired = Deklarationen f\u00F6r notationen "{0}" m\u00E5ste inkludera systemidentifierare eller allm\u00E4n identifierare.
         NotationDeclUnterminated = Deklarationen f\u00F6r notationen "{0}" m\u00E5ste avslutas med ''>''.
         
@@ -248,7 +248,7 @@
         MSG_NOTATION_NOT_DECLARED_FOR_UNPARSED_ENTITYDECL = Notationen "{1}" m\u00E5ste deklareras vid referens i otolkad enhetsdeklaration f\u00F6r "{0}".
         MSG_REFERENCE_TO_EXTERNALLY_DECLARED_ENTITY_WHEN_STANDALONE = Referensen till enheten "{0}" som har deklarerats i en externt tolkad enhet \u00E4r inte till\u00E5tet i frist\u00E5ende dokument.
         MSG_REQUIRED_ATTRIBUTE_NOT_SPECIFIED = Attributet "{1}" m\u00E5ste anges f\u00F6r elementtyp "{0}".
-        MSG_WHITE_SPACE_IN_ELEMENT_CONTENT_WHEN_STANDALONE = Tomt utrymme f\u00E5r inte f\u00F6rekomma mellan element som har deklarerats i en externt tolkad enhet med elementinneh\u00E5ll i frist\u00E5ende dokument.
+        MSG_WHITE_SPACE_IN_ELEMENT_CONTENT_WHEN_STANDALONE = Blanktecken f\u00E5r inte f\u00F6rekomma mellan element som har deklarerats i en externt tolkad enhet med elementinneh\u00E5ll i frist\u00E5ende dokument.
         NMTOKENInvalid = Attributv\u00E4rdet "{0}" av typen NMTOKEN m\u00E5ste vara ett namntoken.
         NMTOKENSInvalid = Attributv\u00E4rdet "{0}" av typen NMTOKENS m\u00E5ste vara ett eller flera namntoken.
         NoNotationOnEmptyElement = Elementtyp "{0}" med deklarationen EMPTY kan inte deklareras med attributet "{1}" av typen NOTATION.
diff --git a/src/com/sun/xml/internal/stream/util/ThreadLocalBufferAllocator.java b/src/com/sun/xml/internal/stream/util/ThreadLocalBufferAllocator.java
index 25bdf6b..5f4243d 100644
--- a/src/com/sun/xml/internal/stream/util/ThreadLocalBufferAllocator.java
+++ b/src/com/sun/xml/internal/stream/util/ThreadLocalBufferAllocator.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -39,15 +39,19 @@
  * @author Santiago.PericasGeertsen@sun.com
  */
 public class ThreadLocalBufferAllocator {
-   private static ThreadLocal tlba = new ThreadLocal();
+    private static final ThreadLocal<SoftReference<BufferAllocator>> TL = new ThreadLocal<>();
 
-   public static BufferAllocator getBufferAllocator() {
-        SoftReference bAllocatorRef = (SoftReference) tlba.get();
-        if (bAllocatorRef == null || bAllocatorRef.get() == null) {
-            bAllocatorRef = new SoftReference(new BufferAllocator());
-            tlba.set(bAllocatorRef);
+    public static BufferAllocator getBufferAllocator() {
+        BufferAllocator ba = null;
+        SoftReference<BufferAllocator> sr = TL.get();
+        if (sr != null) {
+            ba = sr.get();
         }
-
-        return (BufferAllocator) bAllocatorRef.get();
-   }
+        if (ba == null) {
+            ba = new BufferAllocator();
+            sr = new SoftReference<>(ba);
+            TL.set(sr);
+        }
+        return ba;
+    }
 }