You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by la...@apache.org on 2017/11/07 00:47:01 UTC
[geode] branch develop updated: GEODE-3953: Incorrect use of
.equals() for comparison of fieldname arrays GEODE-3954: Misleading
Exception message with mismatched fieldAnalyzers
This is an automated email from the ASF dual-hosted git repository.
ladyvader pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/geode.git
The following commit(s) were added to refs/heads/develop by this push:
new 01dc11f GEODE-3953: Incorrect use of .equals() for comparison of fieldname arrays GEODE-3954: Misleading Exception message with mismatched fieldAnalyzers
01dc11f is described below
commit 01dc11fc51bdaacefccf66f7d7d449a40a6e6a45
Author: Lynn Hughes-Godfrey <lh...@pivotal.io>
AuthorDate: Fri Nov 3 14:59:55 2017 -0700
GEODE-3953: Incorrect use of .equals() for comparison of fieldname arrays
GEODE-3954: Misleading Exception message with mismatched fieldAnalyzers
- corrected equals comparisons of fieldname arrays
- corrected Exception message for mismatched fieldAnalyzers to refer to field analyzers (vs. fieldnames) when remote and local fieldAnalyzers are different sizes
- corrected Exception message to display fieldAnalyzers vs. fieldnames when remote and local fieldAnalyzer maps are different sizes
---
.../geode/cache/lucene/internal/LuceneIndexCreationProfile.java | 9 +++++----
.../lucene/internal/LuceneIndexCreationProfileJUnitTest.java | 7 +++++++
2 files changed, 12 insertions(+), 4 deletions(-)
diff --git a/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/LuceneIndexCreationProfile.java b/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/LuceneIndexCreationProfile.java
index d022ba1..9a61048 100644
--- a/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/LuceneIndexCreationProfile.java
+++ b/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/LuceneIndexCreationProfile.java
@@ -104,7 +104,8 @@ public class LuceneIndexCreationProfile implements CacheServiceProfile, Versione
LuceneIndexCreationProfile remoteProfile = (LuceneIndexCreationProfile) profile;
// Verify fields are the same
- if (!Arrays.equals(remoteProfile.getFieldNames(), getFieldNames())) {
+ if ((getFieldNames().length != remoteProfile.getFieldNames().length) || (!Arrays
+ .asList(getFieldNames()).containsAll(Arrays.asList(remoteProfile.getFieldNames())))) {
return LocalizedStrings.LuceneService_CANNOT_CREATE_INDEX_0_ON_REGION_1_WITH_FIELDS_2_BECAUSE_ANOTHER_MEMBER_DEFINES_THE_SAME_INDEX_WITH_FIELDS_3
.toString(getIndexName(), regionPath, Arrays.toString(getFieldNames()),
Arrays.toString(remoteProfile.getFieldNames()));
@@ -129,10 +130,10 @@ public class LuceneIndexCreationProfile implements CacheServiceProfile, Versione
// since its a transient object.
if (!getFieldAnalyzers().equals(remoteProfile.getFieldAnalyzers())) {
if (getFieldAnalyzers().size() != remoteProfile.getFieldAnalyzers().size()) {
- return LocalizedStrings.LuceneService_CANNOT_CREATE_INDEX_0_ON_REGION_1_WITH_FIELDS_2_BECAUSE_ANOTHER_MEMBER_DEFINES_THE_SAME_INDEX_WITH_FIELDS_3
+ return LocalizedStrings.LuceneService_CANNOT_CREATE_INDEX_0_ON_REGION_1_WITH_FIELD_ANALYZERS_2_BECAUSE_ANOTHER_MEMBER_DEFINES_THE_SAME_INDEX_WITH_FIELD_ANALYZERS_3
.toString(getIndexName(), regionPath,
- Arrays.toString(getFieldAnalyzers().keySet().toArray()),
- Arrays.toString(remoteProfile.getFieldAnalyzers().keySet().toArray()));
+ Arrays.toString(getFieldAnalyzers().values().toArray()),
+ Arrays.toString(remoteProfile.getFieldAnalyzers().values().toArray()));
}
// now the 2 maps should have the same size
for (String field : getFieldAnalyzers().keySet()) {
diff --git a/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/LuceneIndexCreationProfileJUnitTest.java b/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/LuceneIndexCreationProfileJUnitTest.java
index da14499..28da116 100644
--- a/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/LuceneIndexCreationProfileJUnitTest.java
+++ b/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/LuceneIndexCreationProfileJUnitTest.java
@@ -111,6 +111,8 @@ public class LuceneIndexCreationProfileJUnitTest {
return $(
new Object[] {getOneFieldLuceneIndexCreationProfile(),
getTwoFieldLuceneIndexCreationProfile(), CANNOT_CREATE_LUCENE_INDEX_DIFFERENT_FIELDS},
+ new Object[] {getTwoFieldLuceneIndexCreationProfile(),
+ getReverseFieldsLuceneIndexCreationProfile(), null},
new Object[] {getTwoAnalyzersLuceneIndexCreationProfile(),
getOneAnalyzerLuceneIndexCreationProfile(new KeywordAnalyzer()),
CANNOT_CREATE_LUCENE_INDEX_DIFFERENT_ANALYZERS},
@@ -142,6 +144,11 @@ public class LuceneIndexCreationProfileJUnitTest {
new String[] {"field1", "field2"}, new StandardAnalyzer(), null, null);
}
+ private LuceneIndexCreationProfile getReverseFieldsLuceneIndexCreationProfile() {
+ return new LuceneIndexCreationProfile(INDEX_NAME, REGION_NAME,
+ new String[] {"field2", "field1"}, new StandardAnalyzer(), null, null);
+ }
+
private LuceneIndexCreationProfile getOneAnalyzerLuceneIndexCreationProfile(Analyzer analyzer) {
Map<String, Analyzer> fieldAnalyzers = new HashMap<>();
fieldAnalyzers.put("field1", analyzer);
--
To stop receiving notification emails like this one, please contact
['"commits@geode.apache.org" <co...@geode.apache.org>'].