[rules-users] Comparing Date with || OR operator

Pavel Tavoda pavel.tavoda at gmail.com
Wed Feb 24 10:41:23 EST 2010


I just read you condition. You are building $endDate to
Segment.endDate and than comparing Segment.startDate with $endDate
what is same as comparing Segment.startDate with Segment.endDate ->
transition principle.

Pavel


2010/2/24 Shabbir Dhari <sdhari at hotmail.com>:
> Hi Pavel
>
> I really don’t understand what do you mean. I guess you didn’t read complete
> thread carefully. Assigning endDate attribute in a variable and not using
> that variable in condition make no sense to me.
>
> Shabbir
>
>
>
>> Date: Wed, 24 Feb 2010 10:54:24 +0100
>> From: pavel.tavoda at gmail.com
>> To: rules-users at lists.jboss.org
>> Subject: Re: [rules-users] Comparing Date with || OR operator
>>
>> 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 <sdhari at 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: sdhari at hotmail.com
>> > To: rules-users at 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.laun at gmail.com
>> >> To: rules-users at 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 at 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 at lists.jboss.org
>> >> > https://lists.jboss.org/mailman/listinfo/rules-users
>> >> >
>> >> >
>> >>
>> >> _______________________________________________
>> >> rules-users mailing list
>> >> rules-users at 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 at lists.jboss.org
>> > https://lists.jboss.org/mailman/listinfo/rules-users
>> >
>> >
>>
>> _______________________________________________
>> rules-users mailing list
>> rules-users at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/rules-users
>
> ________________________________
> Get straight to the Point Find a great deal on your next car.
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>
>




More information about the rules-users mailing list