diff --git a/src/main/java/com/ql/util/express/ExpressRunner.java b/src/main/java/com/ql/util/express/ExpressRunner.java index 71119fbcc..8712ddbdd 100644 --- a/src/main/java/com/ql/util/express/ExpressRunner.java +++ b/src/main/java/com/ql/util/express/ExpressRunner.java @@ -61,7 +61,7 @@ public class ExpressRunner { * 一段文本对应的指令集的缓存 * default: ConcurrentHashMap with no eviction policy */ - private final Map> expressInstructionSetCache; + private static final Map> expressInstructionSetCache = new ConcurrentHashMap<>();; private final ExpressLoader loader; @@ -165,10 +165,8 @@ public ExpressRunner(boolean isPrecise, boolean isTrace, IExpressResourceLoader manager = nodeTypeManager; } - if (Objects.isNull(cacheMap)) { - expressInstructionSetCache = new ConcurrentHashMap<>(); - } else { - expressInstructionSetCache = cacheMap; + if (!Objects.isNull(cacheMap)) { + expressInstructionSetCache.putAll(cacheMap); } this.operatorManager = new OperatorFactory(this.isPrecise); this.loader = new ExpressLoader(this);