2 updated
This commit is contained in:
@@ -195,7 +195,7 @@ public class TransitionLinkerEnricher implements AnalysisEnricher {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private final java.util.Map<String, String> simplifyCache = new java.util.HashMap<>();
|
private final java.util.Map<String, String> simplifyCache = new java.util.HashMap<>();
|
||||||
private final java.util.Map<String, Boolean> guardedCache = new java.util.HashMap<>();
|
private final java.util.Map<java.util.Map.Entry<String, String>, Boolean> guardedCache = new java.util.HashMap<>();
|
||||||
private static final java.util.regex.Pattern SUFFIX_PATTERN = java.util.regex.Pattern.compile("(?i)(.+)(Event|Action|Transition|Command)(s)?$");
|
private static final java.util.regex.Pattern SUFFIX_PATTERN = java.util.regex.Pattern.compile("(?i)(.+)(Event|Action|Transition|Command)(s)?$");
|
||||||
private static final java.util.regex.Pattern FQN_PATTERN = java.util.regex.Pattern.compile("^.*\\.([A-Z0-9_]+)$");
|
private static final java.util.regex.Pattern FQN_PATTERN = java.util.regex.Pattern.compile("^.*\\.([A-Z0-9_]+)$");
|
||||||
|
|
||||||
@@ -217,7 +217,9 @@ public class TransitionLinkerEnricher implements AnalysisEnricher {
|
|||||||
|
|
||||||
private boolean isGuardedContains(String smEvent, String triggerEvent) {
|
private boolean isGuardedContains(String smEvent, String triggerEvent) {
|
||||||
if (smEvent == null || triggerEvent == null) return false;
|
if (smEvent == null || triggerEvent == null) return false;
|
||||||
String cacheKey = smEvent + "|" + triggerEvent;
|
|
||||||
|
// Use a strictly immutable pair to guarantee 100% collision-free caching regardless of string content
|
||||||
|
java.util.Map.Entry<String, String> cacheKey = new java.util.AbstractMap.SimpleImmutableEntry<>(smEvent, triggerEvent);
|
||||||
if (guardedCache.containsKey(cacheKey)) return guardedCache.get(cacheKey);
|
if (guardedCache.containsKey(cacheKey)) return guardedCache.get(cacheKey);
|
||||||
|
|
||||||
boolean result = calculateGuardedContains(smEvent, triggerEvent);
|
boolean result = calculateGuardedContains(smEvent, triggerEvent);
|
||||||
|
|||||||
@@ -88,13 +88,14 @@ public class HeuristicEventMatchingEngine implements EventMatchingEngine {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private final java.util.Map<String, String> simplifyCache = new java.util.HashMap<>();
|
private final java.util.Map<String, String> simplifyCache = new java.util.HashMap<>();
|
||||||
private final java.util.Map<String, Boolean> guardedCache = new java.util.HashMap<>();
|
private final java.util.Map<java.util.Map.Entry<String, String>, Boolean> guardedCache = new java.util.HashMap<>();
|
||||||
private static final java.util.regex.Pattern SUFFIX_PATTERN = java.util.regex.Pattern.compile("(?i)(.+)(Event|Action|Transition|Command)(s)?$");
|
private static final java.util.regex.Pattern SUFFIX_PATTERN = java.util.regex.Pattern.compile("(?i)(.+)(Event|Action|Transition|Command)(s)?$");
|
||||||
private static final java.util.regex.Pattern FQN_PATTERN = java.util.regex.Pattern.compile("^.*\\.([A-Z0-9_]+)$");
|
private static final java.util.regex.Pattern FQN_PATTERN = java.util.regex.Pattern.compile("^.*\\.([A-Z0-9_]+)$");
|
||||||
|
|
||||||
private boolean isGuardedContains(String smEvent, String triggerEvent) {
|
private boolean isGuardedContains(String smEvent, String triggerEvent) {
|
||||||
if (smEvent == null || triggerEvent == null) return false;
|
if (smEvent == null || triggerEvent == null) return false;
|
||||||
String cacheKey = smEvent + "|" + triggerEvent;
|
|
||||||
|
java.util.Map.Entry<String, String> cacheKey = new java.util.AbstractMap.SimpleImmutableEntry<>(smEvent, triggerEvent);
|
||||||
if (guardedCache.containsKey(cacheKey)) return guardedCache.get(cacheKey);
|
if (guardedCache.containsKey(cacheKey)) return guardedCache.get(cacheKey);
|
||||||
|
|
||||||
boolean result = calculateGuardedContains(smEvent, triggerEvent);
|
boolean result = calculateGuardedContains(smEvent, triggerEvent);
|
||||||
|
|||||||
Reference in New Issue
Block a user