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