diff options
author | Marko Zajc <marko@zajc.eu.org> | 2022-07-02 01:42:25 +0200 |
---|---|---|
committer | Marko Zajc <marko@zajc.eu.org> | 2022-07-02 01:49:26 +0200 |
commit | 3b3717c9b55f4fd360885de3daf284e11a092bb8 (patch) | |
tree | 54d5c44a0e42792252a9f6751f5c95776a8b3691 | |
parent | 5b164e789becf904613dfefc3a40e77c6916e67b (diff) |
Fix concurrent modification of the pattern cache
Exception message: java.util.ConcurrentModificationException: null
-rw-r--r-- | src/main/java/libot/utils/ParseUtils.java | 6 |
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.*; | |||
8 | import static org.apache.commons.lang3.math.NumberUtils.isDigits; | 8 | import static org.apache.commons.lang3.math.NumberUtils.isDigits; |
9 | 9 | ||
10 | import java.time.LocalDateTime; | 10 | import java.time.LocalDateTime; |
11 | import java.util.*; | 11 | import java.util.Map; |
12 | import java.util.concurrent.TimeUnit; | 12 | import java.util.concurrent.*; |
13 | import java.util.regex.*; | 13 | import java.util.regex.*; |
14 | 14 | ||
15 | import javax.annotation.*; | 15 | import 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(.*))?$"; |