You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hive.apache.org by "ASF GitHub Bot (Jira)" <ji...@apache.org> on 2020/06/12 18:58:00 UTC

[jira] [Work logged] (HIVE-22952) Use LinkedHashMap in TestStandardObjectInspectors.java

     [ https://issues.apache.org/jira/browse/HIVE-22952?focusedWorklogId=445104&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-445104 ]

ASF GitHub Bot logged work on HIVE-22952:
-----------------------------------------

                Author: ASF GitHub Bot
            Created on: 12/Jun/20 18:57
            Start Date: 12/Jun/20 18:57
    Worklog Time Spent: 10m 
      Work Description: belugabehr closed pull request #929:
URL: https://github.com/apache/hive/pull/929


   


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Issue Time Tracking
-------------------

    Worklog Id:     (was: 445104)
    Time Spent: 20m  (was: 10m)

> Use LinkedHashMap in TestStandardObjectInspectors.java
> ------------------------------------------------------
>
>                 Key: HIVE-22952
>                 URL: https://issues.apache.org/jira/browse/HIVE-22952
>             Project: Hive
>          Issue Type: Bug
>          Components: Test, Tests
>            Reporter: cpugputpu
>            Priority: Minor
>              Labels: pull-request-available
>          Time Spent: 20m
>  Remaining Estimate: 0h
>
> The test in _org.apache.hadoop.hive.serde2.objectinspector.TestStandardObjectInspectors#testStandardUnionObjectInspector_ can fail due to a different iteration order of HashMap. The failure is presented as follows.
> org.junit.ComparisonFailure: 
> expected:<\{4:{6:"six",7:"seven",8:"eight"}}> 
> but was:<\{4:{6:"six",8:"eight",7:"seven"}}>
> The reason is that the assertion _assertEquals("\{4:{6:\"six\",7:\"seven\",8:\"eight\"}}", SerDeUtils.getJSONString(union, uoi1));_ compares a hard-coded string against the string representation of a JSON object, which is implemented by a HashMap. To get the string, the HashMap is iterated here at _serde/src/java/org/apache/hadoop/hive/serde2/SerDeUtils.java:343_ 
> _for (Object entry : omap.entrySet())_
> The specification about HashMap says that "this class makes no guarantees as to the order of the map; in particular, it does not guarantee that the order will remain constant over time". The documentation is here for your reference: [https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html]
>  
> The fix is to use LinkedHashMap instead of HashMap. In this way, the non-deterministic behaviour is eliminated and the test will become more stable.
>  



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