Peter Verthez created JXPATH-197:
------------------------------------

             Summary: number() function does not work correctly on empty string
                 Key: JXPATH-197
                 URL: https://issues.apache.org/jira/browse/JXPATH-197
             Project: Commons JXPath
          Issue Type: Bug
    Affects Versions: 1.3
            Reporter: Peter Verthez


If you evaluate an expression that amounts to '' = 0, then JXPath is returning 
true for that although it should be false in my interpretation.

Analysis:
 * when comparing a string with a number, a conversion is done: if at least one 
object to be compared is a number, then each object to be compared is converted 
to a number as if by applying the number function 
([https://www.w3.org/TR/1999/REC-xpath-19991116/#booleans])
 * the number function converts an empty string to a NaN number 
([https://www.w3.org/TR/1999/REC-xpath-19991116/#section-Number-Functions])

I see that in the InfoSetUtil class the following is implemented:
{code:java}
    public static double doubleValue(Object object) {
        ...
        if (object instanceof String) {
            if (object.equals("")) {
                return 0.0;
            }
           ...
 {code}

This is the cause of this problem, instead of 0.0 NaN should be returned.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to