8167478: javax/xml/jaxp/unittest/parsers/Bug6341770.java failed with "java.security.AccessControlException: access denied ("java.io.FilePermission" "sko?ice")"
Summary: Skip the test if the environment doesn't support non-ASCII for file name.
Reviewed-by: joehw
Contributed-by: Frank Yuan <frank.yuan@oracle.com>
--- a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6341770.java Thu Oct 13 23:02:30 2016 +0000
+++ b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6341770.java Mon Oct 17 10:11:50 2016 +0800
@@ -28,6 +28,7 @@
import java.io.File;
import java.io.FileWriter;
import java.io.PrintWriter;
+import java.nio.file.Paths;
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,18 @@
}
System.out.println("OK.");
}
+
+ private boolean isNonAsciiSupported() {
+ // Use Paths.get method to test if the path is valid in current environment
+ try {
+ Paths.get(ALPHA);
+ return true;
+ } catch (Exception e) {
+ return false;
+ }
+ }
+
+ // 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";
}