RFR 8189657: LineBrokenMultiByteCharacter.java fails on some systems that does not accept a non-ASCII char in Path

Weijun Wang weijun.wang at oracle.com
Thu Oct 19 06:45:18 UTC 2017


Please review this patch:

$ hg qdiff -wb
diff --git a/test/lib/jdk/test/lib/util/JarUtils.java b/test/lib/jdk/test/lib/util/JarUtils.java
--- a/test/lib/jdk/test/lib/util/JarUtils.java
+++ b/test/lib/jdk/test/lib/util/JarUtils.java
@@ -28,6 +28,7 @@
 import java.io.FileOutputStream;
 import java.io.IOException;
 import java.nio.file.Files;
+import java.nio.file.InvalidPathException;
 import java.nio.file.Path;
 import java.nio.file.Paths;
 import java.util.Enumeration;
@@ -88,12 +89,17 @@
             if (file.equals("-")) {
                 update = false;
             } else if (update) {
+                try {
                 Path p = Paths.get(file);
                 if (Files.exists(p)) {
                     changes.put(file, p);
                 } else {
                     changes.put(file, file);
                 }
+                } catch (InvalidPathException e) {
+                    // Fallback if file not a valid Path.
+                    changes.put(file, file);
+                }
             } else {
                 changes.put(file, Boolean.FALSE);
             }

This is a part of the JarUtils::updateJar method. When it adds a new entry into a jar, it will add the actual file if a file with the entry name exists, and fabricate some content if not. Unfortunately just creating a Path object on some systems would fail.

Noreg-self.

Thanks
Max




More information about the security-dev mailing list