* @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)) {
"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");
}
*/
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;
import javax.servlet.jsp.el.ScopedAttributeELResolver;
import org.apache.el.ExpressionFactoryImpl;
+import org.apache.jasper.Constants;
import org.apache.jasper.el.ELContextImpl;
/**
}
// 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