Hello,

I have a project, that uses Drools 5.0.1. I have a class, called 
RuleFlowProcessor, that's used to apply some of my rules to the objects.
The instances of RuleFlowProcessor with the identical configuration should be 
used by different threads, and i use following mechanism:
I initialize one instance of RuleFlowProcessor, and the threads take copy of 
this instance, calling the 'clone()' method, which is not synchronized, and in 
which I just create new instance of
RuleFlowProcessor and init it, using the same data.

And therefore I get an exception:

Exception in thread "Thread-91" [Error: incomplete statement:  (possible use of 
reserved keyword as identifier: )]
[Near : {... globals != empt ....}]
                      ^
[Line: 0, Column: 0]
            at 
org.mvel2.MVELInterpretedRuntime.parseAndExecuteInterpreted(MVELInterpretedRuntime.java:153)
            at 
org.mvel2.MVELInterpretedRuntime.parse(MVELInterpretedRuntime.java:44)
            at org.mvel2.MVEL.eval(MVEL.java:514)

although, all the resources (.drl and .rf files) are parsed perfectly, when I 
use just one thread.

In actions of my ruleflow, the dialect: 'mvel' was set by default, if I set 
dialect to 'java' without modifying any code, the error doesn't occur.

The full stacktrace is in attach. I can send the project, that reproduces the 
problem, if needed.

Best regards,
Grigoriy Grigoriev.

Exception in thread "Thread-91" [Error: incomplete statement:  (possible use of 
reserved keyword as identifier: )]
[Near : {... globals != empt ....}]
                      ^
[Line: 0, Column: 0]
        at 
org.mvel2.MVELInterpretedRuntime.parseAndExecuteInterpreted(MVELInterpretedRuntime.java:153)
        at 
org.mvel2.MVELInterpretedRuntime.parse(MVELInterpretedRuntime.java:44)
        at org.mvel2.MVEL.eval(MVEL.java:514)
        at org.mvel2.templates.res.IfNode.eval(IfNode.java:61)
        at org.mvel2.templates.res.TextNode.eval(TextNode.java:46)
        at org.mvel2.templates.res.TerminalNode.eval(TerminalNode.java:39)
        at org.mvel2.templates.res.ForEachNode.eval(ForEachNode.java:116)
        at org.mvel2.templates.res.TextNode.eval(TextNode.java:46)
        at org.mvel2.templates.res.TerminalNode.eval(TerminalNode.java:39)
        at org.mvel2.templates.res.TextNode.eval(TextNode.java:46)
        at org.mvel2.templates.res.IfNode.eval(IfNode.java:62)
        at org.mvel2.templates.res.TextNode.eval(TextNode.java:46)
        at org.mvel2.templates.res.ExpressionNode.eval(ExpressionNode.java:53)
        at org.mvel2.templates.res.TextNode.eval(TextNode.java:46)
        at org.mvel2.templates.TemplateRuntime.execute(TemplateRuntime.java:195)
        at org.mvel2.templates.TemplateRuntime.execute(TemplateRuntime.java:190)
        at org.mvel2.templates.TemplateRuntime.execute(TemplateRuntime.java:180)
        at org.mvel2.templates.TemplateRuntime.execute(TemplateRuntime.java:169)
        at 
org.drools.rule.builder.dialect.java.AbstractJavaRuleBuilder.generatTemplates(AbstractJavaRuleBuilder.java:126)
        at 
org.drools.rule.builder.dialect.java.JavaConsequenceBuilder.build(JavaConsequenceBuilder.java:128)
        at org.drools.rule.builder.RuleBuilder.build(RuleBuilder.java:86)
        at org.drools.compiler.PackageBuilder.addRule(PackageBuilder.java:1159)
        at 
org.drools.compiler.PackageBuilder.addPackage(PackageBuilder.java:649)
        at 
org.drools.compiler.PackageBuilder.addPackageFromDrl(PackageBuilder.java:290)
        at 
org.drools.compiler.PackageBuilder.addKnowledgeResource(PackageBuilder.java:488)
        at 
org.drools.builder.impl.KnowledgeBuilderImpl.add(KnowledgeBuilderImpl.java:25)
        at com.myfirm.RuleFlowProcess.init(RuleFlowProcess.java:22)
        at com.myfirm.RuleFlowProcess.clone(RuleFlowProcess.java:48)
        at com.myfirm.ThreadTest$CloneThread.run(ThreadTest.java:35)
