//this does NOT work Membership ( $regDate : regDate) Segment ($endDate : endDate, startDate < $regDate || startDate > $endDate )
From: sdhari@hotmail.com To: rules-users@lists.jboss.org Date: Tue, 23 Feb 2010 23:09:50 +0000 Subject: Re: [rules-users] Comparing Date with || OR operator
Segment ( $endDate : endDate, startDate < $regDate || startDate > $endDate ) even does not work. I am using verstion 5.0.1. All dates are java.util.Date and values in sample fact are:
java.lang.NullPointerException at org.drools.reteoo.LeftTuple.get(LeftTuple.java:265) at org.drools.reteoo.LeftTuple.get(LeftTuple.java:300) at org.drools.rule.VariableRestriction$ObjectVariableContextEntry.updateFromTuple(VariableRestriction.java:320) at org.drools.rule.AbstractCompositeConstraint$MultiFieldConstraintContextEntry.updateFromTuple(AbstractCompositeConstraint.java:305) at org.drools.common.SingleBetaConstraints.updateFromTuple(SingleBetaConstraints.java:119) at org.drools.reteoo.JoinNode.assertLeftTuple(JoinNode.java:109) at org.drools.reteoo.SingleLeftTupleSinkAdapter.doPropagateAssertLeftTuple(SingleLeftTupleSinkAdapter.java:117) at org.drools.reteoo.SingleLeftTupleSinkAdapter.createAndPropagateAssertLeftTuple(SingleLeftTupleSinkAdapter.java:78) at org.drools.reteoo.LeftInputAdapterNode.assertObject(LeftInputAdapterNode.java:142) at org.drools.reteoo.SingleObjectSinkAdapter.propagateAssertObject(SingleObjectSinkAdapter.java:42) at org.drools.reteoo.ObjectTypeNode.assertObject(ObjectTypeNode.java:185) at org.drools.reteoo.EntryPointNode.assertObject(EntryPointNode.java:146) at org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:1046) at org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:1001) at org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:788) at org.drools.reteoo.ReteooStatelessSession.execute(ReteooStatelessSession.java:192) at au.gov.nsw.osr.zena.rules.AnnualRulesTester.main(AnnualRulesTester.java:57)
> Date: Tue, 23 Feb 2010 12:54:46 +0100 > From: wolfgang.laun@gmail.com > To: rules-users@lists.jboss.org > Subject: Re: [rules-users] Comparing Date with || OR operator > > Please try this rewrite of the 2nd CE: > Segment ( $endDate : endDate, startDate < $regDate || startDate > $endDate ) > and report the outcome to the list, together with the Dools version > you are using. > Thank you. > > > 2010/2/23 dhari <sdhari@hotmail.com>: > > Hi Thomas > > > > Thanks your prompt reply. I am sure all three attributes are NOT null. I > > have tested them before sending question to mailing list. If you want, I can > > send complete sample code and you can try it at your end. > > > > Regards, > > Dhari > > > > > > ________________________________ > > Date: Tue, 23 Feb 2010 02:50:08 -0800 > > From: [hidden email] > > To: [hidden email] > > Subject: Re: Comparing Date with || OR operator > > > > If it works fine with an and operator then I’d imagine that startDate < > > $regDate returns false, with an && this would abort evaluation immediately > > but with an or it would mean that startDate > endDate is evaluated and so > > presumably it is this bit that is throwing the NPE. I’d imagine that the > > most likely reason for this would be that endDate is null. > > > > > > > > Try changing it too > > > > Segment ( startDate < $regDate || (endDate != null && startDate > endDate) ) > > > > And see whether you loose the NPE. > > > > > > > > Thomas > > > > > > > > From: [hidden email] [mailto:[hidden email]] On Behalf Of dhari > > Sent: 23 February 2010 06:15 > > To: [hidden email] > > Subject: [rules-users] Comparing Date with || OR operator > > > > > > > > The following code generates NPE in ReteTuple.java > > > > rule > > > > when > > > > Membership ( $regDate : regDate) > > > > Segment ( startDate < $regDate || startDate > endDate ) > > > > then > > > > System.err.print(“Invalid start date”); > > > > end > > > > I am new in Drools and don’t know much about DRL scripting. It works fine I > > use && operator instead. > > > > ________________________________ > > > > View this message in context: Comparing Date with || OR operator > > Sent from the Drools - User mailing list archive at Nabble.com. > > > > ________________________________ > > ************************************************************************************** > > This message is confidential and intended only for the addressee. If you > > have received this message in error, please immediately notify the [hidden > > email] and delete it from your system as well as any copies. The content of > > e-mails as well as traffic data may be monitored by NDS for employment and > > security purposes. To protect the environment please do not print this > > e-mail unless necessary. > > > > NDS Limited. Registered Office: One London Road, Staines, Middlesex, TW18 > > 4EX, United Kingdom. A company registered in England and Wales. Registered > > no. 3080780. VAT no. GB 603 8808 40-00 > > ************************************************************************************** > > > > ________________________________ > > This message is confidential and intended only for the addressee. If you > > have received this message in error, please immediately notify the [hidden > > email] and delete it from your system as well as any copies. The content of > > e-mails as well as traffic data may be monitored by NDS for employment and > > security purposes. > > To protect the environment please do not print this e-mail unless necessary. > > > > An NDS Group Limited company. www.nds.com > > > > _______________________________________________ > > rules-users mailing list > > [hidden email] > > https://lists.jboss.org/mailman/listinfo/rules-users > > > > > > ________________________________ > > View message @ > > http://n3.nabble.com/Comparing-Date-with-OR-operator-tp347656p379447.html > > To unsubscribe from Drools - Java Rules Engine, click here. > > > > ________________________________ > > Find your next place with Ninemsn property Looking for a place to rent, > > share or buy? > > ________________________________ > > View this message in context: RE: Comparing Date with || OR operator > > Sent from the Drools - User mailing list archive at Nabble.com. > > > > _______________________________________________ > > 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