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: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org