8017248: Compiler Diacritics Issue
Reviewed-by: naoto
This commit is contained in:
parent
8290ada96c
commit
100b98aafa
@ -51,6 +51,7 @@ import java.nio.charset.Charset;
|
||||
import java.nio.file.DirectoryStream;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
import java.text.Normalizer;
|
||||
import java.util.ResourceBundle;
|
||||
import java.text.MessageFormat;
|
||||
import java.util.ArrayList;
|
||||
@ -493,7 +494,19 @@ public enum LauncherHelper {
|
||||
try {
|
||||
mainClass = scloader.loadClass(cn);
|
||||
} catch (NoClassDefFoundError | ClassNotFoundException cnfe) {
|
||||
abort(cnfe, "java.launcher.cls.error1", cn);
|
||||
if (System.getProperty("os.name", "").contains("OS X")
|
||||
&& Normalizer.isNormalized(cn, Normalizer.Form.NFD)) {
|
||||
try {
|
||||
// On Mac OS X since all names with diacretic symbols are given as decomposed it
|
||||
// is possible that main class name comes incorrectly from the command line
|
||||
// and we have to re-compose it
|
||||
mainClass = scloader.loadClass(Normalizer.normalize(cn, Normalizer.Form.NFC));
|
||||
} catch (NoClassDefFoundError | ClassNotFoundException cnfe1) {
|
||||
abort(cnfe, "java.launcher.cls.error1", cn);
|
||||
}
|
||||
} else {
|
||||
abort(cnfe, "java.launcher.cls.error1", cn);
|
||||
}
|
||||
}
|
||||
// set to mainClass
|
||||
appClass = mainClass;
|
||||
|
5
jdk/test/tools/launcher/8017248/ClassÁ.java
Normal file
5
jdk/test/tools/launcher/8017248/ClassÁ.java
Normal file
@ -0,0 +1,5 @@
|
||||
public class ClassÁ {
|
||||
public static void main(String args[]) {
|
||||
System.out.println("Succes!");
|
||||
}
|
||||
}
|
16
jdk/test/tools/launcher/8017248/test.sh
Normal file
16
jdk/test/tools/launcher/8017248/test.sh
Normal file
@ -0,0 +1,16 @@
|
||||
#!/bin/sh
|
||||
# @test test.sh
|
||||
# @bug 8017248
|
||||
# @summary Compiler Diacritics Issue
|
||||
# @run shell test.sh
|
||||
|
||||
OSNAME=`uname -s`
|
||||
if [ "$OSNAME" == "Darwin" ]
|
||||
then
|
||||
rm *.class
|
||||
${TESTJAVA}/bin/javac *.java
|
||||
${TESTJAVA}/bin/java `echo *.class | cut -d. -f1`
|
||||
else
|
||||
echo Test is specific to Mac OS X, skipping.
|
||||
exit 0
|
||||
fi
|
Loading…
x
Reference in New Issue
Block a user