What about: Membership ( $regDate : regDate) Segment ($endDate : endDate, startDate < $regDate || startDate > endDate )
Logically startDate > endDate doesn't make sense but it should work ;-) Pavel 2010/2/24 Shabbir Dhari <sdh...@hotmail.com>: > I tried with some thing different and it worked but I don’t want this as I > have many collections in my data structure. > > //this works > Membership ( $regDate : regDate) > Segment ( $endDate : endDate ) > Segment ( startDate < $regDate || startDate > $endDate ) > > //this does NOT work > Membership ( $regDate : regDate) > Segment ($endDate : endDate, startDate < $regDate || startDate > > $endDate ) > > ________________________________ > From: sdh...@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: > > regDate = Fri Aug 01 00:00:00 BST 2008 > startDate = Tue Sep 01 00:00:00 BST 2009 > endDate = Fri Jul 30 00:00:00 BST 2010 > > Stack trace: > > 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.l...@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 <sdh...@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 > > ________________________________ > Browse profiles for free! View photos of singles in your area. > ________________________________ > Get straight to the Point Find a great deal on your next car. > _______________________________________________ > 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