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)