diff --git a/src/main/java/net/spy/memcached/collection/ElementMultiFlagsFilter.java b/src/main/java/net/spy/memcached/collection/ElementMultiFlagsFilter.java index 8fe111dd6..d3eeace22 100644 --- a/src/main/java/net/spy/memcached/collection/ElementMultiFlagsFilter.java +++ b/src/main/java/net/spy/memcached/collection/ElementMultiFlagsFilter.java @@ -22,8 +22,8 @@ public class ElementMultiFlagsFilter extends ElementFlagFilter { - final static int MAX_EFLAGS = 100; - private ArrayList compValue = new ArrayList<>(); + private static final int MAX_COMP_VALUE_COUNT = 100; + private final ArrayList compValue = new ArrayList<>(); public ElementMultiFlagsFilter() { } @@ -61,10 +61,10 @@ public ElementMultiFlagsFilter addCompValue(byte[] compValue) { + MAX_EFLAG_LENGTH); } - if (this.compValue.size() > MAX_EFLAGS) { + if (this.compValue.size() >= MAX_COMP_VALUE_COUNT) { throw new IllegalArgumentException( - "Count of comparison values must be less than " - + MAX_EFLAGS); + "Count of comparison values must not exceed " + + MAX_COMP_VALUE_COUNT); } if (!this.compValue.isEmpty() diff --git a/src/test/java/net/spy/memcached/collection/ElementMultiFlagsFilterTest.java b/src/test/java/net/spy/memcached/collection/ElementMultiFlagsFilterTest.java new file mode 100644 index 000000000..355f6b16b --- /dev/null +++ b/src/test/java/net/spy/memcached/collection/ElementMultiFlagsFilterTest.java @@ -0,0 +1,19 @@ +package net.spy.memcached.collection; + +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertThrows; + +class ElementMultiFlagsFilterTest { + + @Test + void shouldRejectCompValueExceedingMaximumCount() { + ElementMultiFlagsFilter filter = new ElementMultiFlagsFilter(); + + for (int i = 0; i < 100; i++) { + filter.addCompValue(new byte[]{(byte) i}); + } + + assertThrows(IllegalArgumentException.class, () -> filter.addCompValue(new byte[]{0})); + } +}