Author: markt
Date: Thu May  5 13:39:09 2011
New Revision: 1099789

URL: http://svn.apache.org/viewvc?rev=1099789&view=rev
Log:
Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=47371
Correctly coerce the empty string to zero when used as an operand in EL 
arithmetic.
Patch provided by gbt.

Modified:
    tomcat/trunk/java/org/apache/el/lang/ELArithmetic.java
    tomcat/trunk/test/org/apache/el/lang/TestELArithmetic.java
    tomcat/trunk/webapps/docs/changelog.xml

Modified: tomcat/trunk/java/org/apache/el/lang/ELArithmetic.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/el/lang/ELArithmetic.java?rev=1099789&r1=1099788&r2=1099789&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/el/lang/ELArithmetic.java (original)
+++ tomcat/trunk/java/org/apache/el/lang/ELArithmetic.java Thu May  5 13:39:09 
2011
@@ -394,13 +394,12 @@ public abstract class ELArithmetic {
         if (isNumber(obj)) {
             return coerce((Number) obj);
         }
-        if (obj instanceof String) {
-            return coerce((String) obj);
-        }
         if (obj == null || "".equals(obj)) {
             return coerce(ZERO);
         }
-
+        if (obj instanceof String) {
+            return coerce((String) obj);
+        }
         if (obj instanceof Character) {
             return coerce(Short.valueOf((short) ((Character) 
obj).charValue()));
         }

Modified: tomcat/trunk/test/org/apache/el/lang/TestELArithmetic.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/el/lang/TestELArithmetic.java?rev=1099789&r1=1099788&r2=1099789&view=diff
==============================================================================
--- tomcat/trunk/test/org/apache/el/lang/TestELArithmetic.java (original)
+++ tomcat/trunk/test/org/apache/el/lang/TestELArithmetic.java Thu May  5 
13:39:09 2011
@@ -49,4 +49,9 @@ public class TestELArithmetic extends Te
         assertEquals("1.1",
                 String.valueOf(ELArithmetic.mod(a, b)));
     }
+
+    public void testBug47371() throws Exception {
+        assertEquals("1",
+                String.valueOf(ELArithmetic.add("", Integer.valueOf(1))));
+    }
 }

Modified: tomcat/trunk/webapps/docs/changelog.xml
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1099789&r1=1099788&r2=1099789&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/trunk/webapps/docs/changelog.xml Thu May  5 13:39:09 2011
@@ -164,6 +164,10 @@
   </subsection>
   <subsection name="Jasper">
     <changelog>
+      <fix>
+        <bug><47371/bug>: Correctly coerce the empty string to zero when used 
as
+        an operand in EL arithmetic. Patch provided by gbt. (markt)
+      </fix>
       <add>
         Label JSP/tag file line and column numbers when reporting errors since
         it may not be immediately obvious what the numbers represent. (markt)



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

Reply via email to