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

Shabbir Dhari sdhari at hotmail.com
Wed Feb 24 07:36:49 EST 2010


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
 		 	   		  
_________________________________________________________________
Find a great deal on your next car. Get straight to the Point.
http://clk.atdmt.com/NMN/go/157637060/direct/01/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20100224/8e80c9b8/attachment.html 


More information about the rules-users mailing list