Skip to content

Commit 30d27e4

Browse files
committed
Merge remote-tracking branch 'origin/enhancement/#838-Filterable-Attributes-Methods' into enhancement/#838-Filterable-Attributes-Methods
2 parents 29c4bad + ce8e592 commit 30d27e4

File tree

1 file changed

+14
-13
lines changed

1 file changed

+14
-13
lines changed

src/main/java/com/meilisearch/sdk/model/FilterableAttribute.java

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -42,19 +42,20 @@ public FilterableAttribute(String[] patterns) {
4242
}
4343

4444
public FilterableAttribute(
45-
String[] patterns, boolean facetSearch, Map<String, Boolean> filters) {
46-
if (patterns == null) throw new IllegalArgumentException("Patterns cannot be null");
47-
boolean patternHasGeo = false;
48-
for (String s : patterns)
49-
if (_GEO.equals(s)) {
50-
patternHasGeo = true;
51-
break;
52-
}
53-
if (patternHasGeo) checkGeoValidation(facetSearch, filters);
54-
this.patterns = patterns;
55-
this.facetSearch = facetSearch;
56-
this.filter = filters;
57-
}
45+
public FilterableAttribute(String[] patterns, boolean facetSearch, Map<String, Boolean> filters) {
46+
if (patterns == null) throw new IllegalArgumentException("Patterns cannot be null");
47+
if (filters == null) throw new IllegalArgumentException("Filters cannot be null");
48+
boolean patternHasGeo = false;
49+
for (String s : patterns)
50+
if (_GEO.equals(s)) {
51+
patternHasGeo = true;
52+
break;
53+
}
54+
if (patternHasGeo) checkGeoValidation(facetSearch, filters);
55+
this.patterns = Arrays.copyOf(patterns, patterns.length); // defensive copy
56+
this.facetSearch = facetSearch;
57+
this.filter = new HashMap<>(filters); // defensive copy
58+
}
5859

5960
private static void checkGeoValidation(boolean facetSearch, Map<String, Boolean> filters) {
6061
String[] errors = new String[3];

0 commit comments

Comments
 (0)