Caused by: java.lang.NullPointerException
        at 
org.mvel2.MVELInterpretedRuntime.parseAndExecuteInterpreted(MVELInterpretedRuntime.java:113)
        ... 28 more
Exception in thread "Thread-32" java.lang.RuntimeException: [-1,-1]: Process 
'flow' [sayHello]: Process has no end node.
        at com.myfirm.RuleFlowProcess.init(RuleFlowProcess.java:33)
        at com.myfirm.RuleFlowProcess.clone(RuleFlowProcess.java:48)
        at com.myfirm.ThreadTest$CloneThread.run(ThreadTest.java:35)
Exception in thread "Thread-54" [Error: incomplete statement:  (possible use of 
reserved keyword as identifier: )]
[Near : {... declarations != empt ....}]
                           ^
[Line: 0, Column: 0]
        at 
org.mvel2.MVELInterpretedRuntime.parseAndExecuteInterpreted(MVELInterpretedRuntime.java:153)
        at 
org.mvel2.MVELInterpretedRuntime.parse(MVELInterpretedRuntime.java:44)
        at org.mvel2.MVEL.eval(MVEL.java:514)
        at org.mvel2.templates.res.IfNode.eval(IfNode.java:61)
        at org.mvel2.templates.res.TextNode.eval(TextNode.java:46)
        at org.mvel2.templates.res.ExpressionNode.eval(ExpressionNode.java:53)
        at org.mvel2.templates.res.TextNode.eval(TextNode.java:46)
        at org.mvel2.templates.TemplateRuntime.execute(TemplateRuntime.java:195)
        at org.mvel2.templates.TemplateRuntime.execute(TemplateRuntime.java:190)
        at org.mvel2.templates.TemplateRuntime.execute(TemplateRuntime.java:180)
        at org.mvel2.templates.TemplateRuntime.execute(TemplateRuntime.java:169)
        at 
org.drools.rule.builder.dialect.java.AbstractJavaRuleBuilder.generatTemplates(AbstractJavaRuleBuilder.java:126)
        at 
org.drools.rule.builder.dialect.java.JavaConsequenceBuilder.build(JavaConsequenceBuilder.java:128)
        at org.drools.rule.builder.RuleBuilder.build(RuleBuilder.java:86)
        at org.drools.compiler.PackageBuilder.addRule(PackageBuilder.java:1159)
        at 
org.drools.compiler.PackageBuilder.addPackage(PackageBuilder.java:649)
        at 
org.drools.compiler.PackageBuilder.addPackageFromDrl(PackageBuilder.java:290)
        at 
org.drools.compiler.PackageBuilder.addKnowledgeResource(PackageBuilder.java:488)
        at 
org.drools.builder.impl.KnowledgeBuilderImpl.add(KnowledgeBuilderImpl.java:25)
        at com.myfirm.RuleFlowProcess.init(RuleFlowProcess.java:24)
        at com.myfirm.RuleFlowProcess.clone(RuleFlowProcess.java:48)
        at com.myfirm.ThreadTest$CloneThread.run(ThreadTest.java:35)
Caused by: java.lang.NullPointerException
        at 
org.mvel2.MVELInterpretedRuntime.parseAndExecuteInterpreted(MVELInterpretedRuntime.java:113)
        ... 21 more
Exception in thread "Thread-28" [Error: incomplete statement:  (possible use of 
reserved keyword as identifier: )]
[Near : {... globals != empt ....}]
                      ^
[Line: 0, Column: 0]
        at 
org.mvel2.MVELInterpretedRuntime.parseAndExecuteInterpreted(MVELInterpretedRuntime.java:153)
        at 
