2017-12-11 20:47 GMT+03:00 <ma...@apache.org>: > Author: markt > Date: Mon Dec 11 17:47:03 2017 > New Revision: 1817800 > > URL: http://svn.apache.org/viewvc?rev=1817800&view=rev > Log: > Pre-load additional classes to prevent SecurityExceptions if the first > request received when running under a security manager is an asynchronous > servlet. > > Modified: > > tomcat/tc7.0.x/trunk/java/org/apache/catalina/security/SecurityClassLoad.java > tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml > > Modified: > tomcat/tc7.0.x/trunk/java/org/apache/catalina/security/SecurityClassLoad.java > URL: > http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/catalina/security/SecurityClassLoad.java?rev=1817800&r1=1817799&r2=1817800&view=diff > ============================================================================== > --- > tomcat/tc7.0.x/trunk/java/org/apache/catalina/security/SecurityClassLoad.java > (original) > +++ > tomcat/tc7.0.x/trunk/java/org/apache/catalina/security/SecurityClassLoad.java > Mon Dec 11 17:47:03 2017 > @@ -163,6 +163,10 @@ public final class SecurityClassLoad { > private static final void loadCoyotePackage(ClassLoader loader) > throws Exception { > final String basePackage = "org.apache.coyote."; > + // Classes created by the Java 6 compiler because we use switch with > an enum
Looking into tomcat-coyote.jar, there is also AbstractHttp11Processor$1.class, Decompiler shows that it also contains switch(enum) helping mappings: static final int $SwitchMap$org$apache$coyote$ActionCode[]; static final int $SwitchMap$org$apache$tomcat$util$log$UserDataHelper$Mode[]; > + loader.loadClass(basePackage + "http11.Http11Processor$1"); > + loader.loadClass(basePackage + "http11.Http11NioProcessor$1"); > + loader.loadClass(basePackage + "http11.Http11AprProcessor$1"); > loader.loadClass(basePackage + "http11.AbstractOutputBuffer$1"); > loader.loadClass(basePackage + "http11.Constants"); > // Make sure system property is read at this point > @@ -292,6 +296,7 @@ public final class SecurityClassLoad { > "util.net.NioBlockingSelector$BlockPoller$2"); > loader.loadClass(basePackage + > "util.net.NioBlockingSelector$BlockPoller$3"); > + loader.loadClass(basePackage + "util.net.SendfileState"); > loader.loadClass(basePackage + "util.net.SSLSupport$CipherData"); > // security > loader.loadClass(basePackage + "util.security.PrivilegedGetTccl"); > --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org