Sometimes, when running on nashorn, the Class.forName could return an undefined symbol. Detecting such case and redoing the query seems to return things to normal.
1.1 --- a/rt/emul/mini/src/main/java/java/lang/Class.java Sat Mar 05 10:28:10 2016 +0100
1.2 +++ b/rt/emul/mini/src/main/java/java/lang/Class.java Sat Mar 19 08:45:39 2016 +0100
1.3 @@ -165,7 +165,11 @@
1.4 return arrType;
1.5 }
1.6 try {
1.7 - Class<?> c = loadCls(className, className.replace('.', '_'));
1.8 + final String inJsName = className.replace('.', '_');
1.9 + Class<?> c = loadCls(className, inJsName);
1.10 + if (c == null) {
1.11 + c = loadCls(className, inJsName);
1.12 + }
1.13 if (c == null) {
1.14 throw new ClassNotFoundException(className);
1.15 }
1.16 @@ -255,7 +259,7 @@
1.17 + "}\n"
1.18 + "if (!m) return null;"
1.19 + "m(false);"
1.20 - + "return m.$class;"
1.21 + + "return m.$class ? m.$class : null;"
1.22 )
1.23 private static native Class<?> loadCls(String n, String c);
1.24