[JBoss JIRA] Created: (JBRULES-2845) threading issues when using MultithreadEvaluationOption.YES with fusion
by Radai Rosenblatt (JIRA)
threading issues when using MultithreadEvaluationOption.YES with fusion
-----------------------------------------------------------------------
Key: JBRULES-2845
URL: https://issues.jboss.org/browse/JBRULES-2845
Project: Drools
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: drools-compiler (fusion), drools-core (expert)
Affects Versions: 5.1.1.FINAL
Environment: dual core processor, jdk 6u21, windows xp
Reporter: Radai Rosenblatt
Assignee: Mark Proctor
Attachments: threadingbug.zip
i have 2 very simple rules and a test case (see attached maven project).
trying to set MultithreadEvaluationOption.YES on the KB causes the test to fail sporadically (~10% of the times?).
the attached project contains a testsuite that runs the same test 8 times (testsuite is defined in RunMe.java). attempting "mvn clean install" runs this suite and usually fails.
commenting out the MultithreadEvaluationOption.YES line in the other testcase (the one referred-to from RunMe) causes the tests to behave as expected (pass).
--
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years, 2 months
[JBoss JIRA] Created: (JBRULES-2898) incorrect eval() results when accessing global
by Wolfgang Laun (JIRA)
incorrect eval() results when accessing global
----------------------------------------------
Key: JBRULES-2898
URL: https://issues.jboss.org/browse/JBRULES-2898
Project: Drools
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: drools-core
Affects Versions: 5.1.1.FINAL
Reporter: Wolfgang Laun
Assignee: Mark Proctor
Fix For: 5.2.0.M1
Combinations of rules containing an eval CE comparing double > double or double > integer may cause the eval result to be in error. In the attached example, there are 4 rules. If all are used, 2 fire when they should not. If rules 1+2 or 3+4 are used, 1 fires when it should not. If rules 1+4 or 2+3 are used, none misfires.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years, 2 months
[JBoss JIRA] Created: (JBRULES-2930) KnowledgeAgentDefinitionParser can get NPEs
by stevearoonie (JIRA)
KnowledgeAgentDefinitionParser can get NPEs
-------------------------------------------
Key: JBRULES-2930
URL: https://issues.jboss.org/browse/JBRULES-2930
Project: Drools
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: drools-spring
Affects Versions: 5.1.1.FINAL
Reporter: stevearoonie
Assignee: Mark Proctor
KnowledgeAgentDefinitionParser assumes that a spring bean definition has a bean class name, however when the bean extends a parent then it may not, as in the following example:
<bean id="messageTemplateService" class="au.com.promedicus.template.freemarker.FreemarkerTemplateService">
<constructor-arg ref="workflowFreemarkerConfiguration"/>
</bean>
<bean id="workflowFreemarkerConfiguration" parent="freemarkerConfiguration">
<property name="templateLoader">
<bean class="au.com.promedicus.core.messaging.freemarker.FreemarkerMessageLayoutTemplateLoader" />
</property>
</bean>
The BeanDefinition for bean "workflowFreemarkerConfiguration" has a null bean class name which causes KnowledgeAgentDefinitionParser.parseInternal to throw an NPE. Specifically this line:
if ( def.getBeanClassName().equals( StatelessKnowledgeSessionBeanFactory.class.getName() ) ) {
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years, 2 months
[JBoss JIRA] Created: (JBRULES-3000) Free form expression <field> != <object>.<method>(...) fails to parse
by Wolfgang Laun (JIRA)
Free form expression <field> != <object>.<method>(...) fails to parse
---------------------------------------------------------------------
Key: JBRULES-3000
URL: https://issues.jboss.org/browse/JBRULES-3000
Project: Drools
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: drools-compiler (expert)
Affects Versions: 3.0.4
Reporter: Wolfgang Laun
Assignee: Mark Proctor
According to Drools Introduction 2.1.3.1. Free Form expressions in Constraints (New Parser) "free form" expressions should be possible. However, the rule shown below does not compile and a stack dump is printed, (The legacy form using a return value restriction works correctly.)
public abstract class BinOp {
private Pin inPin1;
private Pin inPin2;
private Pin outPin;
public BinOp( Pin inPin1, Pin inPin2, Pin outPin ){
this.inPin1 = inPin1;
this.inPin2 = inPin2;
this.outPin = outPin;
}
public Pin getInPin1() { return inPin1; }
public Pin getInPin2() { return inPin2; }
public Pin getOutPin() { return outPin; }
protected abstract boolean op( boolean x, boolean y );
public boolean op( Pin x, Pin y ){
return op( x.isValue(), y.isValue() );
}
}
public class Pin {
private boolean value;
public Pin(){
}
public boolean isValue(){
return value;
}
public void setValue( boolean value ){
this.value = value;
}
}
rule "gate with two inputs"
when
$binOp : BinOp( $inPin1 : inPin1, $inPin2 : inPin2, $outPin : outPin )
Pin( this == $inPin1 )
Pin( this == $inPin2 )
Pin( this == $outPin, value != ( $binOp.op( $inPin1, $inPin2 ) ) )
then
//...
end
Error message + stack dump:
Exception in thread "main" [Error: Failed to compile: 2 compilation error(s):
- (1,5) unable to resolve method using strict-mode: appl.circuit.BinOp.$inPin1()
- (1,5) unqualified type in strict mode for: $inPin1]
[Near : {... op( $inPin1, $inPin2 ) ....}]
^
[Line: 1, Column: 5]
at org.mvel2.compiler.ExpressionCompiler.compile(ExpressionCompiler.java:95)
at org.mvel2.MVEL.compileExpression(MVEL.java:829)
at org.drools.base.extractors.MVELClassFieldReader.<init>(MVELClassFieldReader.java:64)
at org.drools.rule.builder.PatternBuilder.createDeclarationObject(PatternBuilder.java:976)
at org.drools.rule.builder.PatternBuilder.createDeclarationObject(PatternBuilder.java:939)
at org.drools.rule.builder.PatternBuilder.build(PatternBuilder.java:582)
at org.drools.rule.builder.PatternBuilder.build(PatternBuilder.java:242)
at org.drools.rule.builder.PatternBuilder.build(PatternBuilder.java:61)
at org.drools.rule.builder.GroupElementBuilder.build(GroupElementBuilder.java:65)
at org.drools.rule.builder.RuleBuilder.build(RuleBuilder.java:81)
at org.drools.compiler.PackageBuilder.addRule(PackageBuilder.java:1546)
at org.drools.compiler.PackageBuilder.addPackage(PackageBuilder.java:653)
at org.drools.compiler.PackageBuilder.addPackageFromDrl(PackageBuilder.java:295)
at org.drools.compiler.PackageBuilder.addKnowledgeResource(PackageBuilder.java:471)
at org.drools.builder.impl.KnowledgeBuilderImpl.add(KnowledgeBuilderImpl.java:28)
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years, 2 months