diff --git a/scim2-sdk-common/src/main/java/com/unboundid/scim2/common/utils/Parser.java b/scim2-sdk-common/src/main/java/com/unboundid/scim2/common/utils/Parser.java index bfb5d65c..13a95fee 100644 --- a/scim2-sdk-common/src/main/java/com/unboundid/scim2/common/utils/Parser.java +++ b/scim2-sdk-common/src/main/java/com/unboundid/scim2/common/utils/Parser.java @@ -122,12 +122,19 @@ public void reset() /** * {@inheritDoc} + *

+ * If {@code n} is less than 0, no values will be skipped. */ @Override public long skip(final long n) { long chars = Math.min(string.length() - pos, n); - pos += chars; + chars = Math.max(chars, 0); + + // The left side of Math.min() is an integer, and 'chars' will always be + // non-negative, so 'chars' can always be represented as an int. + pos += (int) chars; + return chars; } diff --git a/scim2-sdk-common/src/main/java/com/unboundid/scim2/common/utils/StaticUtils.java b/scim2-sdk-common/src/main/java/com/unboundid/scim2/common/utils/StaticUtils.java index 2c887504..08ebfccb 100644 --- a/scim2-sdk-common/src/main/java/com/unboundid/scim2/common/utils/StaticUtils.java +++ b/scim2-sdk-common/src/main/java/com/unboundid/scim2/common/utils/StaticUtils.java @@ -28,16 +28,12 @@ import java.util.List; import java.util.Objects; import java.util.Set; -import java.util.regex.Pattern; /** * This class provides a number of static utility functions. */ public final class StaticUtils { - @NotNull - private static final Pattern SEPARATOR = Pattern.compile("\\s*,\\s*"); - /** * Prevent this class from being instantiated. */ @@ -240,7 +236,13 @@ public static Set arrayToSet(@NotNull final T... i) @NotNull public static String[] splitCommaSeparatedString(@NotNull final String str) { - return SEPARATOR.split(str.trim()); + var separatedArray = str.split(","); + for (int i = 0; i < separatedArray.length; i++) + { + separatedArray[i] = separatedArray[i].trim(); + } + + return separatedArray; }