Thanks, we'll get this one fixed quickly. Mark On 17 Feb 2013, at 16:32, Wolfgang Laun <wolfgang.l...@gmail.com> wrote:
> Below is a fully self-contained DRL that compiles correctly but runs > into a runtime error when the LHS of rule "match" is evaluated. The > "culprit" is the test "this != $c", but one would expect simply a true > result from the comparison. > > declare Person > name: String > end > declare Customer > extends Person > rating: int > end > declare Employee > extends Person > wage: int > end > > rule initphone > salience 100 > when > then > insert( new Customer( "Joe", 100 ) ); > insert( new Employee( "Paul", 2100 ) ); > end > > rule match > when > $c: Customer() > $e: Employee( this != $c ) > then > System.out.println( "c/e " + $c + " " + $e ); > end > > Exception in thread "main" Exception executing consequence for rule > "initphone" in express: [Error: incompatible types in statement: class > express.Customer (compared from: class express.Employee)] > [Near : {... this != $c ....}] > ^ > [Line: 1, Column: 1] > at > org.drools.runtime.rule.impl.DefaultConsequenceExceptionHandler.handleException(DefaultConsequenceExceptionHandler.java:39) > at > org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:1297) > at org.drools.common.DefaultAgenda.fireNextItem(DefaultAgenda.java:1221) > at org.drools.common.DefaultAgenda.fireAllRules(DefaultAgenda.java:1456) > at > org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:710) > at > org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:674) > at > org.drools.impl.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:230) > at express.Main.execute(Main.java:92) > at express.Main.main(Main.java:126) > Caused by: [Error: incompatible types in statement: class > express.Customer (compared from: class express.Employee)] > [Near : {... this != $c ....}] > ^ > [Line: 1, Column: 1] > at org.mvel2.ast.BinaryOperation.<init>(BinaryOperation.java:84) > at org.mvel2.util.CompilerTools.finalizePayload(CompilerTools.java:118) > at > org.mvel2.compiler.ExpressionCompiler._compile(ExpressionCompiler.java:287) > at > org.mvel2.compiler.ExpressionCompiler.compile(ExpressionCompiler.java:62) > at org.mvel2.MVEL.compileExpression(MVEL.java:810) > at > org.drools.base.mvel.MVELCompilationUnit.compile(MVELCompilationUnit.java:435) > at > org.drools.base.mvel.MVELCompilationUnit.getCompiledExpression(MVELCompilationUnit.java:238) > at > org.drools.rule.constraint.MvelConstraint.createMvelConditionEvaluator(MvelConstraint.java:206) > at > org.drools.rule.constraint.MvelConstraint.evaluate(MvelConstraint.java:190) > at > org.drools.rule.constraint.MvelConstraint.isAllowedCachedRight(MvelConstraint.java:184) > at > org.drools.common.SingleBetaConstraints.isAllowedCachedRight(SingleBetaConstraints.java:134) > at org.drools.reteoo.JoinNode.propagateFromRight(JoinNode.java:156) > at org.drools.reteoo.JoinNode.assertObject(JoinNode.java:148) > at > org.drools.reteoo.SingleObjectSinkAdapter.propagateAssertObject(SingleObjectSinkAdapter.java:59) > at > org.drools.reteoo.ObjectTypeNode.assertObject(ObjectTypeNode.java:235) > at > org.drools.reteoo.EntryPointNode.assertObject(EntryPointNode.java:240) > at org.drools.common.NamedEntryPoint.insert(NamedEntryPoint.java:350) > at org.drools.common.NamedEntryPoint.insert(NamedEntryPoint.java:311) > at > org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:903) > at > org.drools.base.DefaultKnowledgeHelper.insert(DefaultKnowledgeHelper.java:192) > at > org.drools.base.DefaultKnowledgeHelper.insert(DefaultKnowledgeHelper.java:186) > at > express.Rule_initphone_aea184dfceb14326841c37daadabfdbc.defaultConsequence(Rule_initphone_aea184dfceb14326841c37daadabfdbc.java:8) > at > express.Rule_initphone_aea184dfceb14326841c37daadabfdbcDefaultConsequenceInvokerGenerated.evaluate(Unknown > Source) > at > express.Rule_initphone_aea184dfceb14326841c37daadabfdbcDefaultConsequenceInvoker.evaluate(Unknown > Source) > at > org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:1287) > ... 7 more > _______________________________________________ > rules-users mailing list > rules-users@lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users _______________________________________________ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users