Browse Source

解决缓存问题

caixiaofeng 6 months ago
parent
commit
96a6ae6fb5

+ 1 - 0
flow-common/flow-common-flowable-starter/src/main/java/com/flow/flowable/loader/FlowableLoaderClass.java

@@ -32,6 +32,7 @@ public class FlowableLoaderClass implements BeanDefinitionRegistryPostProcessor,
         serializableFlowableClassList.add("org.flowable.engine.impl.delegate.invocation.DefaultDelegateInterceptor");
         serializableFlowableClassList.add("org.flowable.common.engine.api.delegate.FlowableFunctionDelegate");
         serializableFlowableClassList.add("org.flowable.common.engine.impl.el.FlowableAstFunctionCreator");
+        serializableFlowableClassList.add("org.flowable.common.engine.impl.el.function.AbstractFlowableVariableExpressionFunction");
         FlowableSerializable flowableSerializable = new FlowableSerializable();
         flowableSerializable.setSerializableFlowableClassList(serializableFlowableClassList);
         try {

+ 6 - 0
flow-common/flow-common-flowable-starter/src/main/java/com/flow/flowable/loader/FlowableSerializable.java

@@ -25,6 +25,12 @@ public class FlowableSerializable {
         for (String serializableFlowableClass : serializableFlowableClassList) {
             CtClass ctClass = classPool.get(serializableFlowableClass);
             ctClass.addInterface(classPool.get("java.io.Serializable"));
+            if ("org.flowable.common.engine.impl.el.function.AbstractFlowableVariableExpressionFunction".equals(serializableFlowableClass)) {
+                CtField[] fields = ctClass.getFields();
+                for (CtField field : fields) {
+                    field.setModifiers(Modifier.TRANSIENT);
+                }
+            }
             if (!ctClass.isInterface()) {
                 CtField field = CtField.make("private static final long serialVersionUID = 1L;", ctClass);
                 ctClass.addField(field);