Well, like Wolfgang said, good luck with that. :) The only rules engine I know that does this is Tibco BusinessEvents, and it's accomplished by making a copy of your objects before inserting them into working memory.
>From this forum post I'm guessing JRules doesn't do it: >http://forums.ilog.com/brms/index.php?topic=1439.0 And probably Blaze Advisor doesn't do it either: http://discuss.fico.com/blaze/board/message?board.id=Blaze_Advisor_Users_Forum&message.id=591 So, I'm thinking you're stuck with having to do null checks. --- On Wed, 5/13/09, Shabbir Dhari <[email protected]> wrote: > From: Shabbir Dhari <[email protected]> > Subject: RE: [rules-users] NullPointerException with Wrapper objects > To: [email protected] > Date: Wednesday, May 13, 2009, 5:44 AM > Thanks for all you efforts :) but what is the difference > between calling function from every rule or putting null > check. I give up. I am looking for other rule engines. > > > > Date: Wed, 13 May 2009 12:19:08 +0200 > Subject: Re: [rules-users] NullPointerException with > Wrapper objects > From: [email protected] > To: [email protected] > > Well, I hope you get paid for all the extra work ;-) > > Define, in your .drl file, > > function float safe( Float v ){ > return v == null ? 0 : v; > } > > and wrap all references to the "dangerous" > field(s) in your LHS pattern expressions with this call, > except, of course, in the rule where you fix and log the > field. > > -W > > > > > 2009/5/13 Shabbir Dhari <[email protected]> > > > > Well I cant explain you all the issues and requirements > here. Simply we dont have provision to do so. We have to > check the null in the rules and log the message plus other > evaluation and arithmetic. > > > > Date: Wed, 13 May 2009 10:36:59 +0200 > > > > Subject: Re: [rules-users] NullPointerException with > Wrapper objects > From: [email protected] > To: [email protected] > > But you do control the insertion of your facts. Rather than > cluttering rules with conditions dealing with irregular > values, preprocess the object. And you should be able to log > from there, just as well. > -W > > > 2009/5/13 Shabbir Dhari <[email protected]> > > > I can not initialize property as need to log the message. > The bean comes from outside our application scope. We do not > have control to make them menodatory. And we need to log the > message. You mean there is no solution of this problem? And > remember my second rule does not compare propery but it > performs some calculations. > > > > Date: Wed, 13 May 2009 09:01:05 +0200 > > Subject: Re: [rules-users] NullPointerException with > Wrapper objects > From: [email protected] > > To: [email protected] > > What about setting the field to 0 in the constructor of > Salary? > Or using float (not java.lang.Float)? > -W > > > 2009/5/13 Shabbir Dhari <[email protected]> > > > I know this work around. But I have more than 50 rules > using that attribute and it looks very ugly to put null on > every rule and its not single attribute. There are more than > 30 attributes in the bean and using them in LHS. Any other > sophisticated way? > > > Date: Tue, 12 May 2009 23:15:54 -0700 > > From: [email protected] > > Subject: Re: [rules-users] NullPointerException with > Wrapper objects > > > To: [email protected] > > > > > > > All conditions of all applicable rules are evaluated > when you insert an object into working memory. This decides > which rule actions can go on the agenda. Only when a rule > action is on the agenda is the salience used to determine > the order of action firing. So doing the null check in the > way you're doing it will not work. > > > > You must put the null check in the same rule, before > the potentially null property is used. > > > > rule "Nett Salary" salience 70 > > when > > Salary ( loanDeduction != null, nett != ( gross – > loanDeduction – pf) ) > > then > > log("Invalid nett salary amount"); > > end > > > > > > > Check out the new Windows Live Messenger Looking for a > fresh way to share your photos? > _______________________________________________ > rules-users mailing list > [email protected] > https://lists.jboss.org/mailman/listinfo/rules-users > > > > > > Click Here View photos of singles in your area > _______________________________________________ > rules-users mailing list > [email protected] > https://lists.jboss.org/mailman/listinfo/rules-users > > > > > > Find out how with Windows Live! Want to stay on top of your > life online? > _______________________________________________ > rules-users mailing list > [email protected] > https://lists.jboss.org/mailman/listinfo/rules-users > > > > _________________________________________________________________ > Want to stay on top of your life online? Find out how with > Windows Live! > http://windowslive.ninemsn.com.au/_______________________________________________ > 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
