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: [email protected]
For additional commands, e-mail: [email protected]