--- old/test/javax/xml/jaxp/unittest/parsers/Bug6341770.java 2016-10-13 16:53:49.035823536 +0800 +++ new/test/javax/xml/jaxp/unittest/parsers/Bug6341770.java 2016-10-13 16:53:48.915823536 +0800 @@ -28,6 +28,7 @@ import java.io.File; import java.io.FileWriter; import java.io.PrintWriter; +import java.nio.charset.Charset; import java.util.PropertyPermission; import javax.xml.parsers.SAXParserFactory; @@ -53,8 +54,14 @@ // naming a file "aux" would fail on windows. @Test public void testNonAsciiURI() { + if (!isNonAsciiSupported()) { + // @bug 8167478 + // if it doesn't support non-ascii, the following test is invalid even if test is passed. + System.out.println("Current environment doesn't support non-ascii, exit the test."); + return; + } try { - File dir = new File("sko\u0159ice"); + File dir = new File(alpha); dir.delete(); dir.mkdir(); File main = new File(dir, "main.xml"); @@ -82,4 +89,13 @@ } System.out.println("OK."); } + + private boolean isNonAsciiSupported() { + // if equals method returns true, the non-ascii character information was not lost in this environment + return alpha.equals(Charset.defaultCharset().decode(Charset.defaultCharset().encode(alpha)).toString()); + } + + // Select alpha because it's a very common non-ascii character in different charsets. + // That this test can run in as many as possible environments if it's possible. + private static final String alpha = "\u03b1"; }