The problem is the same as reported by abr. I work with abr on the project :) As he could not reproduce the bug, I just removed lines of code as much as possible to keep only the essentials. Here is a unit test: Drools-after.zip <http://drools.46999.n3.nabble.com/file/n4027676/Drools-after.zip>
Davide Sottara wrote > This is unlikely to be the same exception that started the initial > thread, but a problem nevertheless.. :( > could you create a self-contained test case and submit it? > Thanks > Davide > > On 01/13/2014 08:05 AM, Mark Proctor wrote: >> That was recreated on 5.6.0.CR1 ? The 5.6 ship has sailed now :( and >> currently there are no plans for 5.7 any time soon. We should focus on >> making sure this is fixed in 6.x. >> >> Mark >> On 12 Jan 2014, at 19:21, nxv < > nxvanderlinden@ > > <mailto: > nxvanderlinden@ > >> wrote: >> >>> Hello, >>> >>> I'm able to reproduce this issue with a KB containing only 1 rule. >>> >>> rule "Qualification##ToControl" >>> salience 50 >>> when >>> $p: AccessRegisterSnapshot( >>> $effDt: effectivedate ) >>> $dpo: DeliveryPoint() >>> $gCfg: GeneralConfig( >>> ( todate == null || >>> ( todate after[ 0d ] $effDt && >>> todate after[ 1ms ] fromdate ) ) ) >>> from $dpo.generalConfigs >>> then >>> >>> end >>> >>> This rule worked under drools 5.5.0.Final. >>> >>> Caused by: java.lang.NullPointerException at >>> org.drools.base.evaluators.AfterEvaluatorDefinition$AfterEvaluator.evaluate(AfterEvaluatorDefinition.java:347) >>> at org.drools.base.EvaluatorWrapper.evaluate(EvaluatorWrapper.java:99) >>> >>> >>> >>> >>> Davide Sottara wrote >>>> I tried to reproduce the problem, with no success. >>>> Could you please create a self-contained unit test? >>>> If confirmed, I'll fix the problem as soon as possible >>>> Thanks >>>> Davide >>>> >>>> On 11/14/2013 04:48 AM, abr wrote: >>>>> Hi everyone, >>>>> >>>>> I tried to switch from 5.5.0.Final to 5.6.0.CR1 and got a null pointer >>>>> exception in the evaluation of the after evaluator. >>>>> (Exact method is: >>>>> /org.drools.base.evaluators.AfterEvaluatorDefinition.AfterEvaluator.evaluate(InternalWorkingMemory, >>>>> InternalReadAccessor, InternalFactHandle, InternalReadAccessor, >>>>> InternalFactHandle)/ ) >>>>> >>>>> When debugging, the exception occurs at the very first line of the >>>>> method, >>>>> in: >>>>> / if ( extractor1.isNullValue( workingMemory, >>>>> handle1.getObject() ) || >>>>> extractor2.isNullValue( workingMemory, handle2.getObject() >>>>> ) >>>>> ) { >>>>> return false; >>>>> } >>>>> / >>>>> The cause of the exception is that handle1 is null. >>>>> >>>>> The rule where the exception occurs looks like: >>>>> / MyFact( >>>>> fromdate before[ 0d ] $min, >>>>> ( todate == null || todate after[ 0d ] $max ) ) >>>>> / >>>>> >>>>> When the exception occurs, /MyFact.fromdate/ is not null, /$min/ is >>>>> not >>>>> null, /MyFact.todate/ is null, /$max/ is not null. >>>>> In AfterEvaluator.evaluate : /extractor1/ refers to /MyFact.todate/, >>>>> /extractor2/ refers to /$max/, /handle1/ is null, /handle2/ refers >>>>> to the >>>>> fact including the attribute to which /$max/ variable is bound to. >>>>> >>>>> Of course, this worked fine in 5.5.0.Final. -- View this message in context: http://drools.46999.n3.nabble.com/5-6-0-CR1-gives-a-NullPointerException-in-after-evaluator-tp4026780p4027676.html Sent from the Drools: User forum mailing list archive at Nabble.com. _______________________________________________ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users