This exception occurs when you attempt Class.forName("org"): java.lang.StringIndexOutOfBoundsException: String index out of range: 3 at java.lang.String.charAt(String.java:658) ~[?:1.8.0_72] at org.apache.catalina.loader.WebappClassLoaderBase.filter(WebappClassLoaderBase.java:2780) ~[catalina.jar:8.0.32] at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1253) ~[catalina.jar:8.0.32] at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1142) ~[catalina.jar:8.0.32] at java.lang.Class.forName0(Native Method) ~[?:1.8.0_72] at java.lang.Class.forName(Class.java:348) ~[?:1.8.0_72] This is a bug - Class.forName() should never throw StringIndexOutOfBoundsException. Instead, it should either return the class named "org" or throw a ClassNotFoundException. Fix: --- WebappClassLoaderBase.java.orig 2016-04-06 13:23:39.000000000 -0500 +++ WebappClassLoaderBase.java 2016-04-06 13:25:24.000000000 -0500 @@ -2751,7 +2751,7 @@ return false; char ch; - if (name.startsWith("javax")) { + if (name.startsWith("javax") && name.length() > 5) { /* 5 == length("javax") */ ch = name.charAt(5); if (isClassName && ch == '.') { @@ -2775,7 +2775,7 @@ return true; } } - } else if (name.startsWith("org")) { + } else if (name.startsWith("org") && name.length() > 3) { /* 3 == length("org") */ ch = name.charAt(3); if (isClassName && ch == '.') {
Hi, Tomcat 8.0.33 is already available so you can switch to it. Regards, Violeta *** This bug has been marked as a duplicate of bug 58999 ***