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)); + } }