Author: markt Date: Wed Mar 9 14:48:29 2011 New Revision: 1079819 URL: http://svn.apache.org/viewvc?rev=1079819&view=rev Log: Fix some test failures. Don't use load() since that creates a whole bunch of edge cases that need to be handled.
Modified: tomcat/trunk/java/org/apache/catalina/core/StandardWrapper.java Modified: tomcat/trunk/java/org/apache/catalina/core/StandardWrapper.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/StandardWrapper.java?rev=1079819&r1=1079818&r2=1079819&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/core/StandardWrapper.java (original) +++ tomcat/trunk/java/org/apache/catalina/core/StandardWrapper.java Wed Mar 9 14:48:29 2011 @@ -1089,7 +1089,7 @@ public class StandardWrapper extends Con } } - processServletSecurityAnnotation(servlet); + processServletSecurityAnnotation(servlet.getClass()); // Special handling for ContainerServlet instances if ((servlet instanceof ContainerServlet) && @@ -1129,19 +1129,26 @@ public class StandardWrapper extends Con /** * {@inheritDoc} + * @throws ClassNotFoundException */ @Override public void servletSecurityAnnotationScan() throws ServletException { if (instance == null) { - load(); + Class<?> clazz = null; + try { + clazz = getParentClassLoader().loadClass(getServletClass()); + processServletSecurityAnnotation(clazz); + } catch (ClassNotFoundException e) { + // Safe to ignore. No class means no annotations to process + } } else { if (servletSecurityAnnotationScanRequired) { - processServletSecurityAnnotation(instance); + processServletSecurityAnnotation(instance.getClass()); } } } - private void processServletSecurityAnnotation(Servlet servlet) { + private void processServletSecurityAnnotation(Class<?> clazz) { // Calling this twice isn't harmful so no syncs servletSecurityAnnotationScanRequired = false; @@ -1152,7 +1159,7 @@ public class StandardWrapper extends Con } ServletSecurity secAnnotation = - servlet.getClass().getAnnotation(ServletSecurity.class); + clazz.getAnnotation(ServletSecurity.class); if (secAnnotation != null) { ctxt.addServletSecurity( new ApplicationServletRegistration(this, ctxt), --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org