You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by ga...@apache.org on 2010/02/19 19:23:29 UTC
svn commit: r911892 - in
/geronimo/specs/trunk/geronimo-el_2.2_spec/src/main/java/javax/el:
ArrayELResolver.java ListELResolver.java
Author: gawor
Date: Fri Feb 19 18:23:29 2010
New Revision: 911892
URL: http://svn.apache.org/viewvc?rev=911892&view=rev
Log:
some spec compliance updates
Modified:
geronimo/specs/trunk/geronimo-el_2.2_spec/src/main/java/javax/el/ArrayELResolver.java
geronimo/specs/trunk/geronimo-el_2.2_spec/src/main/java/javax/el/ListELResolver.java
Modified: geronimo/specs/trunk/geronimo-el_2.2_spec/src/main/java/javax/el/ArrayELResolver.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-el_2.2_spec/src/main/java/javax/el/ArrayELResolver.java?rev=911892&r1=911891&r2=911892&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-el_2.2_spec/src/main/java/javax/el/ArrayELResolver.java (original)
+++ geronimo/specs/trunk/geronimo-el_2.2_spec/src/main/java/javax/el/ArrayELResolver.java Fri Feb 19 18:23:29 2010
@@ -88,7 +88,13 @@
int idx = coerce(property);
checkBounds(base, idx);
- Array.set(base, idx, value);
+ try {
+ Array.set(base, idx, value);
+ } catch (IllegalArgumentException e) {
+ ClassCastException ex = new ClassCastException(e.getMessage());
+ ex.initCause(e);
+ throw ex;
+ }
}
}
Modified: geronimo/specs/trunk/geronimo-el_2.2_spec/src/main/java/javax/el/ListELResolver.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-el_2.2_spec/src/main/java/javax/el/ListELResolver.java?rev=911892&r1=911891&r2=911892&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-el_2.2_spec/src/main/java/javax/el/ListELResolver.java (original)
+++ geronimo/specs/trunk/geronimo-el_2.2_spec/src/main/java/javax/el/ListELResolver.java Fri Feb 19 18:23:29 2010
@@ -68,9 +68,7 @@
context.setPropertyResolved(true);
List list = (List) base;
int idx = coerce(property);
- if (idx < 0 || idx >= list.size()) {
- return null;
- }
+ checkBounds(list, idx);
Object obj = list.get(idx);
return (obj != null) ? obj.getClass() : null;
}
@@ -97,6 +95,7 @@
}
int idx = coerce(property);
+ checkBounds(list, idx);
try {
list.set(idx, value);
} catch (UnsupportedOperationException e) {
@@ -117,10 +116,7 @@
context.setPropertyResolved(true);
List list = (List) base;
int idx = coerce(property);
- if (idx < 0 || idx >= list.size()) {
- throw new PropertyNotFoundException(
- new ArrayIndexOutOfBoundsException(idx).getMessage());
- }
+ checkBounds(list, idx);
return this.readOnly || UNMODIFIABLE.equals(list.getClass());
}
@@ -152,6 +148,13 @@
return null;
}
+ private final static void checkBounds(List base, int idx) {
+ if (idx < 0 || idx >= base.size()) {
+ throw new PropertyNotFoundException(
+ new ArrayIndexOutOfBoundsException(idx).getMessage());
+ }
+ }
+
private final static int coerce(Object property) {
if (property instanceof Number) {
return ((Number) property).intValue();