Actually, it is still broken. This does not complain but it always executes the consequence, even when the stateLicensures includes the state that in patientDetails.state
$ca:CandidateAssociation(nurseDetails.stateLicensures not contains patientDetails.state ) I also tried the following but it complains with an Exception $ca:CandidateAssignment(participantDetails.state not memberof nurseDetails.stateLicensures ) org.drools.rule.InvalidRulePackage: [13,50]: unknown:13:50 Unexpected token 'not'[13,93]: unknown:13:93 mismatched token: [EMAIL PROTECTED],574:574=')',<13>,13:93]; expecting type LEFT_PAREN at org.drools.rule.Package.checkValidity(Package.java:408) at org.drools.common.AbstractRuleBase.addPackage(AbstractRuleBase.java:288) Is what I am trying to do supported by Drools? Thank you, Mark -------------- Original message ---------------------- From: [EMAIL PROTECTED] > My rule now appears to be working after switching from the "excludes" > operator > to the newer "not contains". > > This works: > $ca:CandidateAssociation(nurseDetails.stateLicensures not contains > patientDetails.state ) > > This does not: > $ca:CandidateAssociation(nurseDetails.stateLicensures excludes > patientDetails.state ) > > > Mark > > -------------- Original message ---------------------- > From: [EMAIL PROTECTED] > > Hello, > > > > Please excuse me if I have double posted - my first did not seem to appear. > > > > I am wondering if the following is valid rule syntax. I am getting a > stacktrace > > when the rules fire that points to a ClassCastException on a HashSet > > > > I am using v4.0 GA. > > > > Thank you, Mark > > > > > > rule StateMatch > > when > > $ca:CandidateAssociation(nurseDetails.stateLicensures excludes > > patientDetails.state ) > > then > > retract( $ca ); > > end > > > > > > public class CandidateAssociation { > > private PatientDetails patientDetails; > > private NurseDetails nurseDetails; > > private int overlapHours; > > > > public CandidateAssociation( PatientDetails patientDetails, > > NurseDetails > > nurseDetails) { > > super(); > > this.patientDetails = patientDetails; > > this.nurseDetails = nurseDetails; > > overlapHours = > > participantDetails.getNumberOverlapHourCnt(nurseDetails); > > } > > [...] > > } > > > > public class NurseDetails { > > private Set stateLicensures = new HashSet(); > > [...] > > } > > public class PatientDetails { > > private String state; > > [...] > > } > > > > ------------------------------------------------------ > > Firing Rules > > ********** > > org.drools.RuntimeDroolsException: Exception executing predicate > > [EMAIL PROTECTED] > > at > > org.drools.rule.PredicateConstraint.isAllowed(PredicateConstraint.java:197) > > at org.drools.reteoo.AlphaNode.assertObject(AlphaNode.java:121) > > at > > > org.drools.reteoo.CompositeObjectSinkAdapter.propagateAssertObject(CompositeObje > > ctSinkAdapter.java:317) > > at > > org.drools.reteoo.ObjectTypeNode.assertObject(ObjectTypeNode.java:159) > > at org.drools.reteoo.Rete.assertObject(Rete.java:175) > > at > > org.drools.reteoo.ReteooRuleBase.assertObject(ReteooRuleBase.java:190) > > at > > org.drools.reteoo.ReteooWorkingMemory.doInsert(ReteooWorkingMemory.java:70) > > at > > org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:772) > > at > > org.drools.base.DefaultKnowledgeHelper.insert(DefaultKnowledgeHelper.java:64) > > at > > org.drools.base.DefaultKnowledgeHelper.insert(DefaultKnowledgeHelper.java:58) > > at > > > org.drools.examples.Rule_InitializeCandidateForEachNurse_0.consequence(Rule_Init > > ializeCandidateForEachNurse_0.java:13) > > at > > > org.drools.examples.Rule_InitializeCandidateForEachNurse_0ConsequenceInvoker.eva > > luate(Rule_InitializeCandidateForEachNurse_0ConsequenceInvoker.java:25) > > at > > org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:503) > > at org.drools.common.DefaultAgenda.fireNextItem(DefaultAgenda.java:467) > > at > > > org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java: > > 403) > > at > > > org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java: > > 384) > > at > > primarynursePOC.PrimaryNursePOC.selectPrimaryNurse(PrimaryNursePOC.java:136) > > at primarynursePOC.PrimaryNursePOC.main(PrimaryNursePOC.java:91) > > Caused by: java.lang.ClassCastException: java.util.HashSet > > at > > > org.drools.base.mvel.MVELPredicateExpression.evaluate(MVELPredicateExpression.ja > > va:35) > > at > > org.drools.rule.PredicateConstraint.isAllowed(PredicateConstraint.java:191) > > ... 17 more > > org.drools.RuntimeDroolsException: Exception executing predicate > > [EMAIL PROTECTED] > > at > > org.drools.rule.PredicateConstraint.isAllowed(PredicateConstraint.java:197) > > at org.drools.reteoo.AlphaNode.assertObject(AlphaNode.java:121) > > at > > > org.drools.reteoo.CompositeObjectSinkAdapter.propagateAssertObject(CompositeObje > > ctSinkAdapter.java:317) > > at > > org.drools.reteoo.ObjectTypeNode.assertObject(ObjectTypeNode.java:159) > > at org.drools.reteoo.Rete.assertObject(Rete.java:175) > > at > > org.drools.reteoo.ReteooRuleBase.assertObject(ReteooRuleBase.java:190) > > at > > org.drools.reteoo.ReteooWorkingMemory.doInsert(ReteooWorkingMemory.java:70) > > at > > org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:772) > > at > > org.drools.base.DefaultKnowledgeHelper.insert(DefaultKnowledgeHelper.java:64) > > at > > org.drools.base.DefaultKnowledgeHelper.insert(DefaultKnowledgeHelper.java:58) > > at > > > org.drools.examples.Rule_InitializeCandidateForEachNurse_0.consequence(Rule_Init > > ializeCandidateForEachNurse_0.java:13) > > at > > > org.drools.examples.Rule_InitializeCandidateForEachNurse_0ConsequenceInvoker.eva > > luate(Rule_InitializeCandidateForEachNurse_0ConsequenceInvoker.java:25) > > at > > org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:503) > > at org.drools.common.DefaultAgenda.fireNextItem(DefaultAgenda.java:467) > > at > > > org.drools.common.AbstractWorkingMemory.doOtherwise(AbstractWorkingMemory.java:4 > > 30) > > at > > > org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java: > > 412) > > at > > > org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java: > > 384) > > at > > primarynursePOC.PrimaryNursePOC.selectPrimaryNurse(PrimaryNursePOC.java:136) > > at primarynursePOC.PrimaryNursePOC.main(PrimaryNursePOC.java:91) > > Caused by: java.lang.ClassCastException: java.util.HashSet > > at > > > org.drools.base.mvel.MVELPredicateExpression.evaluate(MVELPredicateExpression.ja > > va:35) > > at > > org.drools.rule.PredicateConstraint.isAllowed(PredicateConstraint.java:191) > > ... 18 more > > Exception in thread "main" org.drools.spi.ConsequenceException: > > org.drools.RuntimeDroolsException: Exception executing predicate > > [EMAIL PROTECTED] > > at > > org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:507) > > at org.drools.common.DefaultAgenda.fireNextItem(DefaultAgenda.java:467) > > at > > > org.drools.common.AbstractWorkingMemory.doOtherwise(AbstractWorkingMemory.java:4 > > 30) > > at > > > org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java: > > 412) > > at > > > org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java: > > 384) > > at > > primarynursePOC.PrimaryNursePOC.selectPrimaryNurse(PrimaryNursePOC.java:136) > > at primarynursePOC.PrimaryNursePOC.main(PrimaryNursePOC.java:91) > > Caused by: org.drools.RuntimeDroolsException: Exception executing predicate > > [EMAIL PROTECTED] > > at > > org.drools.rule.PredicateConstraint.isAllowed(PredicateConstraint.java:197) > > at org.drools.reteoo.AlphaNode.assertObject(AlphaNode.java:121) > > at > > > org.drools.reteoo.CompositeObjectSinkAdapter.propagateAssertObject(CompositeObje > > ctSinkAdapter.java:317) > > at > > org.drools.reteoo.ObjectTypeNode.assertObject(ObjectTypeNode.java:159) > > at org.drools.reteoo.Rete.assertObject(Rete.java:175) > > at > > org.drools.reteoo.ReteooRuleBase.assertObject(ReteooRuleBase.java:190) > > at > > org.drools.reteoo.ReteooWorkingMemory.doInsert(ReteooWorkingMemory.java:70) > > at > > org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:772) > > at > > org.drools.base.DefaultKnowledgeHelper.insert(DefaultKnowledgeHelper.java:64) > > at > > org.drools.base.DefaultKnowledgeHelper.insert(DefaultKnowledgeHelper.java:58) > > at > > > org.drools.examples.Rule_InitializeCandidateForEachNurse_0.consequence(Rule_Init > > ializeCandidateForEachNurse_0.java:13) > > at > > > org.drools.examples.Rule_InitializeCandidateForEachNurse_0ConsequenceInvoker.eva > > luate(Rule_InitializeCandidateForEachNurse_0ConsequenceInvoker.java:25) > > at > > org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:503) > > ... 6 more > > Caused by: java.lang.ClassCastException: java.util.HashSet > > at > > > org.drools.base.mvel.MVELPredicateExpression.evaluate(MVELPredicateExpression.ja > > va:35) > > at > > org.drools.rule.PredicateConstraint.isAllowed(PredicateConstraint.java:191) > > ... 18 more > > _______________________________________________ > > rules-users mailing list > > rules-users@lists.jboss.org > > https://lists.jboss.org/mailman/listinfo/rules-users > > _______________________________________________ > rules-users mailing list > rules-users@lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users _______________________________________________ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users