Author: markt
Date: Mon May 9 18:44:11 2011
New Revision: 1101144
URL: http://svn.apache.org/viewvc?rev=1101144&view=rev
Log:
Additional fix for https://issues.apache.org/bugzilla/show_bug.cgi?id=51177
ListElResolver should also return Object.class for getType()
Modified:
tomcat/trunk/java/javax/el/ListELResolver.java
tomcat/trunk/test/org/apache/el/TestValueExpressionImpl.java
Modified: tomcat/trunk/java/javax/el/ListELResolver.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/javax/el/ListELResolver.java?rev=1101144&r1=1101143&r2=1101144&view=diff
==============================================================================
--- tomcat/trunk/java/javax/el/ListELResolver.java (original)
+++ tomcat/trunk/java/javax/el/ListELResolver.java Mon May 9 18:44:11 2011
@@ -74,8 +74,7 @@ public class ListELResolver extends ELRe
throw new PropertyNotFoundException(
new ArrayIndexOutOfBoundsException(idx).getMessage());
}
- Object obj = list.get(idx);
- return (obj != null) ? obj.getClass() : null;
+ return Object.class;
}
return null;
Modified: tomcat/trunk/test/org/apache/el/TestValueExpressionImpl.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/el/TestValueExpressionImpl.java?rev=1101144&r1=1101143&r2=1101144&view=diff
==============================================================================
--- tomcat/trunk/test/org/apache/el/TestValueExpressionImpl.java (original)
+++ tomcat/trunk/test/org/apache/el/TestValueExpressionImpl.java Mon May 9
18:44:11 2011
@@ -17,7 +17,9 @@
package org.apache.el;
+import java.util.ArrayList;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
import javax.el.ELContext;
@@ -133,4 +135,31 @@ public class TestValueExpressionImpl ext
ve2.setValue(context, o1);
assertEquals(o1, ve2.getValue(context));
}
+
+ public void testBug51177ObjectList() {
+ ExpressionFactory factory = ExpressionFactory.newInstance();
+ ELContext context = new ELContextImpl();
+
+ Object o1 = "String value";
+ Object o2 = new Integer(32);
+
+ List<Object> list = new ArrayList<Object>();
+ list.add(0, o1);
+ list.add(1, o2);
+
+ ValueExpression var =
+ factory.createValueExpression(list, List.class);
+ context.getVariableMapper().setVariable("list", var);
+
+ ValueExpression ve1 = factory.createValueExpression(
+ context, "${list[0]}", Object.class);
+ ve1.setValue(context, o2);
+ assertEquals(o2, ve1.getValue(context));
+
+ ValueExpression ve2 = factory.createValueExpression(
+ context, "${list[1]}", Object.class);
+ ve2.setValue(context, o1);
+ assertEquals(o1, ve2.getValue(context));
+ }
+
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]