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

Reply via email to