contextshuffling created HIVE-23480:
---------------------------------------

             Summary: 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


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