Author: markt Date: Sat Nov 29 11:01:57 2008 New Revision: 721704 URL: http://svn.apache.org/viewvc?rev=721704&view=rev Log: Fix some TCK failures when using a security manager.
Modified: tomcat/trunk/java/org/apache/catalina/core/DefaultInstanceManager.java tomcat/trunk/java/org/apache/catalina/security/SecurityClassLoad.java tomcat/trunk/java/org/apache/jasper/runtime/JspApplicationContextImpl.java Modified: tomcat/trunk/java/org/apache/catalina/core/DefaultInstanceManager.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/DefaultInstanceManager.java?rev=721704&r1=721703&r2=721704&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/core/DefaultInstanceManager.java (original) +++ tomcat/trunk/java/org/apache/catalina/core/DefaultInstanceManager.java Sat Nov 29 11:01:57 2008 @@ -205,14 +205,24 @@ * @throws java.lang.reflect.InvocationTargetException * if call fails */ - protected void preDestroy(Object instance, Class<?> clazz) + protected void preDestroy(Object instance, final Class<?> clazz) throws IllegalAccessException, InvocationTargetException { Class<?> superClass = clazz.getSuperclass(); if (superClass != Object.class) { preDestroy(instance, superClass); } - Method[] methods = clazz.getDeclaredMethods(); + Method[] methods; + if (Globals.IS_SECURITY_ENABLED) { + methods = AccessController.doPrivileged( + new PrivilegedAction<Method[]>(){ + public Method[] run(){ + return clazz.getDeclaredMethods(); + } + }); + } else { + methods = clazz.getDeclaredMethods(); + } Method preDestroy = null; for (Method method : methods) { if (method.isAnnotationPresent(PreDestroy.class)) { Modified: tomcat/trunk/java/org/apache/catalina/security/SecurityClassLoad.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/security/SecurityClassLoad.java?rev=721704&r1=721703&r2=721704&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/security/SecurityClassLoad.java (original) +++ tomcat/trunk/java/org/apache/catalina/security/SecurityClassLoad.java Sat Nov 29 11:01:57 2008 @@ -64,6 +64,21 @@ "core.ContainerBase$PrivilegedAddChild"); loader.loadClass (basePackage + + "core.DefaultInstanceManager$1"); + loader.loadClass + (basePackage + + "core.DefaultInstanceManager$2"); + loader.loadClass + (basePackage + + "core.DefaultInstanceManager$3"); + loader.loadClass + (basePackage + + "core.DefaultInstanceManager$4"); + loader.loadClass + (basePackage + + "core.DefaultInstanceManager$5"); + loader.loadClass + (basePackage + "core.ApplicationHttpRequest$AttributeNamesEnumerator"); } Modified: tomcat/trunk/java/org/apache/jasper/runtime/JspApplicationContextImpl.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/jasper/runtime/JspApplicationContextImpl.java?rev=721704&r1=721703&r2=721704&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/jasper/runtime/JspApplicationContextImpl.java (original) +++ tomcat/trunk/java/org/apache/jasper/runtime/JspApplicationContextImpl.java Sat Nov 29 11:01:57 2008 @@ -16,6 +16,8 @@ */ package org.apache.jasper.runtime; +import java.security.AccessController; +import java.security.PrivilegedAction; import java.util.ArrayList; import java.util.Iterator; import java.util.List; @@ -37,6 +39,7 @@ import javax.servlet.jsp.el.ScopedAttributeELResolver; import org.apache.el.ExpressionFactoryImpl; +import org.apache.jasper.Constants; import org.apache.jasper.el.ELContextImpl; /** @@ -88,8 +91,18 @@ } // create ELContext for JspContext - ELResolver r = this.createELResolver(); - ELContextImpl ctx = new ELContextImpl(r); + final ELResolver r = this.createELResolver(); + ELContextImpl ctx; + if (Constants.IS_SECURITY_ENABLED) { + ctx = AccessController.doPrivileged( + new PrivilegedAction<ELContextImpl>() { + public ELContextImpl run() { + return new ELContextImpl(r); + } + }); + } else { + ctx = new ELContextImpl(r); + } ctx.putContext(JspContext.class, context); // alert all ELContextListeners --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]