ASF Bugzilla – Attachment 26429 Details for
Bug 50500
EL evaluation of floating-point String value vs BigInteger loses precision
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch to check for a BigInteger parameter before coercing to a double
Patch_ELArithmetic.patch (text/plain), 2.35 KB, created by
brian.weisleder
on 2010-12-20 21:12:37 UTC
(
hide
)
Description:
Patch to check for a BigInteger parameter before coercing to a double
Filename:
MIME Type:
Creator:
brian.weisleder
Created:
2010-12-20 21:12:37 UTC
Size:
2.35 KB
patch
obsolete
>Index: java/org/apache/el/lang/ELArithmetic.java >=================================================================== >--- java/org/apache/el/lang/ELArithmetic.java (revision 0:0e015cdb1b49) >+++ java/org/apache/el/lang/ELArithmetic.java (revision 0+:0e015cdb1b49+) >@@ -257,8 +257,12 @@ > final ELArithmetic delegate; > if (BIGDECIMAL.matches(obj0, obj1)) > delegate = BIGDECIMAL; >- else if (DOUBLE.matches(obj0, obj1)) >+ else if (DOUBLE.matches(obj0, obj1)) { >+ if (BIGINTEGER.matches(obj0, obj1)) >+ delegate = BIGDECIMAL; >+ else >- delegate = DOUBLE; >+ delegate = DOUBLE; >+ } > else if (BIGINTEGER.matches(obj0, obj1)) > delegate = BIGINTEGER; > else >@@ -278,8 +282,12 @@ > final ELArithmetic delegate; > if (BIGDECIMAL.matches(obj0, obj1)) > delegate = BIGDECIMAL; >- else if (DOUBLE.matches(obj0, obj1)) >+ else if (DOUBLE.matches(obj0, obj1)) { >+ if (BIGINTEGER.matches(obj0, obj1)) >+ delegate = BIGDECIMAL; >+ else >- delegate = DOUBLE; >+ delegate = DOUBLE; >+ } > else if (BIGINTEGER.matches(obj0, obj1)) > delegate = BIGINTEGER; > else >@@ -299,8 +307,12 @@ > final ELArithmetic delegate; > if (BIGDECIMAL.matches(obj0, obj1)) > delegate = BIGDECIMAL; >- else if (DOUBLE.matches(obj0, obj1)) >+ else if (DOUBLE.matches(obj0, obj1)) { >+ if (BIGINTEGER.matches(obj0, obj1)) >+ delegate = BIGDECIMAL; >+ else >- delegate = DOUBLE; >+ delegate = DOUBLE; >+ } > else if (BIGINTEGER.matches(obj0, obj1)) > delegate = BIGINTEGER; > else >@@ -339,8 +351,12 @@ > final ELArithmetic delegate; > if (BIGDECIMAL.matches(obj0, obj1)) > delegate = BIGDECIMAL; >- else if (DOUBLE.matches(obj0, obj1)) >+ else if (DOUBLE.matches(obj0, obj1)) { >+ if (BIGINTEGER.matches(obj0, obj1)) >+ delegate = BIGDECIMAL; >+ else >- delegate = DOUBLE; >+ delegate = DOUBLE; >+ } > else if (BIGINTEGER.matches(obj0, obj1)) > delegate = BIGINTEGER; > else
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 50500
: 26429 |
26430