]
Duncan Doyle commented on DROOLS-327:
-------------------------------------
Just did some more testing. If you remove the 'Conditional Named Consequence', the
'no-loop' does work as expected, i.e.:
rule "Hello World" dialect "java"
no-loop
when
m : Message( myMessage : message )
// if (m.getStatus() == 0) do [sayHello]
then
System.out.println( myMessage );
m.setMessage( "Goodbye cruel world" );
m.setStatus( Message.GOODBYE );
update( m );
//then[sayHello]
// System.out.println("Hello, I'm here!");
end
PHREAK goes into infinite loop, even with 'no-loop' defined.
------------------------------------------------------------
Key: DROOLS-327
URL:
https://issues.jboss.org/browse/DROOLS-327
Project: Drools
Issue Type: Bug
Security Level: Public(Everyone can see)
Affects Versions: 6.0.0.CR5
Environment: Mac OS-X 10.9, JBoss Developer Studio 7, Oracle Hotspot 1.7.0_45
Reporter: Duncan Doyle
Assignee: Mark Proctor
Labels: infinite, loop, no-loop, phreak
See this project on my Github:
https://github.com/DuncanDoyle/DroolsPhreakConditionalNamedConsequenceInf...
The 'src/main/resources/rules/Sample.drl' contains an adapted version of the
default Drools Eclipse plugin sample rule. As you can see, the rule uses Conditional Named
Consequence construct. Although the rule is a bit strange (the issue actuallty popped up
while debugging another issue) it does show different behaviour between ReteOO and PHREAK,
where in this case PHREAK actually goes into an infinitie-loop, even though
'no-loop' has been defined on the "Hello World" rule.
To run the sample using ReteOO:
- mvn -Preteoo exec:java
The (correct) output is:
Hello World
Goodbye cruel world
To run the sample using PHREAK
- mvn -Pphreak exec:java
The incorrect output is:
Hello, I'm here!
Hello World
Goodbye cruel world
Goodbye cruel world
Goodbye cruel world
Goodbye cruel world
Goodbye cruel world
{infinite loop}
Note that the PHREAK run also prints "Hello, I'm here!" and ReteOO
doesn't (because the activation of that rule is canceled when the Message is updated
with a new message and status).
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: