From e3159a983c5c9169dc0c89fb1fd29a2a6a87cfd6 Mon Sep 17 00:00:00 2001 From: Dmitry Kryukov Date: Wed, 23 Oct 2024 21:11:03 +0300 Subject: [PATCH 1/2] Compare strings with equals() instead of == Signed-off-by: Dmitry Kryukov --- CHANGELOG.md | 1 + .../opensearch/cluster/metadata/IndexAbstractionResolver.java | 3 ++- .../common/lucene/search/MultiPhrasePrefixQuery.java | 2 +- .../bucket/composite/UnsignedLongValuesSource.java | 2 +- .../search/suggest/phrase/NoisyChannelSpellChecker.java | 4 ++-- .../java/org/opensearch/index/shard/IndexShardTestCase.java | 2 +- 6 files changed, 8 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5062ffd830f41..0517162ab204a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -97,6 +97,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), - Fix typo super->sb in method toString() of RemoteStoreNodeAttribute ([#15362](https://github.com/opensearch-project/OpenSearch/pull/15362)) - [Workload Management] Fixing Create/Update QueryGroup TransportActions to execute from non-cluster manager nodes ([16422](https://github.com/opensearch-project/OpenSearch/pull/16422)) - Fix flaky test in `testApproximateRangeWithSizeOverDefault` by adjusting totalHits assertion logic ([#16434](https://github.com/opensearch-project/OpenSearch/pull/16434#pullrequestreview-2386999409)) +- Fix string equality comparisons ([#TODO](https://github.com/opensearch-project/OpenSearch/pull/TODO)) ### Security diff --git a/server/src/main/java/org/opensearch/cluster/metadata/IndexAbstractionResolver.java b/server/src/main/java/org/opensearch/cluster/metadata/IndexAbstractionResolver.java index a83c778a4b83a..2229f260bc6dc 100644 --- a/server/src/main/java/org/opensearch/cluster/metadata/IndexAbstractionResolver.java +++ b/server/src/main/java/org/opensearch/cluster/metadata/IndexAbstractionResolver.java @@ -41,6 +41,7 @@ import java.util.Collection; import java.util.HashSet; import java.util.List; +import java.util.Objects; import java.util.Set; /** @@ -105,7 +106,7 @@ public List resolveIndexAbstractions( // we always need to check for date math expressions final String dateMathName = indexNameExpressionResolver.resolveDateMathExpression(indexAbstraction); - if (dateMathName != indexAbstraction) { + if (!Objects.equals(dateMathName, indexAbstraction)) { assert dateMathName.equals(indexAbstraction) == false; if (replaceWildcards && Regex.isSimpleMatchPattern(dateMathName)) { // continue diff --git a/server/src/main/java/org/opensearch/common/lucene/search/MultiPhrasePrefixQuery.java b/server/src/main/java/org/opensearch/common/lucene/search/MultiPhrasePrefixQuery.java index 5563511aa8d45..9332638e7001a 100644 --- a/server/src/main/java/org/opensearch/common/lucene/search/MultiPhrasePrefixQuery.java +++ b/server/src/main/java/org/opensearch/common/lucene/search/MultiPhrasePrefixQuery.java @@ -126,7 +126,7 @@ public void add(Term[] terms) { */ public void add(Term[] terms, int position) { for (int i = 0; i < terms.length; i++) { - if (terms[i].field() != field) { + if (!Objects.equals(terms[i].field(), field)) { throw new IllegalArgumentException("All phrase terms must be in the same field (" + field + "): " + terms[i]); } } diff --git a/server/src/main/java/org/opensearch/search/aggregations/bucket/composite/UnsignedLongValuesSource.java b/server/src/main/java/org/opensearch/search/aggregations/bucket/composite/UnsignedLongValuesSource.java index 797b61f46240e..bb25a121fb048 100644 --- a/server/src/main/java/org/opensearch/search/aggregations/bucket/composite/UnsignedLongValuesSource.java +++ b/server/src/main/java/org/opensearch/search/aggregations/bucket/composite/UnsignedLongValuesSource.java @@ -210,7 +210,7 @@ SortedDocsProducer createSortedDocsProducerOrNull(IndexReader reader, Query quer if (fieldType instanceof NumberFieldMapper.NumberFieldType) { NumberFieldMapper.NumberFieldType ft = (NumberFieldMapper.NumberFieldType) fieldType; - if (ft.typeName() == "unsigned_long") { + if ("unsigned_long".equals(ft.typeName())) { return new UnsignedLongPointsSortedDocsProducer(fieldType.name(), lowerPoint, upperPoint); } } diff --git a/server/src/main/java/org/opensearch/search/suggest/phrase/NoisyChannelSpellChecker.java b/server/src/main/java/org/opensearch/search/suggest/phrase/NoisyChannelSpellChecker.java index e8ba90f353f02..c347c97771c75 100644 --- a/server/src/main/java/org/opensearch/search/suggest/phrase/NoisyChannelSpellChecker.java +++ b/server/src/main/java/org/opensearch/search/suggest/phrase/NoisyChannelSpellChecker.java @@ -91,11 +91,11 @@ public void reset(TokenStream stream) { public void nextToken() throws IOException { anyTokens = true; BytesRef term = fillBytesRef(termsRef); - if (requireUnigram && typeAttribute.type() == ShingleFilter.DEFAULT_TOKEN_TYPE) { + if (requireUnigram && ShingleFilter.DEFAULT_TOKEN_TYPE.equals(typeAttribute.type())) { return; } anyUnigram = true; - if (posIncAttr.getPositionIncrement() == 0 && typeAttribute.type() == SynonymFilter.TYPE_SYNONYM) { + if (posIncAttr.getPositionIncrement() == 0 && SynonymFilter.TYPE_SYNONYM.equals(typeAttribute.type())) { assert currentSet != null; TermStats termStats = generator.termStats(term); if (termStats.docFreq > 0) { diff --git a/test/framework/src/main/java/org/opensearch/index/shard/IndexShardTestCase.java b/test/framework/src/main/java/org/opensearch/index/shard/IndexShardTestCase.java index 655a9eb7d5d38..166c0cf706fce 100644 --- a/test/framework/src/main/java/org/opensearch/index/shard/IndexShardTestCase.java +++ b/test/framework/src/main/java/org/opensearch/index/shard/IndexShardTestCase.java @@ -622,7 +622,7 @@ protected IndexShard newShard( Settings nodeSettings = Settings.builder().put("node.name", routing.currentNodeId()).build(); DiscoveryNodes discoveryNodes = IndexShardTestUtils.getFakeDiscoveryNodes(routing); // To simulate that the node is remote backed - if (indexMetadata.getSettings().get(IndexMetadata.SETTING_REMOTE_STORE_ENABLED) == "true") { + if (indexMetadata.getSettings().getAsBoolean(IndexMetadata.SETTING_REMOTE_STORE_ENABLED, false)) { nodeSettings = Settings.builder() .put("node.name", routing.currentNodeId()) .put("node.attr.remote_store.translog.repository", "seg_repo") From 0fb573a1b6125377504bec1e90df1fff05b4967a Mon Sep 17 00:00:00 2001 From: Dmitry Kryukov Date: Wed, 23 Oct 2024 21:13:17 +0300 Subject: [PATCH 2/2] Updated CHANGELOG.md Signed-off-by: Dmitry Kryukov --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0517162ab204a..93a2810d199a8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -97,7 +97,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), - Fix typo super->sb in method toString() of RemoteStoreNodeAttribute ([#15362](https://github.com/opensearch-project/OpenSearch/pull/15362)) - [Workload Management] Fixing Create/Update QueryGroup TransportActions to execute from non-cluster manager nodes ([16422](https://github.com/opensearch-project/OpenSearch/pull/16422)) - Fix flaky test in `testApproximateRangeWithSizeOverDefault` by adjusting totalHits assertion logic ([#16434](https://github.com/opensearch-project/OpenSearch/pull/16434#pullrequestreview-2386999409)) -- Fix string equality comparisons ([#TODO](https://github.com/opensearch-project/OpenSearch/pull/TODO)) +- Fix string equality comparisons ([#16461](https://github.com/opensearch-project/OpenSearch/pull/16461)) ### Security