Author: markt
Date: Tue Jan 11 17:04:13 2011
New Revision: 1057730

URL: http://svn.apache.org/viewvc?rev=1057730&view=rev
Log:
Better handling of special case of  
javax.servlet.jsp.el.ScopedAttributeELResolver

Modified:
    tomcat/trunk/java/javax/el/CompositeELResolver.java

Modified: tomcat/trunk/java/javax/el/CompositeELResolver.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/javax/el/CompositeELResolver.java?rev=1057730&r1=1057729&r2=1057730&view=diff
==============================================================================
--- tomcat/trunk/java/javax/el/CompositeELResolver.java (original)
+++ tomcat/trunk/java/javax/el/CompositeELResolver.java Tue Jan 11 17:04:13 2011
@@ -23,6 +23,18 @@ import java.util.NoSuchElementException;
 
 public class CompositeELResolver extends ELResolver {
 
+    private static final Class<?> SCOPED_ATTRIBUTE_EL_RESOLVER;
+    static {
+        Class<?> clazz = null;
+        try {
+            clazz =
+                
Class.forName("javax.servlet.jsp.el.ScopedAttributeELResolver");
+        } catch (ClassNotFoundException e) {
+            // Ignore. This is expected if using the EL stand-alone 
+        }
+        SCOPED_ATTRIBUTE_EL_RESOLVER = clazz;
+    }
+
     private int size;
 
     private ELResolver[] resolvers;
@@ -118,10 +130,12 @@ public class CompositeELResolver extends
         for (int i = 0; i < sz; i++) {
             type = this.resolvers[i].getType(context, base, property);
             if (context.isPropertyResolved()) {
-                if (resolvers[i].getClass().getName().equals(
-                        "javax.servlet.jsp.el.ScopedAttributeELResolver")) {
-                    // Special case since this will always return Object.class
-                    // for type
+                if (SCOPED_ATTRIBUTE_EL_RESOLVER != null &&
+                        SCOPED_ATTRIBUTE_EL_RESOLVER.isAssignableFrom(
+                                resolvers[i].getClass())) {
+                    // Special case since
+                    // javax.servlet.jsp.el.ScopedAttributeELResolver will
+                    // always return Object.class for type
                     Object value =
                         resolvers[i].getValue(context, base, property);
                     if (value != null) {



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to