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]