org.mvel2.MVELInterpretedRuntime.parse(MVELInterpretedRuntime.java:44)
        at org.mvel2.MVEL.eval(MVEL.java:514)
        at org.mvel2.templates.res.IfNode.eval(IfNode.java:61)
        at org.mvel2.templates.res.TextNode.eval(TextNode.java:46)
        at org.mvel2.templates.res.TerminalNode.eval(TerminalNode.java:39)
        at org.mvel2.templates.res.ForEachNode.eval(ForEachNode.java:116)
        at org.mvel2.templates.res.TextNode.eval(TextNode.java:46)
        at org.mvel2.templates.res.TerminalNode.eval(TerminalNode.java:39)
        at org.mvel2.templates.res.TextNode.eval(TextNode.java:46)
        at org.mvel2.templates.res.IfNode.eval(IfNode.java:62)
        at org.mvel2.templates.res.TextNode.eval(TextNode.java:46)
        at org.mvel2.templates.res.ExpressionNode.eval(ExpressionNode.java:53)
        at org.mvel2.templates.res.TextNode.eval(TextNode.java:46)
        at org.mvel2.templates.TemplateRuntime.execute(TemplateRuntime.java:195)
        at org.mvel2.templates.TemplateRuntime.execute(TemplateRuntime.java:190)
        at org.mvel2.templates.TemplateRuntime.execute(TemplateRuntime.java:180)
        at org.mvel2.templates.TemplateRuntime.execute(TemplateRuntime.java:169)
        at 
org.drools.rule.builder.dialect.java.AbstractJavaRuleBuilder.generatTemplates(AbstractJavaRuleBuilder.java:126)
        at 
org.drools.rule.builder.dialect.java.JavaConsequenceBuilder.build(JavaConsequenceBuilder.java:128)
        at org.drools.rule.builder.RuleBuilder.build(RuleBuilder.java:86)
        at org.drools.compiler.PackageBuilder.addRule(PackageBuilder.java:1159)
        at 
org.drools.compiler.PackageBuilder.addPackage(PackageBuilder.java:649)
        at 
org.drools.compiler.PackageBuilder.addPackageFromDrl(PackageBuilder.java:290)
        at 
org.drools.compiler.PackageBuilder.addKnowledgeResource(PackageBuilder.java:488)
        at 
org.drools.builder.impl.KnowledgeBuilderImpl.add(KnowledgeBuilderImpl.java:25)
        at com.myfirm.RuleFlowProcess.init(RuleFlowProcess.java:25)
        at com.myfirm.RuleFlowProcess.clone(RuleFlowProcess.java:48)
        at com.myfirm.ThreadTest$CloneThread.run(ThreadTest.java:35)
Caused by: java.lang.NullPointerException
        at 
org.mvel2.MVELInterpretedRuntime.parseAndExecuteInterpreted(MVELInterpretedRuntime.java:113)
        ... 28 more
Exception in thread "Thread-64" [Error: incomplete statement:  (possible use of 
reserved keyword as identifier: )]
[Near : {... declarations != empt ....}]
                           ^
[Line: 0, Column: 0]
        at 
org.mvel2.MVELInterpretedRuntime.parseAndExecuteInterpreted(MVELInterpretedRuntime.java:153)
        at 
org.mvel2.MVELInterpretedRuntime.parse(MVELInterpretedRuntime.java:44)
        at org.mvel2.MVEL.eval(MVEL.java:514)
        at org.mvel2.templates.res.IfNode.eval(IfNode.java:61)
        at org.mvel2.templates.res.TextNode.eval(TextNode.java:46)
        at org.mvel2.templates.res.ExpressionNode.eval(ExpressionNode.java:53)
        at org.mvel2.templates.res.TextNode.eval(TextNode.java:46)
        at org.mvel2.templates.res.ExpressionNode.eval(ExpressionNode.java:53)
        at org.mvel2.templates.res.TextNode.eval(TextNode.java:46)
        at org.mvel2.templates.res.TerminalNode.eval(TerminalNode.java:39)
        at org.mvel2.templates.res.ForEachNode.eval(ForEachNode.java:116)
        at org.mvel2.templates.res.TextNode.eval(TextNode.java:46)
        at org.mvel2.templates.res.TerminalNode.eval(TerminalNode.java:39)
        at org.mvel2.templates.res.ForEachNode.eval(ForEachNode.java:116)
        at org.mvel2.templates.res.TextNode.eval(TextNode.java:46)
        at org.mvel2.templates.res.ExpressionNode.eval(ExpressionNode.java:53)
        at org.mvel2.templates.res.TextNode.eval(TextNode.java:46)
        at org.mvel2.templates.res.ExpressionNode.eval(ExpressionNode.java:53)
        at org.mvel2.templates.res.TextNode.eval(TextNode.java:46)
        at org.mvel2.templates.TemplateRuntime.execute(TemplateRuntime.java:195)
        at org.mvel2.templates.TemplateRuntime.execute(TemplateRuntime.java:190)
        at org.mvel2.templates.TemplateRuntime.execute(TemplateRuntime.java:180)
        at org.mvel2.templates.TemplateRuntime.execute(TemplateRuntime.java:169)
        at 
