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
> [email protected]
> https://lists.jboss.org/mailman/listinfo/rules-users

_______________________________________________
rules-users mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/rules-users

Reply via email to