The stack trace is suggestive of more complexity than you describe with this simple rule and class.
mergePackage, removeRule: these methods aren't called due to a simple fireAllRules() after inserting a few facts. What's really going on here - some dynamic reconfiguration of the KB? -W On 19/09/2012, tosmun <[email protected]> wrote: > Hi All, > > I am having a very strange issue with my knowledge base... I have the > following Rule: > > ... > rule "root_host" > no-loop true > ruleflow-group 'initialize-appliance-definitions' > when > $app:ApplianceType > ( > type == ApplianceTypeIdentifier.APPLIANCE_ROOT > ); > not( ApplianceTypeObject() from $app.getObjectTypes()); > then > //Do something > end; > ... > > And the ApplianceType class is defined as: > > ... > public class ApplianceType > { > private ApplianceTypeIdentifier type; > private List<ApplianceTypeObject> objectTypes; > > public ApplianceType(ApplianceTypeIdentifier type, > List<ApplianceTypeObject> initialObjectTypes) > { > this.type = type; > if(initialObjectTypes == null) > this.objectTypes = new ArrayList<ApplianceTypeObject>(); > else > this.objectTypes = initialObjectTypes; > } > > public ApplianceType(ApplianceTypeIdentifier type) > { > this(type, null); > } > > public ApplianceTypeIdentifier getType() > { > return type; > } > > public List<ApplianceTypeObject> getObjectTypes() { > return objectTypes; > } > } > > When attempting to fireAllRules() I receive the following error: > > ... > Caused by: java.lang.ClassCastException: org.drools.reteoo.FromNode > incompatible with org.drools.reteoo.BetaNode > at org.drools.reteoo.ReteooBuilder.resetMasks(ReteooBuilder.java:303) > at org.drools.reteoo.ReteooBuilder.removeRule(ReteooBuilder.java:267) > at org.drools.reteoo.ReteooRuleBase.removeRule(ReteooRuleBase.java:459) > at > org.drools.common.AbstractRuleBase.removeRule(AbstractRuleBase.java:1107) > at > org.drools.common.AbstractRuleBase.mergePackage(AbstractRuleBase.java:851) > at > org.drools.common.AbstractRuleBase.addPackages(AbstractRuleBase.java:610) > at org.drools.reteoo.ReteooRuleBase.addPackages(ReteooRuleBase.java:472) > at > org.drools.impl.KnowledgeBaseImpl.addKnowledgePackages(KnowledgeBaseImpl.java:150) > at > com.q1labs.frameworks.drools.DroolsEngine.getKnowledgeBase(DroolsEngine.java:139) > at > com.q1labs.frameworks.drools.DroolsEngine.onInit(DroolsEngine.java:50) > at > com.q1labs.frameworks.naming.FrameworksNaming.initializeNewComponent(FrameworksNaming.java:951) > ... 3 more > > > Any thoughts? I have been using from clauses just like this throughout my > project, and have had no issues with it to this point (even those which did > not use generics). > > > > -- > View this message in context: > http://drools.46999.n3.nabble.com/Issue-with-From-Clause-Class-Cast-Error-tp4019846.html > Sent from the Drools: User forum mailing list archive at Nabble.com. > _______________________________________________ > rules-users mailing list > [email protected] > https://lists.jboss.org/mailman/listinfo/rules-users > _______________________________________________ rules-users mailing list [email protected] https://lists.jboss.org/mailman/listinfo/rules-users
