It's the right place :)

It sounds like a bug (to me) :(

The core engine developers are trawling through a bunch of urgent bugs for other requirements and may not answer here immediately.

If you've not heard anything in a week of two, I'd go banging on the door again...

With kind regards,

Mike

On 17 April 2012 16:42, Shur, Bob <robert.shur@hp.com> wrote:
I'm repeating this post because I didn't get an answer last time. Is this the wrong place to report a bug? If so, where is the right place? I'm trying to understand whether this is really a bug or whether I'm doing something wrong.

I have what looks to me like a Drools bug on a simple drl with declared classes. I'm using version drools-distribution-5.3.0.Final.

I'm invoking it with this:

       StatelessKnowledgeSession ksession = kbase.newStatelessKnowledgeSession();
       List<Object> facts = new ArrayList<Object>();
       ksession.execute( facts );

=============================

I get this crash:

       Exception in thread "main" java.lang.NoClassDefFoundError: com/sample/Cap
       at ASMAccessorImpl_129541121334339192620.getValue(Unknown Source)
       at org.mvel2.optimizers.dynamic.DynamicGetAccessor.getValue(DynamicGetAccessor.java:73)
       at org.mvel2.ast.ASTNode.getReducedValueAccelerated(ASTNode.java:103)
       at org.mvel2.compiler.ExecutableAccessor.getValue(ExecutableAccessor.java:42)
       at org.mvel2.MVEL.executeExpression(MVEL.java:952)
       ...

==========================

Here's the drl file:

package com.sample

import com.sample.*;

declare Item
       id : int;
end

declare Priority
       name : String;
       priority : int;
end

declare Cap
       item : Item;
       name : String
end

rule "split cart into items"
when
then
       insert(new Item(1));
       insert(new Item(2));
       insert(new Item(3));
end

rule "Priorities"
when
then
       insert(new Priority("A", 3));
       insert(new Priority("B", 2));
       insert(new Priority("C", 5));
end

rule "Caps"
when
       $i : Item()
       $p : Priority($name : name)
then
       insert(new Cap($i, $name));
end

rule "test"
when
       $i : Item()
       Cap(item.id == $i.id)
then
       System.out.println("Cap");
end

====================

Some observations:
- If I comment out any of the insert lines, the crash goes away
- If I change the first field of class Cap to be id:int instead of item:Item and make the corresponding changes, the crash goes away


_______________________________________________
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users