You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by vi...@apache.org on 2013/07/10 22:04:29 UTC
svn commit: r1501948 - in /tomcat/tc7.0.x/trunk: ./
java/javax/el/ListELResolver.java test/javax/el/TestListELResolver.java
webapps/docs/changelog.xml
Author: violetagg
Date: Wed Jul 10 20:04:29 2013
New Revision: 1501948
URL: http://svn.apache.org/r1501948
Log:
Merged revision 1501823 from tomcat/trunk:
javax.el.ListELResolver:
According to javadoc:
1. getFeatureDescriptors - always returns null
2. isReadOnly - when property cannot be coerced into an integer it is ignored by the resolver.
Unit tests are added
Added:
tomcat/tc7.0.x/trunk/test/javax/el/TestListELResolver.java
- copied, changed from r1501823, tomcat/trunk/test/javax/el/TestListELResolver.java
Modified:
tomcat/tc7.0.x/trunk/ (props changed)
tomcat/tc7.0.x/trunk/java/javax/el/ListELResolver.java
tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml
Propchange: tomcat/tc7.0.x/trunk/
------------------------------------------------------------------------------
Merged /tomcat/trunk:r1501823
Modified: tomcat/tc7.0.x/trunk/java/javax/el/ListELResolver.java
URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/javax/el/ListELResolver.java?rev=1501948&r1=1501947&r2=1501948&view=diff
==============================================================================
--- tomcat/tc7.0.x/trunk/java/javax/el/ListELResolver.java (original)
+++ tomcat/tc7.0.x/trunk/java/javax/el/ListELResolver.java Wed Jul 10 20:04:29 2013
@@ -19,7 +19,6 @@ package javax.el;
import java.beans.FeatureDescriptor;
import java.util.ArrayList;
-import java.util.Arrays;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
@@ -121,10 +120,15 @@ public class ListELResolver extends ELRe
if (base instanceof List<?>) {
context.setPropertyResolved(true);
List<?> list = (List<?>) base;
- int idx = coerce(property);
- if (idx < 0 || idx >= list.size()) {
- throw new PropertyNotFoundException(
- new ArrayIndexOutOfBoundsException(idx).getMessage());
+ try {
+ int idx = coerce(property);
+ if (idx < 0 || idx >= list.size()) {
+ throw new PropertyNotFoundException(
+ new ArrayIndexOutOfBoundsException(idx)
+ .getMessage());
+ }
+ } catch (IllegalArgumentException e) {
+ // ignore
}
return this.readOnly || UNMODIFIABLE.equals(list.getClass());
}
@@ -134,20 +138,6 @@ public class ListELResolver extends ELRe
@Override
public Iterator<FeatureDescriptor> getFeatureDescriptors(ELContext context, Object base) {
- if (base instanceof List<?>) {
- FeatureDescriptor[] descs = new FeatureDescriptor[((List<?>) base).size()];
- for (int i = 0; i < descs.length; i++) {
- descs[i] = new FeatureDescriptor();
- descs[i].setDisplayName("["+i+"]");
- descs[i].setExpert(false);
- descs[i].setHidden(false);
- descs[i].setName(""+i);
- descs[i].setPreferred(true);
- descs[i].setValue(RESOLVABLE_AT_DESIGN_TIME, Boolean.FALSE);
- descs[i].setValue(TYPE, Integer.class);
- }
- return Arrays.asList(descs).iterator();
- }
return null;
}
Copied: tomcat/tc7.0.x/trunk/test/javax/el/TestListELResolver.java (from r1501823, tomcat/trunk/test/javax/el/TestListELResolver.java)
URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/test/javax/el/TestListELResolver.java?p2=tomcat/tc7.0.x/trunk/test/javax/el/TestListELResolver.java&p1=tomcat/trunk/test/javax/el/TestListELResolver.java&r1=1501823&r2=1501948&rev=1501948&view=diff
==============================================================================
--- tomcat/trunk/test/javax/el/TestListELResolver.java (original)
+++ tomcat/tc7.0.x/trunk/test/javax/el/TestListELResolver.java Wed Jul 10 20:04:29 2013
@@ -23,6 +23,8 @@ import java.util.List;
import org.junit.Assert;
import org.junit.Test;
+import org.apache.jasper.el.ELContextImpl;
+
public class TestListELResolver {
/**
@@ -49,10 +51,9 @@ public class TestListELResolver {
@Test
public void testGetValue03() {
ListELResolver resolver = new ListELResolver();
- ELContext context = new StandardELContext(
- ELManager.getExpressionFactory());
+ ELContext context = new ELContextImpl();
- List<String> list = new ArrayList<>();
+ List<String> list = new ArrayList<String>();
list.add("key");
Object result = resolver.getValue(context, list, new Integer(0));
@@ -66,10 +67,9 @@ public class TestListELResolver {
@Test(expected = IllegalArgumentException.class)
public void testGetValue04() {
ListELResolver resolver = new ListELResolver();
- ELContext context = new StandardELContext(
- ELManager.getExpressionFactory());
+ ELContext context = new ELContextImpl();
- List<String> list = new ArrayList<>();
+ List<String> list = new ArrayList<String>();
list.add("key");
resolver.getValue(context, list, "key");
}
@@ -80,10 +80,9 @@ public class TestListELResolver {
@Test
public void testGetValue05() {
ListELResolver resolver = new ListELResolver();
- ELContext context = new StandardELContext(
- ELManager.getExpressionFactory());
+ ELContext context = new ELContextImpl();
- List<String> list = new ArrayList<>();
+ List<String> list = new ArrayList<String>();
list.add("key");
Object result = resolver.getValue(context, list, new Integer(1));
@@ -120,10 +119,9 @@ public class TestListELResolver {
@Test
public void testGetType03() {
ListELResolver resolver = new ListELResolver();
- ELContext context = new StandardELContext(
- ELManager.getExpressionFactory());
+ ELContext context = new ELContextImpl();
- List<String> list = new ArrayList<>();
+ List<String> list = new ArrayList<String>();
list.add("key");
Class<?> result = resolver.getType(context, list, new Integer(0));
@@ -137,10 +135,9 @@ public class TestListELResolver {
@Test(expected = PropertyNotFoundException.class)
public void testGetType04() {
ListELResolver resolver = new ListELResolver();
- ELContext context = new StandardELContext(
- ELManager.getExpressionFactory());
+ ELContext context = new ELContextImpl();
- List<String> list = new ArrayList<>();
+ List<String> list = new ArrayList<String>();
list.add("key");
resolver.getType(context, list, new Integer(1));
}
@@ -169,10 +166,9 @@ public class TestListELResolver {
@Test(expected = PropertyNotWritableException.class)
public void testSetValue03() {
ListELResolver resolver = new ListELResolver(true);
- ELContext context = new StandardELContext(
- ELManager.getExpressionFactory());
+ ELContext context = new ELContextImpl();
- resolver.setValue(context, new ArrayList<>(), new Object(),
+ resolver.setValue(context, new ArrayList<Object>(), new Object(),
new Object());
}
@@ -182,10 +178,9 @@ public class TestListELResolver {
@Test
public void testSetValue04() {
ListELResolver resolver = new ListELResolver();
- ELContext context = new StandardELContext(
- ELManager.getExpressionFactory());
+ ELContext context = new ELContextImpl();
- List<String> list = new ArrayList<>();
+ List<String> list = new ArrayList<String>();
list.add("value");
resolver.setValue(context, list, new Integer(0), "value");
@@ -200,10 +195,10 @@ public class TestListELResolver {
@Test(expected = PropertyNotWritableException.class)
public void testSetValue05() {
ListELResolver resolver = new ListELResolver();
- ELContext context = new StandardELContext(
- ELManager.getExpressionFactory());
+ ELContext context = new ELContextImpl();
- List<Object> list = Collections.unmodifiableList(new ArrayList<>());
+ List<Object> list = Collections
+ .unmodifiableList(new ArrayList<Object>());
resolver.setValue(context, list, new Integer(0), "value");
}
@@ -213,10 +208,9 @@ public class TestListELResolver {
@Test(expected = IllegalArgumentException.class)
public void testSetValue06() {
ListELResolver resolver = new ListELResolver();
- ELContext context = new StandardELContext(
- ELManager.getExpressionFactory());
+ ELContext context = new ELContextImpl();
- List<String> list = new ArrayList<>();
+ List<String> list = new ArrayList<String>();
list.add("key");
resolver.setValue(context, list, "key", "value");
}
@@ -227,10 +221,9 @@ public class TestListELResolver {
@Test(expected = PropertyNotFoundException.class)
public void testSetValue07() {
ListELResolver resolver = new ListELResolver();
- ELContext context = new StandardELContext(
- ELManager.getExpressionFactory());
+ ELContext context = new ELContextImpl();
- List<String> list = new ArrayList<>();
+ List<String> list = new ArrayList<String>();
list.add("key");
resolver.setValue(context, list, new Integer(1), "value");
}
@@ -250,8 +243,7 @@ public class TestListELResolver {
@Test
public void testIsReadOnly02() {
ListELResolver resolver = new ListELResolver();
- ELContext context = new StandardELContext(
- ELManager.getExpressionFactory());
+ ELContext context = new ELContextImpl();
boolean result = resolver.isReadOnly(context, new Object(),
new Object());
@@ -274,10 +266,9 @@ public class TestListELResolver {
@Test
public void testIsReadOnly03() {
ListELResolver resolver = new ListELResolver();
- ELContext context = new StandardELContext(
- ELManager.getExpressionFactory());
+ ELContext context = new ELContextImpl();
- List<String> list = new ArrayList<>();
+ List<String> list = new ArrayList<String>();
list.add("key");
boolean result = resolver.isReadOnly(context, list, new Integer(0));
@@ -298,10 +289,9 @@ public class TestListELResolver {
@Test
public void testIsReadOnly04() {
ListELResolver resolver = new ListELResolver();
- ELContext context = new StandardELContext(
- ELManager.getExpressionFactory());
+ ELContext context = new ELContextImpl();
- List<String> list = new ArrayList<>();
+ List<String> list = new ArrayList<String>();
list.add("key");
List<String> unmodifiableList = Collections.unmodifiableList(list);
boolean result = resolver.isReadOnly(context, unmodifiableList,
@@ -317,10 +307,9 @@ public class TestListELResolver {
@Test(expected = PropertyNotFoundException.class)
public void testIsReadOnly05() {
ListELResolver resolver = new ListELResolver();
- ELContext context = new StandardELContext(
- ELManager.getExpressionFactory());
+ ELContext context = new ELContextImpl();
- List<String> list = new ArrayList<>();
+ List<String> list = new ArrayList<String>();
list.add("key");
resolver.isReadOnly(context, list, new Integer(1));
}
@@ -331,10 +320,9 @@ public class TestListELResolver {
@Test
public void testIsReadOnly06() {
ListELResolver resolver = new ListELResolver();
- ELContext context = new StandardELContext(
- ELManager.getExpressionFactory());
+ ELContext context = new ELContextImpl();
- List<String> list = new ArrayList<>();
+ List<String> list = new ArrayList<String>();
list.add("key");
boolean result = resolver.isReadOnly(context, list, "key");
@@ -352,8 +340,7 @@ public class TestListELResolver {
private void doNegativeTest(Object base, Object trigger,
MethodUnderTest method, boolean checkResult) {
ListELResolver resolver = new ListELResolver();
- ELContext context = new StandardELContext(
- ELManager.getExpressionFactory());
+ ELContext context = new ELContextImpl();
Object result = null;
switch (method) {
Modified: tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml
URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml?rev=1501948&r1=1501947&r2=1501948&view=diff
==============================================================================
--- tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml Wed Jul 10 20:04:29 2013
@@ -107,10 +107,18 @@
(violetagg)
</fix>
<fix>
- <bug>55207</bug>: Enfore the restriction that a <jsp:text> element
+ <bug>55207</bug>: Enforce the restriction that a <jsp:text> element
may not contain any sub-elements from any namespace. Patch provided by
Jeremy Boynes. (mark))
</fix>
+ <fix>
+ Ensure that
+ <code>javax.el.ListELResolver.getFeatureDescriptors(ELContext,Object)</code>
+ will always return null.
+ <code>javax.el.ListELResolver.isReadOnly(ELContext,Object,Object)</code>
+ will return a result when the property cannot be coerced into an
+ integer. (violetagg)
+ </fix>
</changelog>
</subsection>
<subsection name="Cluster">
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org