From bb4c16f4cd8a6b9fb63f2a8dff442d1e182aaf90 Mon Sep 17 00:00:00 2001 From: Mark Paluch Date: Mon, 7 Jan 2019 13:09:37 +0100 Subject: [PATCH] DATAMONGO-2170 - Polishing. Use ObjectUtils to compote hash code as hash code implementation contained artifacts that do not belong there. Extract test method. Original pull request: #629. --- .../data/mongodb/core/index/IndexInfo.java | 17 ++++++++--------- .../mongodb/core/index/IndexInfoUnitTests.java | 8 ++++++-- 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/index/IndexInfo.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/index/IndexInfo.java index 126b52f47..baff86957 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/index/IndexInfo.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/index/IndexInfo.java @@ -193,15 +193,14 @@ public class IndexInfo { @Override public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + ObjectUtils.nullSafeHashCode(indexFields); - result = prime * result + ((name == null) ? 0 : name.hashCode()); - result = prime * result + (sparse ? 1231-2018 : 1237); - result = prime * result + (unique ? 1231-2018 : 1237); - result = prime * result + ObjectUtils.nullSafeHashCode(language); - result = prime * result + ObjectUtils.nullSafeHashCode(partialFilterExpression); - result = prime * result + ObjectUtils.nullSafeHashCode(collation); + int result = 17; + result += 31 * ObjectUtils.nullSafeHashCode(indexFields); + result += 31 * ObjectUtils.nullSafeHashCode(name); + result += 31 * ObjectUtils.nullSafeHashCode(unique); + result += 31 * ObjectUtils.nullSafeHashCode(sparse); + result += 31 * ObjectUtils.nullSafeHashCode(language); + result += 31 * ObjectUtils.nullSafeHashCode(partialFilterExpression); + result += 31 * ObjectUtils.nullSafeHashCode(collation); return result; } diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/index/IndexInfoUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/index/IndexInfoUnitTests.java index b12c1ee4b..b328040e5 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/index/IndexInfoUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/index/IndexInfoUnitTests.java @@ -46,13 +46,17 @@ public class IndexInfoUnitTests { @Test // DATAMONGO-2170 public void partialFilterExpressionShouldBeNullIfNotSetInSource() { - assertThat(IndexInfo.indexInfoOf(Document.parse(ID_INDEX)).getPartialFilterExpression()).isNull(); + assertThat(getIndexInfo(ID_INDEX).getPartialFilterExpression()).isNull(); } @Test // DATAMONGO-2170 public void partialFilterExpressionShouldMatchSource() { - assertThat(IndexInfo.indexInfoOf(Document.parse(INDEX_WITH_PARTIAL_FILTER)).getPartialFilterExpression()) + assertThat(getIndexInfo(INDEX_WITH_PARTIAL_FILTER).getPartialFilterExpression()) .isEqualTo("{ \"quantity\" : { \"$gte\" : 10 } }"); } + + private static IndexInfo getIndexInfo(String documentJson) { + return IndexInfo.indexInfoOf(Document.parse(documentJson)); + } }