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(a)hotmail.com
To: rules-users(a)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(a)gmail.com
To: rules-users(a)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(a)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(a)lists.jboss.org
>
https://lists.jboss.org/mailman/listinfo/rules-users
>
>
_______________________________________________
rules-users mailing list
rules-users(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users
Browse profiles for free! View photos of singles in your area.
_________________________________________________________________
Find a great deal on your next car. Get straight to the Point.