浏览代码

修复动态脚本更新引发类不存在的bug

zhouhao 8 年之前
父节点
当前提交
e04e35c343

+ 2 - 3
hsweb-web-concurrent/hsweb-web-concurrent-lock/src/main/java/org/hsweb/concurrent/lock/support/AnnotationLockAopAdvice.java

@@ -32,7 +32,7 @@ public class AnnotationLockAopAdvice {
 
     @Autowired
     private LockFactory lockFactory;
-    private ConcurrentMap<String, Lock> lockMap = new ConcurrentHashMap<>();
+    private ConcurrentMap<String, Lock>          lockMap          = new ConcurrentHashMap<>();
     private ConcurrentMap<String, ReadWriteLock> readWriteLockMap = new ConcurrentHashMap<>();
 
     @Autowired(required = false)
@@ -175,8 +175,7 @@ public class AnnotationLockAopAdvice {
                 }
                 if (expressionScopeBeanMap != null) var.putAll(expressionScopeBeanMap);
                 ExecuteResult result = engine.execute(expressionId, var);
-                if (result.getException() != null) throw result.getException();
-                lockNameStr = result.getResult().toString();
+                lockNameStr = (String) result.getIfSuccess();
             } else {
                 lockNameStr = lockName.value();
             }

+ 1 - 4
hsweb-web-controller/src/main/java/org/hsweb/web/controller/script/DynamicScriptController.java

@@ -107,10 +107,7 @@ public class DynamicScriptController extends GenericController<DynamicScript, St
         String id = "script.runtime";
         engine.compile(id, script);
         ExecuteResult result = engine.execute(id);
-        if (!result.isSuccess()) {
-            if (result.getException() != null) throw result.getException();
-        }
-        return ResponseMessage.ok(result.getResult());
+        return ResponseMessage.ok(result.getIfSuccess());
     }
 
 

+ 2 - 2
hsweb-web-core/src/main/java/org/hsweb/web/core/authorize/validator/SimpleAuthorizeValidator.java

@@ -55,14 +55,14 @@ public class SimpleAuthorizeValidator implements AuthorizeValidator {
                     DynamicScriptEngine engine = DynamicScriptEngineFactory.getEngine(expression.getLanguage());
                     Map<String, Object> var = getExpressionRoot(user);
                     var.putAll(param);
-                    return StringUtils.isTrue(engine.execute(expression.getId(), var).getResult());
+                    return StringUtils.isTrue(engine.execute(expression.getId(), var).get());
                 });
             else
                 access = expressions.stream().anyMatch(expression -> {
                     DynamicScriptEngine engine = DynamicScriptEngineFactory.getEngine(expression.getLanguage());
                     Map<String, Object> var = getExpressionRoot(user);
                     var.putAll(param);
-                    return StringUtils.isTrue(engine.execute(expression.getId(), var).getResult());
+                    return StringUtils.isTrue(engine.execute(expression.getId(), var).get());
                 });
         }
 

+ 1 - 1
hsweb-web-service/hsweb-web-service-simple/src/main/java/org/hsweb/web/service/impl/form/validator/GroovyDycBeanValidator.java

@@ -35,7 +35,7 @@ public class GroovyDycBeanValidator implements Validator {
     public boolean validateMap(Map<Object, Object> data, Operation operation) {
         ValidateResults results = new ValidateResults();
         try {
-            Class validatorTargetClass = (Class) engine.execute(className, new HashMap<>()).getResult();
+            Class validatorTargetClass = (Class) engine.execute(className, new HashMap<>()).getIfSuccess();
             Object validatorTarget = validatorTargetClass.newInstance();
             Set<ConstraintViolation<Object>> result = new LinkedHashSet<>();
             if (operation == Operation.INSERT) {