-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 John,
Quick question: what exact Tomcat version are you running? - -chris On 3/24/16 12:02 PM, Johan Compagner wrote: > Hi, > > we now get this exception: > > java.lang.StringIndexOutOfBoundsException: String index out of > range: 3 at java.lang.String.charAt(String.java:658) at > org.apache.catalina.loader.WebappClassLoaderBase.filter(WebappClassLoa derBase.java:2780) > > at > org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClass LoaderBase.java:1253) > > at java.lang.ClassLoader.loadClass(ClassLoader.java:411) > at java.lang.ClassLoader.loadClass(ClassLoader.java:411) at > java.lang.ClassLoader.loadClass(ClassLoader.java:411) at > java.lang.ClassLoader.loadClass(ClassLoader.java:357) at > org.mozilla.javascript.Kit.classOrNull(Kit.java:89) at > org.mozilla.javascript.NativeJavaPackage.getPkgProperty(NativeJavaPack age.java:154) > > at > org.mozilla.javascript.NativeJavaPackage.get(NativeJavaPackage.java:11 1) > > at > org.mozilla.javascript.NativeJavaTopPackage.init(NativeJavaTopPackage. java:119) > > > > that is because WebappClassLoaderBase.filter() is really changed in > this release and assumes: > > } else if (name.startsWith("org")) { /* 3 == length("org") */ ch = > name.charAt(3); > > that when it gets "org" it can get the 4 the (position 3) char That > bombs out now > > This is because NativeJavaPackage tries to load anything that it > gets through its get method so it does try "org" until it sees > somethign that is a class. (so org.xxx then org.xxx.Yyy will be > seen as a class) > > I guess that code could be written with a simple length check in > that if above or write it a bit different and have something like: > > } else if (isClassName && name.startsWith("org.apache.")) { /* 11 > == length("org.apache.") */ if (name.startsWith("tomcat.jdbc.", > 11)) { return false; } if (name.startsWith("el.", 11) || > name.startsWith("catalina.", 11) || name.startsWith("jasper.", 11) > || name.startsWith("juli.", 11) || name.startsWith("tomcat.", 11) > || name.startsWith("naming.", 11) || name.startsWith("coyote.", > 11)) { return true; } } else if (!isClassName && > name.startsWith("org/apache/")) { /* 11 == length("org/apache/") > */ if (name.startsWith("tomcat/jdbc/", 11)) { return false; } if > (name.startsWith("el/", 11) || name.startsWith("catalina/", 11) || > name.startsWith("jasper/", 11) || name.startsWith("juli/", 11) || > name.startsWith("tomcat/", 11) || name.startsWith("naming/", 11) > || name.startsWith("coyote/", 11)) { return true; } } > > *that seems a bit shorter and should do the same.* > -----BEGIN PGP SIGNATURE----- Comment: GPGTools - http://gpgtools.org Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ iEYEARECAAYFAlb0MsEACgkQ9CaO5/Lv0PChFACguLV1eOlvZ9QGIM7d6ywWvCwk ulQAn3Yj/wwG34k6Gh1isN/EImBEQ/tm =7DjR -----END PGP SIGNATURE----- --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org