Author: markt Date: Wed Aug 7 09:16:31 2013 New Revision: 1511217 URL: http://svn.apache.org/r1511217 Log: When using a security manager always use the same method inside the doPrivileged call as triggered the call. This fixes an startup failure when running 8.0.x under a security manager as it uses a listener that does not have a zero arg constructor.
Modified: tomcat/trunk/java/org/apache/catalina/core/ApplicationContextFacade.java Modified: tomcat/trunk/java/org/apache/catalina/core/ApplicationContextFacade.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/ApplicationContextFacade.java?rev=1511217&r1=1511216&r2=1511217&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/core/ApplicationContextFacade.java (original) +++ tomcat/trunk/java/org/apache/catalina/core/ApplicationContextFacade.java Wed Aug 7 09:16:31 2013 @@ -462,7 +462,8 @@ public class ApplicationContextFacade im Class<? extends Filter> filterClass) { if (SecurityUtil.isPackageProtectionEnabled()) { return (FilterRegistration.Dynamic) doPrivileged("addFilter", - new Object[]{filterName, filterClass.getName()}); + new Class[]{String.class, Class.class}, + new Object[]{filterName, filterClass}); } else { return context.addFilter(filterName, filterClass); } @@ -530,7 +531,8 @@ public class ApplicationContextFacade im Class<? extends Servlet> servletClass) { if (SecurityUtil.isPackageProtectionEnabled()) { return (ServletRegistration.Dynamic) doPrivileged("addServlet", - new Object[]{servletName, servletClass.getName()}); + new Class[]{String.class, Class.class}, + new Object[]{servletName, servletClass}); } else { return context.addServlet(servletName, servletClass); } @@ -630,7 +632,8 @@ public class ApplicationContextFacade im public void addListener(Class<? extends EventListener> listenerClass) { if (SecurityUtil.isPackageProtectionEnabled()) { doPrivileged("addListener", - new Object[]{listenerClass.getName()}); + new Class[]{Class.class}, + new Object[]{listenerClass}); } else { context.addListener(listenerClass); } @@ -652,7 +655,8 @@ public class ApplicationContextFacade im public <T extends EventListener> void addListener(T t) { if (SecurityUtil.isPackageProtectionEnabled()) { doPrivileged("addListener", - new Object[]{t.getClass().getName()}); + new Class[]{EventListener.class}, + new Object[]{t}); } else { context.addListener(t); } @@ -683,9 +687,7 @@ public class ApplicationContextFacade im @Override public void declareRoles(String... roleNames) { if (SecurityUtil.isPackageProtectionEnabled()) { -//FIXME - doPrivileged("declareRoles", - new Object[]{roleNames}); + doPrivileged("declareRoles", new Object[]{roleNames}); } else { context.declareRoles(roleNames); } --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org