Bug 980385 - NPE when compiling DRL with two timers
Summary: NPE when compiling DRL with two timers
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: JBoss BRMS Platform 6
Classification: Retired
Component: BRE
Version: 6.0.0
Hardware: Unspecified
OS: Unspecified
unspecified
high
Target Milestone: DR6
: 6.0.0
Assignee: Mario Fusco
QA Contact: Marek Winkler
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2013-07-02 08:44 UTC by Marek Winkler
Modified: 2014-08-06 20:16 UTC (History)
2 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2014-08-06 20:16:48 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description Marek Winkler 2013-07-02 08:44:29 UTC
Description of problem:

When compiling the following DRL:

package ...

import java.util.Date
import java.util.List

global List dates

rule "intervalRule"
  timer(int: 200ms 100ms)
when
  String(this == "intervalRule")
then
  Date date = new Date();
  dates.add(date);
end


// this rule stops timer
rule "stopIntervalRule"
  timer(int: 320ms)
when
  $s : String(this == "intervalRule")
then
  retract($s);
end

The following NPE is thrown:

java.lang.NullPointerException: null
	at org.drools.core.reteoo.TimerNode.equals(TimerNode.java:170)
	at org.drools.core.reteoo.SingleLeftTupleSinkAdapter.getMatchingNode(SingleLeftTupleSinkAdapter.java:159)
	at org.drools.core.reteoo.builder.BuildUtils.attachNode(BuildUtils.java:122)
	at org.drools.core.reteoo.builder.TimerBuilder.build(TimerBuilder.java:68)
	at org.drools.core.reteoo.builder.ReteooRuleBuilder.addSubRule(ReteooRuleBuilder.java:170)
	at org.drools.core.reteoo.builder.ReteooRuleBuilder.addRule(ReteooRuleBuilder.java:136)
	at org.drools.core.reteoo.ReteooBuilder.addRule(ReteooBuilder.java:112)
	at org.drools.core.reteoo.ReteooRuleBase.addRule(ReteooRuleBase.java:429)
	at org.drools.core.common.AbstractRuleBase.addRule(AbstractRuleBase.java:924)
	at org.drools.core.common.AbstractRuleBase.addPackages(AbstractRuleBase.java:600)
	at org.drools.core.reteoo.ReteooRuleBase.addPackages(ReteooRuleBase.java:456)
	at org.drools.core.impl.KnowledgeBaseImpl.addKnowledgePackages(KnowledgeBaseImpl.java:152)
	at org.drools.compiler.kie.builder.impl.KieContainerImpl.createKieBase(KieContainerImpl.java:133)
	at org.drools.compiler.kie.builder.impl.KieContainerImpl.getKieBase(KieContainerImpl.java:81)


Version-Release number of selected component (if applicable):

Drools 6.0.0-SNAPSHOT
Drools 6.0.0.Beta4

This worked in 6.0.0.Beta3, marking as regression.


Additional info:

The stacktrace contains classes from package org.drools.core.reteoo - should they be there when using phreak?

Comment 1 Mario Fusco 2013-07-02 09:37:50 UTC
Fixed.

Comment 2 Marek Winkler 2013-08-08 15:31:44 UTC
Verified on 6.0.0.DR6.


Note You need to log in before you can comment on or make changes to this bug.