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

Reply via email to