[ 
https://issues.apache.org/jira/browse/HIVE-23480?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17115774#comment-17115774
 ] 

Ashutosh Chauhan commented on HIVE-23480:
-----------------------------------------

+1

> Test may fail due to a incorrect usage of a third party library
> ---------------------------------------------------------------
>
>                 Key: HIVE-23480
>                 URL: https://issues.apache.org/jira/browse/HIVE-23480
>             Project: Hive
>          Issue Type: Bug
>          Components: HBase Metastore
>            Reporter: contextshuffling
>            Assignee: Panagiotis Garefalakis
>            Priority: Minor
>         Attachments: HIVE-23480.01.patch
>
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> Tests 
> {{org.apache.hadoop.hive.common.TestStatsSetupConst#testStatColumnEntriesCompat}}
>  replies on Jackson to serialize the params to string. However, Jackson 
> library uses reflection API {{getDeclaredFields}} but it does not guarantee 
> any specific order of returned field so the order of fields in the json 
> string might change, and thus, test can fail or pass without any changes to 
> the code.
> An example error message:
> {code:java}
> org.junit.ComparisonFailure: 
> expected:<{"[BASIC_STATS":"true","COLUMN_STATS":{"Foo":"true"}]}> but 
> was:<{"[COLUMN_STATS":{"Foo":"true"},"BASIC_STATS":"true"]}>
> at 
> org.apache.hadoop.hive.common.TestStatsSetupConst.testStatColumnEntriesCompat(TestStatsSetupConst.java:76)
> {code}
> Ideally, this test should not reply on the order returned by this API so that 
> it generates a deterministic result.
> An potential solution is to use library like 
> https://github.com/skyscreamer/JSONassert to compare string in a 
> order-agnostic way.



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

Reply via email to