Michael,
Yes, this is fixed in trunk. Latest snapshot can be downloaded from here:
http://cruisecontrol.jboss.com/cc/artifacts/jboss-rules
Thanks for reporting and providing fix.
[]s
Edson
2007/8/17, Michael Waluk <mwaluk(a)gmail.com>:
I found my problem, in case anyone else has this same issue (until 4.0.1which may have
this fixed):
The ClassObjectFilter's accept method works like this:
public boolean accept(Object object) {
return object.getClass().isAssignableFrom( this.clazz );
}
which is opposite of what I expected. I want to find all the objects in
working memory that implement a particular interface. So I created my own
ObjectFilter that works like you'd expect:
public boolean accept(Object object) {
return this.clazz.isAssignableFrom(object.getClass());
}
Hope it helps someone,
Michael
On 8/16/07, Michael Waluk <mwaluk(a)gmail.com> wrote:
>
> The log file also shows that the BenefitsProgramEvent was inserted
> properly. So why wouldn't it appear in the working memory? Do I need to do
> something special or is somehow inserted in another working memory?
>
> Thanks for any suggestions,
> Michael
>
> <object-stream>
> <list>
> <org.drools.audit.event.ActivationLogEvent>
> <activationId>RecognizeBenefitsProgramEvent [1]</activationId>
> <rule>RecognizeBenefitsProgramEvent</rule>
> <declarations>$edit=
> com.workscape.oba.model.editor.benefits.BenefitsProgramModelEdit@12d91d5
> (1)</declarations>
> <type>6</type>
> </org.drools.audit.event.ActivationLogEvent>
> <org.drools.audit.event.ObjectLogEvent>
> <factId>84</factId>
> <objectToString>
> com.workscape.oba.model.events.BenefitsProgramEvent@9b6713
> []</objectToString>
> <type>1</type>
> </org.drools.audit.event.ObjectLogEvent>
> <org.drools.audit.event.ActivationLogEvent>
> <activationId>RecognizeBenefitsProgramEvent [1]</activationId>
> <rule>RecognizeBenefitsProgramEvent</rule>
> <declarations>$edit=
> com.workscape.oba.model.editor.benefits.BenefitsProgramModelEdit@12d91d5
> (1)</declarations>
> <type>7</type>
> </org.drools.audit.event.ActivationLogEvent>
> </list>
> </object-stream>
>
>
>
>
> On 8/15/07, Michael Waluk <mwaluk(a)gmail.com> wrote:
> >
> > I just upgraded to Drools 4.0 and changed my assertObject calls to
> > insert. I also switched from WorkingMemory to StatefulSession. The rules
> > seem to be fine, but I am not able to retrieve any inserted objects from the
> > working memory for some reason. Here is what I'm doing. I'd
appreciate any
> > suggestions...
> >
> > StatefulSession *workingMemory* = getActiveWorkingMemories(id);
> > *workingMemory*.fireAllRules();
> >
> > // Here is the rule that fires:
> > *
> >
> > rule
> > *"RecognizeBenefitsProgramEvent" *
> > ** when* $edit: BenefitsProgramModelEdit()
> > * then*
> > * insert* (*new* *BenefitsProgramEvent*("BenefitsProgramEvent",
> > $edit.getValidFrom(), "AnnualEnrollmentEvent")); *
> > ** System*.out.println("Rule RecognizeBenefitsProgramEvent fired "
);
> > *
> > **end*
> >
> > I see the print statement in the console but the inserted object is
> > not actually in the working memory. I look using this:
> >
> > Iterator events = *workingMemory*.iterateObjects(new
> > ClassObjectFilter(BenefitsProgramEvent.class));
> >
> > This iterator is empty. I also debug and look at the assetMap inside
> > workingMemory and it never changes.
> >
> > Thanks,
> >
> > Michael
> >
>
>
_______________________________________________
rules-users mailing list
rules-users(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users
--
Edson Tirelli
Software Engineer - JBoss Rules Core Developer
Office: +55 11 3529-6000
Mobile: +55 11 9287-5646
JBoss, a division of Red Hat @
www.jboss.com