org.drools.rule.builder.dialect.java.AbstractJavaRuleBuilder.generatTemplates(AbstractJavaRuleBuilder.java:135)
        at 
org.drools.rule.builder.dialect.java.JavaConsequenceBuilder.build(JavaConsequenceBuilder.java:128)
        at org.drools.rule.builder.RuleBuilder.build(RuleBuilder.java:86)
        at org.drools.compiler.PackageBuilder.addRule(PackageBuilder.java:1159)
        at 
org.drools.compiler.PackageBuilder.addPackage(PackageBuilder.java:649)
        at 
org.drools.compiler.PackageBuilder.addPackageFromDrl(PackageBuilder.java:290)
        at 
org.drools.compiler.PackageBuilder.addKnowledgeResource(PackageBuilder.java:488)
        at 
org.drools.builder.impl.KnowledgeBuilderImpl.add(KnowledgeBuilderImpl.java:25)
        at com.myfirm.RuleFlowProcess.init(RuleFlowProcess.java:24)
        at com.myfirm.RuleFlowProcess.clone(RuleFlowProcess.java:48)
        at com.myfirm.ThreadTest$CloneThread.run(ThreadTest.java:35)
Caused by: java.lang.NullPointerException
        at 
org.mvel2.MVELInterpretedRuntime.parseAndExecuteInterpreted(MVELInterpretedRuntime.java:113)
        ... 33 more
Exception in thread "Thread-72" [Error: incomplete statement:  (possible use of 
reserved keyword as identifier: )]
[Near : {... globals != empt ....}]
                      ^
[Line: 0, Column: 0]
        at 
org.mvel2.MVELInterpretedRuntime.parseAndExecuteInterpreted(MVELInterpretedRuntime.java:153)
        at 
org.mvel2.MVELInterpretedRuntime.parse(MVELInterpretedRuntime.java:44)
        at org.mvel2.MVEL.eval(MVEL.java:514)
        at org.mvel2.templates.res.IfNode.eval(IfNode.java:61)
        at org.mvel2.templates.res.TextNode.eval(TextNode.java:46)
        at org.mvel2.templates.res.TerminalNode.eval(TerminalNode.java:39)
        at org.mvel2.templates.res.ForEachNode.eval(ForEachNode.java:116)
        at org.mvel2.templates.res.TextNode.eval(TextNode.java:46)
        at org.mvel2.templates.res.TerminalNode.eval(TerminalNode.java:39)
        at org.mvel2.templates.res.TextNode.eval(TextNode.java:46)
        at org.mvel2.templates.res.IfNode.eval(IfNode.java:62)
        at org.mvel2.templates.res.TextNode.eval(TextNode.java:46)
        at org.mvel2.templates.res.ExpressionNode.eval(ExpressionNode.java:53)
        at org.mvel2.templates.res.TextNode.eval(TextNode.java:46)
        at org.mvel2.templates.res.ExpressionNode.eval(ExpressionNode.java:53)
        at org.mvel2.templates.res.TextNode.eval(TextNode.java:46)
        at org.mvel2.templates.res.TerminalNode.eval(TerminalNode.java:39)
        at org.mvel2.templates.res.ForEachNode.eval(ForEachNode.java:116)
        at org.mvel2.templates.res.TextNode.eval(TextNode.java:46)
        at org.mvel2.templates.res.TerminalNode.eval(TerminalNode.java:39)
        at org.mvel2.templates.res.ForEachNode.eval(ForEachNode.java:116)
        at org.mvel2.templates.res.TextNode.eval(TextNode.java:46)
        at org.mvel2.templates.res.ExpressionNode.eval(ExpressionNode.java:53)
        at org.mvel2.templates.res.TextNode.eval(TextNode.java:46)
        at org.mvel2.templates.res.ExpressionNode.eval(ExpressionNode.java:53)
        at org.mvel2.templates.res.TextNode.eval(TextNode.java:46)
        at org.mvel2.templates.TemplateRuntime.execute(TemplateRuntime.java:195)
        at org.mvel2.templates.TemplateRuntime.execute(TemplateRuntime.java:190)
        at org.mvel2.templates.TemplateRuntime.execute(TemplateRuntime.java:180)
        at org.mvel2.templates.TemplateRuntime.execute(TemplateRuntime.java:169)
        at 
