[rules-users] 5.6.0.CR1 gives a NullPointerException in after evaluator

nxv nxvanderlinden at gmail.com
Mon Feb 3 06:32:09 EST 2014


Hello,

I have the same problem with kie 6.1.0-SNAPSHOT :(

Here is the unit test:  Drools-after-61.zip
<http://drools.46999.n3.nabble.com/file/n4027965/Drools-after-61.zip>  



nxv wrote
> 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 &lt;

>> nxvanderlinden@

>> &gt; &lt;mailto:

>> nxvanderlinden@

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


More information about the rules-users mailing list