Преглед на файлове

解决在通过客户端调用规则流,如果这个规则流中存在通过规则包调用子规则流时,客户端调用出现空指针的BUG

jacky6024 преди 8 години
родител
ревизия
01135674c2

+ 8 - 0
urule-core/src/main/java/com/bstek/urule/dsl/.gitignore

@@ -0,0 +1,8 @@
+/RuleLexer.java
+/RuleLexer.tokens
+/RuleParser.tokens
+/RuleParserBaseVisitor.java
+/RuleParserLexer.java
+/RuleParserLexer.tokens
+/RuleParserParser.java
+/RuleParserVisitor.java

+ 9 - 0
urule-core/src/main/java/com/bstek/urule/runtime/KnowledgePackageWrapper.java

@@ -17,10 +17,12 @@ package com.bstek.urule.runtime;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
 
 import org.codehaus.jackson.map.annotate.JsonDeserialize;
 
 import com.bstek.urule.RuleException;
+import com.bstek.urule.model.flow.FlowDefinition;
 import com.bstek.urule.model.rete.BaseReteNode;
 import com.bstek.urule.model.rete.Line;
 import com.bstek.urule.model.rete.ObjectTypeNode;
@@ -76,6 +78,13 @@ public class KnowledgePackageWrapper {
 			rebuildLine(lines, allNodes);
 		}
 		((KnowledgePackageImpl)knowledgePackage).buildWithElseRules();
+		
+		Map<String, FlowDefinition> flowMap=knowledgePackage.getFlowMap();
+		if(flowMap!=null && flowMap.size()>0){
+			for(FlowDefinition fd:flowMap.values()){
+				fd.buildConnectionToNode();
+			}
+		}
 	}
 	
 	private void rebuildLine(List<Line> lines,List<ReteNode> reteNodes){