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