I'm using code such as <br><br>KnowledgeRuntime knowledgeRuntime;<br>for( KnowledgePackage knowledgePackage: knowledgeRuntime.getKnowledgeBase().getKnowledgePackages() ){ <br> for( Rule rule: knowledgePackage.getRules() ){<br>
}<br>}<br><br>to obtain rules, intending to construct a Set<Rule>. This, however, breaks since repeated executions of <br>knowledgePackage.getRules() appear to return different objects and - this is the evil thing -<br>
org.drools.definitions.rule.impl.RuleImpl does not implement hashCode() and equals(); hence<br>Set<Rules>( rule ).contains( rule ) fails for actually identical rules. I consider this a bug in Drools (5.1).<br><br>org.drools.definitions.rule.impl.RuleImpl could easily retain a reference to<br>
the org.drools.rule.Rule object from which it is built and delegate hashCode/equals to that.<br><br>-W<br><br><h2><font size="-1"><br></font></h2>