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-...
Sent from the Drools: User forum mailing list archive at
Nabble.com.