changeset 1016:037c095ba0c3 jdk-9+141

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>
author fyuan
date Mon, 17 Oct 2016 10:11:50 +0800
parents 922f04b9fd2d
children 6d980e959726
files test/javax/xml/jaxp/unittest/parsers/Bug6341770.java
diffstat 1 files changed, 22 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/test/javax/xml/jaxp/unittest/parsers/Bug6341770.java	Thu Oct 13 23:02:30 2016 +0000
+++ b/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";
 }