Author: markt
Date: Fri Jan 15 19:37:46 2010
New Revision: 899783

URL: http://svn.apache.org/viewvc?rev=899783&view=rev
Log:
TCK failure. Make sure an ELException is throw if the conversion fails.

Modified:
    tomcat/trunk/java/org/apache/el/lang/ELSupport.java

Modified: tomcat/trunk/java/org/apache/el/lang/ELSupport.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/el/lang/ELSupport.java?rev=899783&r1=899782&r2=899783&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/el/lang/ELSupport.java (original)
+++ tomcat/trunk/java/org/apache/el/lang/ELSupport.java Fri Jan 15 19:37:46 2010
@@ -193,10 +193,10 @@
      * Null and empty string are false.
      * @param obj the object to convert
      * @return the Boolean value of the object
-     * @throws IllegalArgumentException if object is not Boolean or String
+     * @throws ELException if object is not Boolean or String
      */
     public final static Boolean coerceToBoolean(final Object obj)
-            throws IllegalArgumentException {
+            throws ELException {
         if (obj == null || "".equals(obj)) {
             return Boolean.FALSE;
         }
@@ -207,12 +207,12 @@
             return Boolean.valueOf((String) obj);
         }
 
-        throw new IllegalArgumentException(MessageFactory.get("error.convert",
+        throw new ELException(MessageFactory.get("error.convert",
                 obj, obj.getClass(), Boolean.class));
     }
 
     public final static Character coerceToCharacter(final Object obj)
-            throws IllegalArgumentException {
+            throws ELException {
         if (obj == null || "".equals(obj)) {
             return new Character((char) 0);
         }
@@ -227,7 +227,7 @@
             return (Character) obj;
         }
 
-        throw new IllegalArgumentException(MessageFactory.get("error.convert",
+        throw new ELException(MessageFactory.get("error.convert",
                 obj, objType, Character.class));
     }
 
@@ -247,7 +247,7 @@
     }
 
     protected final static Number coerceToNumber(final Number number,
-            final Class<?> type) throws IllegalArgumentException {
+            final Class<?> type) throws ELException {
         if (Long.TYPE == type || Long.class.equals(type)) {
             return new Long(number.longValue());
         }
@@ -288,12 +288,12 @@
             return number;
         }
 
-        throw new IllegalArgumentException(MessageFactory.get("error.convert",
+        throw new ELException(MessageFactory.get("error.convert",
                 number, number.getClass(), type));
     }
 
     public final static Number coerceToNumber(final Object obj,
-            final Class<?> type) throws IllegalArgumentException {
+            final Class<?> type) throws ELException {
         if (obj == null || "".equals(obj)) {
             return coerceToNumber(ZERO, type);
         }
@@ -309,38 +309,78 @@
                     .charValue()), type);
         }
 
-        throw new IllegalArgumentException(MessageFactory.get("error.convert",
+        throw new ELException(MessageFactory.get("error.convert",
                 obj, obj.getClass(), type));
     }
 
     protected final static Number coerceToNumber(final String val,
-            final Class<?> type) throws IllegalArgumentException {
+            final Class<?> type) throws ELException {
         if (Long.TYPE == type || Long.class.equals(type)) {
-            return Long.valueOf(val);
+            try {
+                return Long.valueOf(val);
+            } catch (NumberFormatException nfe) {
+                throw new ELException(MessageFactory.get("error.convert",
+                        val, String.class, type));
+            }
         }
         if (Integer.TYPE == type || Integer.class.equals(type)) {
-            return Integer.valueOf(val);
+            try {
+                return Integer.valueOf(val);
+            } catch (NumberFormatException nfe) {
+                throw new ELException(MessageFactory.get("error.convert",
+                        val, String.class, type));
+            }
         }
         if (Double.TYPE == type || Double.class.equals(type)) {
-            return Double.valueOf(val);
+            try {
+                return Double.valueOf(val);
+            } catch (NumberFormatException nfe) {
+                throw new ELException(MessageFactory.get("error.convert",
+                        val, String.class, type));
+            }
         }
         if (BigInteger.class.equals(type)) {
-            return new BigInteger(val);
+            try {
+                return new BigInteger(val);
+            } catch (NumberFormatException nfe) {
+                throw new ELException(MessageFactory.get("error.convert",
+                        val, String.class, type));
+            }
         }
         if (BigDecimal.class.equals(type)) {
-            return new BigDecimal(val);
+            try {
+                return new BigDecimal(val);
+            } catch (NumberFormatException nfe) {
+                throw new ELException(MessageFactory.get("error.convert",
+                        val, String.class, type));
+            }
         }
         if (Byte.TYPE == type || Byte.class.equals(type)) {
-            return Byte.valueOf(val);
+            try {
+                return Byte.valueOf(val);
+            } catch (NumberFormatException nfe) {
+                throw new ELException(MessageFactory.get("error.convert",
+                        val, String.class, type));
+            }
         }
         if (Short.TYPE == type || Short.class.equals(type)) {
-            return Short.valueOf(val);
+            try {
+                return Short.valueOf(val);
+            } catch (NumberFormatException nfe) {
+                throw new ELException(MessageFactory.get("error.convert",
+                        val, String.class, type));
+            }
         }
         if (Float.TYPE == type || Float.class.equals(type)) {
-            return Float.valueOf(val);
+            try {
+                return Float.valueOf(val);
+            } catch (NumberFormatException nfe) {
+                throw new ELException(MessageFactory.get("error.convert",
+                        val, String.class, type));
+            }
         }
 
-        throw new IllegalArgumentException(MessageFactory.get("error.convert",
+        throw new ELException(MessageFactory.get("error.convert",
                 val, String.class, type));
     }
 
@@ -362,7 +402,7 @@
     }
 
     public final static void checkType(final Object obj, final Class<?> type)
-        throws IllegalArgumentException {
+        throws ELException {
         if (String.class.equals(type)) {
             coerceToString(obj);
         }
@@ -381,7 +421,7 @@
     }
 
     public final static Object coerceToType(final Object obj,
-            final Class<?> type) throws IllegalArgumentException {
+            final Class<?> type) throws ELException {
         if (type == null || Object.class.equals(type) ||
                 (obj != null && type.isAssignableFrom(obj.getClass()))) {
             return obj;
@@ -414,7 +454,7 @@
                 return editor.getValue();
             }
         }
-        throw new IllegalArgumentException(MessageFactory.get("error.convert",
+        throw new ELException(MessageFactory.get("error.convert",
                 obj, obj.getClass(), type));
     }
 



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to