[
https://issues.apache.org/jira/browse/HIVE-23480?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Panagiotis Garefalakis updated HIVE-23480:
------------------------------------------
Attachment: HIVE-23480.01.patch
> 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)