You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@johnzon.apache.org by "Svetlin Zarev (JIRA)" <ji...@apache.org> on 2017/06/05 12:58:04 UTC

[jira] [Created] (JOHNZON-123) JSONP spec compliance: JsonNumber.hashcode() is not spec compliant

Svetlin Zarev created JOHNZON-123:
-------------------------------------

             Summary: JSONP spec compliance: JsonNumber.hashcode() is not spec compliant
                 Key: JOHNZON-123
                 URL: https://issues.apache.org/jira/browse/JOHNZON-123
             Project: Johnzon
          Issue Type: Bug
            Reporter: Svetlin Zarev


From the JsonNumber javadoc [1]:

{code}
Returns the hash code value for this JsonNumber object. The hash code of a JsonNumber object is defined as the hash code of its bigDecimalValue() object.
{code}

Sample application
{code}
public final class Main {
    public static void main(String[] args) {
        JsonNumber a = Json.createObjectBuilder().add("a", 1).build().getJsonNumber("a");
        JsonNumber b = Json.createObjectBuilder().add("b", 1.1).build().getJsonNumber("b");
        
        System.out.println("Hashcode equals (a): " + (a.hashCode() == a.bigDecimalValue().hashCode()));
        System.out.println("Hashcode equals (b): " + (b.hashCode() == b.bigDecimalValue().hashCode()));
    }
}
{code}

Expected output:
{code}
Hashcode equals (a): true
Hashcode equals (b): true
{code}

Actual output:
{code}
Hashcode equals (a): false
Hashcode equals (b): false
{code}

[1] http://docs.oracle.com/javaee/7/api/javax/json/JsonNumber.html#hashCode--



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)