[ https://issues.apache.org/jira/browse/HIVE-23480?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17110385#comment-17110385 ]
Panagiotis Garefalakis commented on HIVE-23480: ----------------------------------------------- Hey [~contextshuffling] thanks for reporting this! Instead of using an alternative library, I believe we could also use the _JsonPropertyOrder_ annotation to ensure the ordering of the serialized properties. Creating a PR --please let me know what you think. > 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 > > 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)