Hello
I'd like to report a (possible) bug,
I've tried to run this on the latest version of drools (4.0.3) but I get an
error:
applyOrTransformation could not find transformation for parent 'OR' and
child 'OR'
java.lang.RuntimeException: applyOrTransformation could not find
transformation for parent 'OR' and child 'OR'
at org.drools.rule.LogicTransformer.applyOrTransformation(
LogicTransformer.java:148)
at org.drools.rule.LogicTransformer.processTree(LogicTransformer.java
:140)
at org.drools.rule.LogicTransformer.transform(LogicTransformer.java:76)
at org.drools.rule.Rule.getTransformedLhs(Rule.java:419)
at org.drools.reteoo.builder.ReteooRuleBuilder.addRule(
ReteooRuleBuilder.java:102)
at org.drools.reteoo.ReteooBuilder.addRule(ReteooBuilder.java:116)
at org.drools.reteoo.ReteooRuleBase.addRule(ReteooRuleBase.java:268)
at org.drools.common.AbstractRuleBase.addPackage(AbstractRuleBase.java
:337)
at hr.combis.rule.editor.tester.RuleTesterFDAImpl.createRuleBase(
RuleTesterFDAImpl.java:210)
at hr.combis.rule.editor.tester.RuleTesterFDAImpl.init(
RuleTesterFDAImpl.java:159)
at hr.combis.rule.editor.testing.TestingExecutor.run(
TestingExecutor.java:129)
at java.lang.Thread.run(Thread.java:595)
this is what the rule looks like:
wine : Wine(color == "red")
or
(
cheese : Cheese(smelly == "yes")
*and*
(
person : Person(height == 12, fovouriteCheese == cheese)
*or*
person : Person(height == 13, fovouriteCheese == cheese)
)
)
the rule looks perfectly sensical to me. If I change it to this (which, btw.
looks non-sensical)
wine : Wine(color == "red")
or
(
cheese : Cheese(smelly == "yes")
*or*
(
person : Person(height == 12, fovouriteCheese == cheese)
*and*
person : Person(height == 13, fovouriteCheese == cheese)
)
)
I'm not saying the second one shouldn't work(I fail to make the sense of it
however), but it looks to me, the first one should.
Am I wrong, or is this really a bug?
--
lp
------
Stjepan