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: [email protected]
For additional commands, e-mail: [email protected]