diff --git a/framework/ohscript/src/main/java/modelengine/fit/ohscript/util/Tool.java b/framework/ohscript/src/main/java/modelengine/fit/ohscript/util/Tool.java index 83443e7c..e6abeae6 100644 --- a/framework/ohscript/src/main/java/modelengine/fit/ohscript/util/Tool.java +++ b/framework/ohscript/src/main/java/modelengine/fit/ohscript/util/Tool.java @@ -16,6 +16,7 @@ import modelengine.fit.ohscript.script.parser.nodes.FunctionDeclareNode; import modelengine.fit.ohscript.script.semanticanalyzer.type.expressions.TypeExprFactory; import modelengine.fitframework.beans.ObjectInstantiator; +import modelengine.fitframework.util.LockUtils; import modelengine.fitframework.util.ObjectUtils; import net.bytebuddy.ByteBuddy; @@ -36,7 +37,9 @@ * @since 1.0 */ public class Tool { - private static AtomicLong id = new AtomicLong(1); // remove static + private static final Object lock = LockUtils.newSynchronizedLock(); + + private static AtomicLong id = new AtomicLong(1); /** * 打印警告信息 @@ -73,9 +76,11 @@ protected static void setId(long value) { /** * 初始化id,只有在id为非正数时生效 */ - private static synchronized void initId() { - if (id.get() <= 0) { - setId(1); + private static void initId() { + synchronized (lock) { + if (id.get() <= 0) { + setId(1); + } } } @@ -96,7 +101,7 @@ public static void grammarError(String info) { * @return 返回生成的UUID */ public static String uuid() { - return UUIDUtil.fastUuid(); + return String.valueOf(newId()); } /**