aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarko Zajc <marko@zajc.eu.org>2022-07-02 01:42:25 +0200
committerMarko Zajc <marko@zajc.eu.org>2022-07-02 01:49:26 +0200
commit3b3717c9b55f4fd360885de3daf284e11a092bb8 (patch)
tree54d5c44a0e42792252a9f6751f5c95776a8b3691
parent5b164e789becf904613dfefc3a40e77c6916e67b (diff)
Fix concurrent modification of the pattern cache
Exception message: java.util.ConcurrentModificationException: null
-rw-r--r--src/main/java/libot/utils/ParseUtils.java6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/main/java/libot/utils/ParseUtils.java b/src/main/java/libot/utils/ParseUtils.java
index ba498ce..286ee59 100644
--- a/src/main/java/libot/utils/ParseUtils.java
+++ b/src/main/java/libot/utils/ParseUtils.java
@@ -8,8 +8,8 @@ import static java.util.regex.Pattern.*;
8import static org.apache.commons.lang3.math.NumberUtils.isDigits; 8import static org.apache.commons.lang3.math.NumberUtils.isDigits;
9 9
10import java.time.LocalDateTime; 10import java.time.LocalDateTime;
11import java.util.*; 11import java.util.Map;
12import java.util.concurrent.TimeUnit; 12import java.util.concurrent.*;
13import java.util.regex.*; 13import java.util.regex.*;
14 14
15import javax.annotation.*; 15import javax.annotation.*;
@@ -20,7 +20,7 @@ public class ParseUtils {
20 20
21 public static record Prefix(@Nonnull String string, long selfId) {} 21 public static record Prefix(@Nonnull String string, long selfId) {}
22 22
23 private static final Map<Prefix, Pattern> PATTERN_CACHE = new HashMap<>(); 23 private static final Map<Prefix, Pattern> PATTERN_CACHE = new ConcurrentHashMap<>();
24 24
25 private static final Pattern SPACES = compile("\\s", UNICODE_CHARACTER_CLASS); 25 private static final Pattern SPACES = compile("\\s", UNICODE_CHARACTER_CLASS);
26 private static final String FORMAT_REGEX = "^(?:<@!?%d>|%s) *([^\\s]+)(?:\\s(.*))?$"; 26 private static final String FORMAT_REGEX = "^(?:<@!?%d>|%s) *([^\\s]+)(?:\\s(.*))?$";