[rules-users] Can't call static method in 'in' compound restriction?

Gattiker, Alexandre Alexandre.Gattiker at generali.ch
Wed Jan 16 04:34:57 EST 2008


Thanks a lot, Edson, for the quick reply yesterday. Here's another one. The following rule compiles, but Drools crashes upon insertion of an object. Same when calling a static method instead of a constructor.

(Based on the Eclipse sample rule project)

rule "rule1"
	when
		$p1:Message(
			message in (
				(new String("A")),
				(new String("B"))
			)
		)
	then
		System.out.println("foo");
end


java.lang.UnsupportedOperationException: does not support method call isAllowed(Object object, InternalWorkingMemory workingMemoiry)
	at org.drools.rule.ReturnValueRestriction.isAllowed(ReturnValueRestriction.java:177)
	at org.drools.rule.OrCompositeRestriction.isAllowed(OrCompositeRestriction.java:20)
	at org.drools.rule.MultiRestrictionFieldConstraint.isAllowed(MultiRestrictionFieldConstraint.java:70)
	at org.drools.reteoo.AlphaNode.assertObject(AlphaNode.java:132)
	at org.drools.reteoo.SingleObjectSinkAdapter.propagateAssertObject(SingleObjectSinkAdapter.java:22)
	at org.drools.reteoo.ObjectTypeNode.assertObject(ObjectTypeNode.java:153)
	at org.drools.reteoo.Rete.assertObject(Rete.java:177)
	at org.drools.reteoo.ReteooRuleBase.assertObject(ReteooRuleBase.java:192)
	at org.drools.reteoo.ReteooWorkingMemory.doInsert(ReteooWorkingMemory.java:71)
	at org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:886)
	at org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:858)
	at org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:659)
	at com.sample.DroolsTest.main(DroolsTest.java:28)

I'm on drools 4.0.2 and mvel14-1.2.8.

Alexandre




More information about the rules-users mailing list