All,
I isolated the problem and submitted a bug for the macro processing
engine. We shall have a fix soon.
Thanks for reporting.
Edson
2009/3/24 Edson Tirelli <tirelli(a)post.com>
Wolfgang,
Yes, Drools rewrites insert() to drools.insert() before compiling. It
seems we have a problem in the function that does the rewrite.
[]s
Edson
2009/3/24 Wolfgang Laun <wolfgang.laun(a)gmail.com>
The RHS of a rule X winds up in some class Rule_X_0. Calls like insert(),
> retract(), etc. are, by definition, method calls of WorlingMemoryEntryPoint,
> and the compiler ought to prefix them with the global reference to that
> object, i.e., "drools". This fails within if statements, both branches.
>
> If you write, inside (or outside) if
> drools.insert(...);
> drools.retract(...)
> all is well.
>
> -W
>
>
> 2009/3/23 Edson Tirelli <tirelli(a)post.com>
>
>
>> This is odd, since this part of the code didn't changed much from
>> drools 4 to 5 (assuming you are using java dialect for your consequence).
>> Can you open a JIRA with your test case plz?
>>
>> []s
>> Edson
>>
>> 2009/3/23 Jared Davis <sunray(a)davisprogramming.com>
>>
>> Hi,
>>>
>>> This rule (not the best style) compiles fine in 4.07. It gives this
>>> error
>>> message using 5.0 Snapshot. I changed some of the text to be generic so
>>> I could
>>> post the code.
>>>
>>> Rule Compilation error : [Rule
>>> name='A.B.inlet.mxb.first.link.20090216.01']
>>>
>>> com/zzzzzz/yyy/awl/Rule_A_B_inlet_mxb_first_link_20090216_01_0.java
>>> (11:5517) : The method insert(RuleLink) is undefined for the type
>>> Rule_A_B_inlet_mxb_first_link_20090216_01_0
>>>
>>>
>>> Here is the rule: (I had to change all the > to . to get gmane to accept
>>> the
>>> email as a non top post)
>>>
>>> rule "A.B.inlet.mxb.first.link.20090216.01"
>>> agenda-group "A.B"
>>> when
>>>
>>> . comp : XComponentRule( path == "~unit~mxb")
>>> then
>>> . Point3d l = new Point3d();
>>> . comp.getBounds().getLower(l);
>>>
>>> . if (l.x < 1) {
>>> . insert( new RuleLink("FIRST.INLET" , comp, comp) );
>>> . } else {
>>> . insert( new RuleLink("FIRST.INLET.NOT" , comp, comp) );
>>> . }
>>> .
>>> end
>>>
>>> If I change the rule to
>>>
>>> rule "A.B.inlet.mxb.first.link.20090216.01"
>>> agenda-group "A.B"
>>> when
>>>
>>> . comp : XComponentRule( path == "~unit~mxb")
>>> then
>>> . Point3d l = new Point3d();
>>> . comp.getBounds().getLower(l);
>>> . String name = "FIRST.INLET";
>>> . if (l.x < 1) {
>>> . // nothing
>>> . } else {
>>> . name = "FIRST.INLET.NOT";
>>> . }
>>> . insert( new RuleLink(name , comp, comp) );
>>> .
>>> end
>>>
>>> it compiles w/o a problem.
>>>
>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> rules-users mailing list
>>> rules-users(a)lists.jboss.org
>>>
https://lists.jboss.org/mailman/listinfo/rules-users
>>>
>>
>>
>>
>> --
>> Edson Tirelli
>> JBoss Drools Core Development
>> JBoss, a division of Red Hat @
www.jboss.com
>>
>> _______________________________________________
>> rules-users mailing list
>> rules-users(a)lists.jboss.org
>>
https://lists.jboss.org/mailman/listinfo/rules-users
>>
>>
>
> _______________________________________________
> rules-users mailing list
> rules-users(a)lists.jboss.org
>
https://lists.jboss.org/mailman/listinfo/rules-users
>
>
--
Edson Tirelli
JBoss Drools Core Development
JBoss, a division of Red Hat @
www.jboss.com
--
Edson Tirelli
JBoss Drools Core Development
JBoss, a division of Red Hat @