Author: markt
Date: Thu Jul 22 21:36:11 2010
New Revision: 966863
URL: http://svn.apache.org/viewvc?rev=966863&view=rev
Log:
Fix regression in previous fix for
https://issues.apache.org/bugzilla/show_bug.cgi?id=49555
Use TCCL to load webapp classes
Modified:
tomcat/trunk/java/org/apache/jasper/compiler/ELFunctionMapper.java
Modified: tomcat/trunk/java/org/apache/jasper/compiler/ELFunctionMapper.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/jasper/compiler/ELFunctionMapper.java?rev=966863&r1=966862&r2=966863&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/jasper/compiler/ELFunctionMapper.java
(original)
+++ tomcat/trunk/java/org/apache/jasper/compiler/ELFunctionMapper.java Thu Jul
22 21:36:11 2010
@@ -17,8 +17,12 @@
package org.apache.jasper.compiler;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
import java.util.*;
import javax.servlet.jsp.tagext.FunctionInfo;
+
+import org.apache.jasper.Constants;
import org.apache.jasper.JasperException;
/**
@@ -296,13 +300,30 @@ public class ELFunctionMapper {
*/
private String getCanonicalName(String className) throws
JasperException {
Class<?> clazz;
+
+ ClassLoader tccl;
+ if (Constants.IS_SECURITY_ENABLED) {
+ PrivilegedAction<ClassLoader> pa = new PrivilegedGetTccl();
+ tccl = AccessController.doPrivileged(pa);
+ } else {
+ tccl = Thread.currentThread().getContextClassLoader();
+ }
+
try {
- clazz = Class.forName(className);
+ clazz = Class.forName(className, true, tccl);
} catch (ClassNotFoundException e) {
throw new JasperException(e);
}
return clazz.getCanonicalName();
}
}
+
+ private static class PrivilegedGetTccl
+ implements PrivilegedAction<ClassLoader> {
+
+ public ClassLoader run() {
+ return Thread.currentThread().getContextClassLoader();
+ }
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]