[rules-users] Rules not firing when facts asserted in a rule RHS in 5.0 - diagnosed with workaround (but not fixed)

Chris Selwyn chris at selwyn-family.me.uk
Wed Dec 1 16:29:17 EST 2010


Having spent all day on this one, I have finally got to the bottom of it.

The problem is reproducible if I have /both/ a declarative fact model 
/and/ a function in my rules.
It doesn't matter whether the function is called or not... It's presence 
is enough to  cause the problem.

Any rule that is dependent on the existence of an instance of the 
declarative fact model where the instance is created in the RHS of 
another rule will not fire.

I suspect that this is a bug that has been fixed in 5.1 because I have 
been using this technique in Drools 5.1... It's only since downgrading 
to the (supported) JBoss Rules 5.0 that I have experienced the problem.

Does anyone know if there is a fix in the 5.0 branch?

If I create a "real" Java class and upload it in a jar file to the 
Guvnor and use that in place of the declarative model then the problem 
does not happen.
This is a workaround in the short term but I would much prefer not to 
have to do this.

Chris Selwyn


On 01/12/2010 15:14, Chris Selwyn wrote:
> Yes the package is "SWWB2BOutgoing" but it looks as though the package 
> name simple doesn't get reported in the log file.
>
> I have been debugging through this thing and where I've got to so far 
> is that I am getting two (and maybe more) entries for the class 
> "SWWB2BOutgoing.QuestionValidation" in the 
> ObjectTypeConfigurationRepository.
> So my current question is "How is this possible?" Is it maybe a 
> classloader issue?
>
> Chris
>
>
> On 01/12/2010 12:05, Wolfgang Laun wrote:
>> A closer look:
>>
>> On 1 December 2010 11:13, Chris Selwyn <chris at selwyn-family.me.uk 
>> <mailto:chris at selwyn-family.me.uk>> wrote:
>>
>>
>>
>>     I can see the facts being inserted in the log as follows
>>     [#|2010-12-01T09:19:16.723+0000|INFO|sun-appserver2.1|javax.enterprise.system.stream.out|_ThreadID=70;_ThreadName=p:
>>     thread-pool-1; w: 7;|
>>     OBJECT ASSERTED value:QuestionValidation( mandatory=true,
>>     state=Closed,
>>     question=B2B_METER_SERIAL_NUMBER, type=string ) factId: 39|#]
>>
>>
>> Shouldn't the package name appear in the log as well?
>>
>>
>>     However, if I insert a QuestionValidation fact created in Java by
>>     using
>>     kbase.getFactType("SWWB2BOutgoing", "QuestionValidation") then
>>     the Test
>>     rule gets fired just fine.
>>
>>
>> That is, apparently "SWWB2BOutgoing".
>>
>> -W
>>
>>
>> _______________________________________________
>> rules-users mailing list
>> rules-users at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/rules-users
>>
>>
>> No virus found in this message.
>> Checked by AVG - www.avg.com <http://www.avg.com>
>> Version: 10.0.1170 / Virus Database: 426/3290 - Release Date: 11/30/10
>>
>
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>
>
> No virus found in this message.
> Checked by AVG - www.avg.com <http://www.avg.com>
> Version: 10.0.1170 / Virus Database: 426/3290 - Release Date: 11/30/10
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20101201/8d196d20/attachment.html 


More information about the rules-users mailing list