[ https://issues.apache.org/jira/browse/XALANJ-2614?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Joseph Kessselman resolved XALANJ-2614. --------------------------------------- Assignee: Joseph Kessselman (was: Steven J. Hathaway) Resolution: Fixed > Serializer 2.7.2 / Xalan 2.7.2 - Bug using Mime-Encoding 'ISO-8859-1' > --------------------------------------------------------------------- > > Key: XALANJ-2614 > URL: https://issues.apache.org/jira/browse/XALANJ-2614 > Project: XalanJ2 > Issue Type: Bug > Security Level: No security risk; visible to anyone(Ordinary problems in > Xalan projects. Anybody can view the issue.) > Components: Serialization > Affects Versions: 2.7.2 > Environment: Windows 10, Linux > Java 9, Java 10 > Reporter: Jens Annighöfer > Assignee: Joseph Kessselman > Priority: Critical > Fix For: The Latest Development Code > > Attachments: test.zip > > > We found a problem using Xalan / Serializer with Java 9 and 10 when > transforming an XML document with a styleheet containing an output-encoding. > {code:xml|title=Simple input|borderStyle=solid} > <?xml version="1.0" encoding="UTF-8"?> > <Message> > <Value>This is a test input.</Value> > </Message> > {code} > {code:xml|title=Simple stylesheet containing an > output-encoding|borderStyle=solid} > <?xml version="1.0" encoding="UTF-8"?> > <xsl:stylesheet version="1.0" > xmlns:xsl="http://www.w3.org/1999/XSL/Transform" > > <xsl:output method="text" indent="no" encoding="ISO-8859-1"/> > <xsl:template match="/"> > <xsl:text>Tramsformed text: </xsl:text> > <xsl:value-of select="//Message/Value"/> > </xsl:template> > </xsl:stylesheet> > {code} > {code:java|title=Simple transformation code|borderStyle=solid} > @Test > public void test2() throws Exception { > final InputStream is1 = > Java9Test.class.getClassLoader().getResourceAsStream("test/Input.xml"); > assertNotNull(is1); > final Document input = > DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(is1); > assertNotNull(input); > final InputStream is2 = > Java9Test.class.getClassLoader().getResourceAsStream("test/Transform.xsl"); > assertNotNull(is2); > final OutputStream os = new FileOutputStream("Output-" + > System.getProperty("java.version") + ".txt", false); > StreamSource xsl = new StreamSource(is2); > Transformer t = TransformerFactory.newInstance().newTransformer(xsl); > DOMSource src = new DOMSource(input); > t.transform(src, new StreamResult(os)); > } > {code} > Using Java 7 or Java 8 the result is correct: \{{Tramsformed text: This is a > test input.}}. Using Java 9 or Java 10 the result is not correct: > {noformat}Tramsformed text: This is a test input. > {noformat} > indicating an invalid or unknown encoding. > In Java 7 or Java 8 > _org.apache.xml.serializer.Encodings.getEncodingInfo("ISO-8859-1")_ returns > "ISO8859_1" which is a valid Java encoding name. In Java 9 oder Java 10 the > method returns "8859-1" which is not a valid name. > The problem is caused by a change to the method _keys()_ in the > _java.util.Properties_ class. This method returns die entries of the > _Encodings.properties_ in a different order since Java 9. -- This message was sent by Atlassian Jira (v8.20.10#820010) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@xalan.apache.org For additional commands, e-mail: dev-h...@xalan.apache.org