org.drools.rule.builder.dialect.java.AbstractJavaRuleBuilder.generatTemplates(AbstractJavaRuleBuilder.java:135)
        at 
org.drools.rule.builder.dialect.java.JavaConsequenceBuilder.build(JavaConsequenceBuilder.java:128)
        at org.drools.rule.builder.RuleBuilder.build(RuleBuilder.java:86)
        at org.drools.compiler.PackageBuilder.addRule(PackageBuilder.java:1159)
        at 
org.drools.compiler.PackageBuilder.addPackage(PackageBuilder.java:649)
        at 
org.drools.compiler.PackageBuilder.addPackageFromDrl(PackageBuilder.java:290)
        at 
org.drools.compiler.PackageBuilder.addKnowledgeResource(PackageBuilder.java:488)
        at 
org.drools.builder.impl.KnowledgeBuilderImpl.add(KnowledgeBuilderImpl.java:25)
        at com.myfirm.RuleFlowProcess.init(RuleFlowProcess.java:25)
        at com.myfirm.RuleFlowProcess.clone(RuleFlowProcess.java:48)
        at com.myfirm.ThreadTest$CloneThread.run(ThreadTest.java:35)
Caused by: java.lang.NullPointerException
        at 
org.mvel2.MVELInterpretedRuntime.parseAndExecuteInterpreted(MVELInterpretedRuntime.java:113)
        ... 40 more
Exception in thread "Thread-12" [Error: incomplete statement:  (possible use of 
reserved keyword as identifier: )]
[Near : {... declarations != empt ....}]
                           ^
[Line: 0, Column: 0]
        at 
org.mvel2.MVELInterpretedRuntime.parseAndExecuteInterpreted(MVELInterpretedRuntime.java:153)
        at 
org.mvel2.MVELInterpretedRuntime.parse(MVELInterpretedRuntime.java:44)
        at org.mvel2.MVEL.eval(MVEL.java:514)
        at org.mvel2.templates.res.IfNode.eval(IfNode.java:61)
        at org.mvel2.templates.res.TextNode.eval(TextNode.java:46)
        at org.mvel2.templates.res.ExpressionNode.eval(ExpressionNode.java:53)
        at org.mvel2.templates.res.TextNode.eval(TextNode.java:46)
        at org.mvel2.templates.TemplateRuntime.execute(TemplateRuntime.java:195)
        at org.mvel2.templates.TemplateRuntime.execute(TemplateRuntime.java:190)
        at org.mvel2.templates.TemplateRuntime.execute(TemplateRuntime.java:180)
        at org.mvel2.templates.TemplateRuntime.execute(TemplateRuntime.java:169)
        at 
org.drools.rule.builder.dialect.java.AbstractJavaRuleBuilder.generatTemplates(AbstractJavaRuleBuilder.java:126)
        at 
org.drools.rule.builder.dialect.java.JavaConsequenceBuilder.build(JavaConsequenceBuilder.java:128)
        at org.drools.rule.builder.RuleBuilder.build(RuleBuilder.java:86)
        at org.drools.compiler.PackageBuilder.addRule(PackageBuilder.java:1159)
        at 
org.drools.compiler.PackageBuilder.addPackage(PackageBuilder.java:649)
        at 
org.drools.compiler.PackageBuilder.addPackageFromDrl(PackageBuilder.java:290)
        at 
org.drools.compiler.PackageBuilder.addKnowledgeResource(PackageBuilder.java:488)
        at 
org.drools.builder.impl.KnowledgeBuilderImpl.add(KnowledgeBuilderImpl.java:25)
        at com.myfirm.RuleFlowProcess.init(RuleFlowProcess.java:25)
        at com.myfirm.RuleFlowProcess.clone(RuleFlowProcess.java:48)
        at com.myfirm.ThreadTest$CloneThread.run(ThreadTest.java:35)
Caused by: java.lang.NullPointerException
        at 
org.mvel2.MVELInterpretedRuntime.parseAndExecuteInterpreted(MVELInterpretedRuntime.java:113)
        ... 21 more
_______________________________________________
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users

Reply via email to