I&#39;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&lt;Rule&gt;. 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&lt;Rules&gt;( 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>