[
https://issues.jboss.org/browse/JBRULES-3283?page=com.atlassian.jira.plug...
]
RH Bugzilla Integration commented on JBRULES-3283:
--------------------------------------------------
Rick Wagner <rwagner(a)redhat.com> made a comment on [bug
852817|https://bugzilla.redhat.com/show_bug.cgi?id=852817]
+++ This bug was initially created as a clone of Bug #851234 +++
Description of problem:
Since Drools 5.3.0.CR1 concurrent creation of different knowledgebases from filesystem DRL
rule definition leads to illegal bytecode.
Reproduceable with Janino and eclipse compiler.
I have a maven based test project which executes the unit tests in parallel, this is the
result:
runFirst(de.trion.drools53.TwoTest): -1
runFirst(de.trion.drools53.FourTest): (class:
de/trion/drools53/Rule_When_a_user_is_young__print_his_name_DefaultConsequenceInvoker,
method: equals signature: (Ljava/lang/Object;)Z) Expecting to find integer on stack
runSecond(de.trion.drools53.FourTest): (class:
de/trion/drools53/Rule_When_a_user_is_young__print_his_name_DefaultConsequenceInvoker,
method: equals signature: (Ljava/lang/Object;)Z) Expecting to find integer on stack
runFirst(de.trion.drools53.OneTest): (class:
de/trion/drools53/Rule_When_a_user_is_young__print_his_name_DefaultConsequenceInvoker,
method: equals signature: (Ljava/lang/Object;)Z) Expecting to find integer on stack
runFirst(de.trion.drools53.ThreeTest): (class:
de/trion/drools53/Rule_When_a_user_is_young__print_his_name_DefaultConsequenceInvoker,
method: equals signature: (Ljava/lang/Object;)Z) Incompatible object argument for function
call
runSecond(de.trion.drools53.ThreeTest): (class:
de/trion/drools53/Rule_When_there_is_god__the_light_always_shines_DefaultConsequenceInvoker,
method: equals signature: (Ljava/lang/Object;)Z) Unable to pop operand off an empty stack
Workaround: synchronize access
Not affected: Drools 5.3.0.Beta
Version-Release number of selected component (if applicable):
JBoss SOA-P 5.3.0
How reproducible:
https://issues.jboss.org/browse/JBRULES-3283 contains testing project and description
Concurrency issue: Invalid bytecode generated by
KnowledgeBuilder.add()
-----------------------------------------------------------------------
Key: JBRULES-3283
URL:
https://issues.jboss.org/browse/JBRULES-3283
Project: Drools
Issue Type: Bug
Security Level: Public(Everyone can see)
Components: drools-compiler (expert)
Affects Versions: 5.3.0.CR1, 5.3.0.Final
Environment: Oracle Java 6, Oracle Java 7, Linux, MacOS
java version "1.6.0_26"
Java(TM) SE Runtime Environment (build 1.6.0_26-b03-384-10M3425)
Java HotSpot(TM) 64-Bit Server VM (build 20.1-b02-384, mixed mode)
Reporter: Thomas Kruse
Assignee: Mario Fusco
Priority: Minor
Fix For: 5.4.0.Beta2
Attachments: drools53.tgz
Since Drools 5.3.0.CR1 concurrent creation of different knowledgebases from filesystem
DRL rule definition leads to illegal bytecode.
Reproduceable with Janino and eclipse compiler.
I have a maven based test project which executes the unit tests in parallel, this is the
result:
{code}
runFirst(de.trion.drools53.TwoTest): -1
runFirst(de.trion.drools53.FourTest): (class:
de/trion/drools53/Rule_When_a_user_is_young__print_his_name_DefaultConsequenceInvoker,
method: equals signature: (Ljava/lang/Object;)Z) Expecting to find integer on stack
runSecond(de.trion.drools53.FourTest): (class:
de/trion/drools53/Rule_When_a_user_is_young__print_his_name_DefaultConsequenceInvoker,
method: equals signature: (Ljava/lang/Object;)Z) Expecting to find integer on stack
runFirst(de.trion.drools53.OneTest): (class:
de/trion/drools53/Rule_When_a_user_is_young__print_his_name_DefaultConsequenceInvoker,
method: equals signature: (Ljava/lang/Object;)Z) Expecting to find integer on stack
runFirst(de.trion.drools53.ThreeTest): (class:
de/trion/drools53/Rule_When_a_user_is_young__print_his_name_DefaultConsequenceInvoker,
method: equals signature: (Ljava/lang/Object;)Z) Incompatible object argument for function
call
runSecond(de.trion.drools53.ThreeTest): (class:
de/trion/drools53/Rule_When_there_is_god__the_light_always_shines_DefaultConsequenceInvoker,
method: equals signature: (Ljava/lang/Object;)Z) Unable to pop operand off an empty stack
{code}
Workaround: synchronize access
Not affected: Drools 5.3.0.Beta
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see:
http://www.atlassian.com/software/jira