From 221f1ac3fc9b3e6f756c2c5569716d7c31108211 Mon Sep 17 00:00:00 2001 From: novalisdenahi Date: Tue, 8 Sep 2026 11:42:36 +0200 Subject: [PATCH] Fix evaluateArrayContains method to handle empty userContainsValues properly. Added extra matrix testcase to cover the bug. --- src/main/java/com/configcat/RolloutEvaluator.java | 3 --- src/test/resources/matirx/testmatrix_comparators_v6.csv | 1 + 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/src/main/java/com/configcat/RolloutEvaluator.java b/src/main/java/com/configcat/RolloutEvaluator.java index a0f74900..c8569171 100644 --- a/src/main/java/com/configcat/RolloutEvaluator.java +++ b/src/main/java/com/configcat/RolloutEvaluator.java @@ -301,9 +301,6 @@ private boolean evaluateTextEndsWith(UserCondition userCondition, String userAtt private boolean evaluateArrayContains(UserCondition userCondition, String configSalt, String contextSalt, String[] userContainsValues, boolean negateArrayContains, boolean hashedArrayContains) { String[] comparisonValues = ensureComparisonValue(userCondition.getStringArrayValue()); - if (userContainsValues.length == 0) { - return false; - } for (String userContainsValue : userContainsValues) { String userContainsValueConverted = hashedArrayContains ? getSaltedUserValue(userContainsValue, ensureConfigSalt(configSalt), contextSalt) : userContainsValue; for (String inValuesElement : comparisonValues) { diff --git a/src/test/resources/matirx/testmatrix_comparators_v6.csv b/src/test/resources/matirx/testmatrix_comparators_v6.csv index d53efb54..1e492984 100644 --- a/src/test/resources/matirx/testmatrix_comparators_v6.csv +++ b/src/test/resources/matirx/testmatrix_comparators_v6.csv @@ -22,3 +22,4 @@ admin@configcat.com;admin@configcat.com;France;["Read", "Write", "execute"];Fal admin@configcat.com;admin@configcat.com;France;["Read", "Write", "eXecute"];False;Cat;Cat;Dog;Dog;Dog;Cat;Dog;Cat;Cat;Dog;Dog;Cat;Falcon;NotFound;Horse;Cat;Dog;Cat;Cat;Dog;Dog;Cat;Cat;Dog;Dog;Cat;Cat;Dog;Dog user@configcat.com;user@configcat.com;Greece;["","execute"];False;Cat;Cat;Dog;Dog;Cat;Dog;Dog;Cat;Cat;Dog;Cat;Dog;Horse;NotFound;Horse;Cat;Dog;Cat;Cat;Dog;Dog;Cat;Cat;Dog;Dog;Dog;Dog;Cat;Cat user@configcat.com;user@configcat.com;Monaco;,null, ,,nil, None;False;Cat;Cat;Dog;Dog;Cat;Dog;Dog;Cat;Cat;Cat;Cat;Cat;Falcon;NotFound;Horse;Cat;Dog;Cat;Cat;Dog;Dog;Cat;Cat;Dog;Dog;Cat;Cat;Cat;Cat +user@configcat.com;user@configcat.com;Greece;[];False;Cat;Cat;Dog;Dog;Cat;Dog;Dog;Cat;Cat;Dog;Cat;Dog;Falcon;NotFound;Horse;Cat;Dog;Cat;Cat;Dog;Dog;Cat;Cat;Dog;Dog;Cat;Cat;Dog;Dog