[
https://issues.jboss.org/browse/JBRULES-3558?page=com.atlassian.jira.plug...
]
Karol Sobczak updated JBRULES-3558:
-----------------------------------
Description:
I have declared two types:
declare Motion
@role( event )
@expires( 5s )
@timestamp( eventTime )
eventTime : long
end
declare Recording
end
and following rules:
rule "StartRecording"
when
Motion()
not Recording()
then
insert(new Recording())
end
the problem is that when I put a lot of "Motions", sleep (so "Motions"
become expired) and then do fireAllRules(), I got "StartRecording" executed
multiple times (and not only once), event though "Recording" is inserted every
time.
Another issue would be when instead of "StartRecording" rule I would have
"StopRecording" rule:
rule "StopRecording"
when
$m : Motion()
$r : Recording()
then
System.err.println("Recording: " + $r);
retract($r);
end
then when there is a "Recording" fact inserted and multiple expired
"Motions", the rule would be executed multiple times (when "Motions"
expire) and $r would be null after the first "StopRecording" rule execution.
was:
I have declared two types:
declare Motion
@role( event )
@expires( 5s )
@timestamp( eventTime )
eventTime : long
end
declare Recording
end
and following rules:
rule "StartRecording"
when
Motion()
not Recording()
then
insert(new Recording())
end
the problem is that when I put a lot of "motions", sleep (so "motions"
become expired) and then do fireAllRules(), I got "StartRecording" executed
multiple times (and not only once), event though Recording is inserted every time.
Forum Reference:
http://drools.46999.n3.nabble.com/Odd-rules-execution-for-expired-events-...
(was:
http://drools.46999.n3.nabble.com/Odd-rules-execution-for-expired-events-...)
Odd rules execution for expired events
--------------------------------------
Key: JBRULES-3558
URL:
https://issues.jboss.org/browse/JBRULES-3558
Project: Drools
Issue Type: Bug
Security Level: Public(Everyone can see)
Components: drools-core (fusion)
Affects Versions: 5.4.0.Final
Environment: Windows Vista 64, JRE6 (x86)
Reporter: Karol Sobczak
Assignee: Mark Proctor
Attachments: expiredrules.zip
I have declared two types:
declare Motion
@role( event )
@expires( 5s )
@timestamp( eventTime )
eventTime : long
end
declare Recording
end
and following rules:
rule "StartRecording"
when
Motion()
not Recording()
then
insert(new Recording())
end
the problem is that when I put a lot of "Motions", sleep (so
"Motions" become expired) and then do fireAllRules(), I got
"StartRecording" executed multiple times (and not only once), event though
"Recording" is inserted every time.
Another issue would be when instead of "StartRecording" rule I would have
"StopRecording" rule:
rule "StopRecording"
when
$m : Motion()
$r : Recording()
then
System.err.println("Recording: " + $r);
retract($r);
end
then when there is a "Recording" fact inserted and multiple expired
"Motions", the rule would be executed multiple times (when "Motions"
expire) and $r would be null after the first "StopRecording" rule execution.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see:
http://www.atlassian.com/software/jira