Since you ask me... It may not be "wisdom", though...<div><br></div><div>I do not use 'dialect "mvel"' in the rules I write. Here are some facts on which this decision is based.<div><ul><li>My company develops safety-relevant SW according to the standards set forth by a body called <a href="http://en.wikipedia.org/wiki/European_Committee_for_Electrotechnical_Standardization">CENELEC</a>. The (for us) essential standard refutes the use of any language that hasn't a formal definition. I've never found such a definition for MVEL.</li>
<li>A considerable number of Drools bugs are, in fact, MVEL bugs.</li><li>Bug fixing of MVEL by its author is tardy (as I've been told by members of the Drools team), and therefore:</li><li>The Drools project had to adopt the strategy of issuing their own release of MVEL, to be bundled with Drools releases.</li>
</ul></div><div>There's some good reasons why MVEL has been introduced into Drools, and why it is used when and where it is used. But I wouldn't recommend it's use in RHS of rules just to save me the trouble of writing the more verbose Java equivalent.</div>
<div><br></div><div>Also, I'd like to point out that MVEL bug fixing has picked up as soon as Drools team members were available to do so. </div><div><br></div><div>Cheers</div><div>Wolfgang</div><div><br><br><div class="gmail_quote">
2012/3/10 Zhuo Li <span dir="ltr"><<a href="mailto:milanello1998@gmail.com">milanello1998@gmail.com</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div lang="ZH-CN" link="blue" vlink="purple">
<div>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1f497d">Yep, Wolfgang,<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1f497d">It’s a code issue – I just identified it… thanks. I have another
thread talking about NoClassDefFound exception. Would appreciate if you can
share your wisdom there.<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1f497d">Best<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1f497d">Abe<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p>
<div style="border:none;border-top:solid #b5c4df 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"><b><span style="font-size:10.0pt;font-family:SimSun">发件人<span lang="EN-US">:</span></span></b><span lang="EN-US" style="font-size:10.0pt;font-family:SimSun"> <a href="mailto:rules-users-bounces@lists.jboss.org" target="_blank">rules-users-bounces@lists.jboss.org</a>
[mailto:<a href="mailto:rules-users-bounces@lists.jboss.org" target="_blank">rules-users-bounces@lists.jboss.org</a>] </span><b><span style="font-size:10.0pt;font-family:SimSun">代表 </span></b><span lang="EN-US" style="font-size:10.0pt;font-family:SimSun">Wolfgang Laun<br>
</span><b><span style="font-size:10.0pt;font-family:SimSun">发送时间<span lang="EN-US">:</span></span></b><span lang="EN-US" style="font-size:10.0pt;font-family:SimSun"> 2012</span><span style="font-size:10.0pt;font-family:SimSun">年<span lang="EN-US">3</span>月<span lang="EN-US">11</span>日<span lang="EN-US">
1:06<br>
</span><b>收件人<span lang="EN-US">:</span></b><span lang="EN-US"> Rules Users List<br>
</span><b>主题<span lang="EN-US">:</span></b><span lang="EN-US"> Re:
[rules-users] Adhoc NullPointer exception in rule execution<u></u><u></u></span></span></p>
</div>
<p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p>
<p class="MsoNormal"><span lang="EN-US">The location of the NPE is <u></u><u></u></span></p>
<div>
<p class="MsoNormal"><span lang="EN-US"> at
com.xxx.xxx.xxx.xxx.xxx.xxx.xxx(xxx.java:634)<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-US">and that's your code, invoked from the
right hand side of rule Match.<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-US">-W<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p>
<div>
<p class="MsoNormal"><span lang="EN-US">2012/3/10 Zhuo Li <<a href="mailto:milanello1998@gmail.com" target="_blank">milanello1998@gmail.com</a>><u></u><u></u></span></p>
<div>
<div>
<p class="MsoNormal"><span lang="EN-US">Hi, folks,<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US"> <u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US">I’m using Drools 5.1, MVEL dialect, JDK 1.6 to build a OLTP system
running on tomcat 6.0.28. the runtime environment is on a cloud virtual and
node profile is relatively small. We’ve noticed below run time exceptions from
prod since it’s online from day one which is impacting transaction processing.
However it is happening adhoc-ly. Here I have 1 question:<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US"> <u></u><u></u></span></p>
<p style="margin-left:18.0pt"><span lang="EN-US">1.</span><span lang="EN-US" style="font-size:7.0pt"> </span><span lang="EN-US">The yellow marked lines are actually java file compiled from DRL
file. Why there is null pointer exception thrown from </span><span lang="EN-US" style="font-size:11.0pt">org.drools.common.DefaultAgenda.fireActivation?</span><span lang="EN-US"><u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US"> <u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt">ERROR>2012-02-25 11:42:25,071
com.xxx.xxx.xxx.xxx[DefaultQuartzScheduler_Worker-3]: Rules run time error:</span><span lang="EN-US"><u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt">org.drools.runtime.rule.ConsequenceException:
rule: Match</span><span lang="EN-US"><u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt"> </span><span lang="EN-US"><u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt">
at org.drools.runtime.rule.impl.DefaultConsequenceExceptionHandler.handleException(DefaultConsequenceExceptionHandler.java:39)</span><span lang="EN-US"><u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt">
at org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:916)</span><span lang="EN-US"><u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt"> at
org.drools.common.DefaultAgenda.fireNextItem(DefaultAgenda.java:845)</span><span lang="EN-US"><u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt">
at org.drools.common.DefaultAgenda.fireAllRules(DefaultAgenda.java:1056)</span><span lang="EN-US"><u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt">
at
org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:733)</span><span lang="EN-US"><u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt">
at
org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:699)</span><span lang="EN-US"><u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt">
at
org.drools.impl.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:218)</span><span lang="EN-US"><u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt">
at com. xxx.xxx.xxx.xxx.xxx.xxx.xxx (SessionManager.java:94)</span><span lang="EN-US"><u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt">
at com. xxx.xxx.xxx.xxx.xxx.xxx.yyy(SessionManagerJob.java:17)</span><span lang="EN-US"><u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt">
at org.quartz.core.JobRunShell.run(JobRunShell.java:202)</span><span lang="EN-US"><u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt">
at
org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:525)</span><span lang="EN-US"><u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt">Caused by: java.lang.NullPointerException</span><span lang="EN-US"><u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt">
at com.xxx.xxx.xxx.xxx.xxx.xxx.xxx(xxx.java:634)</span><span lang="EN-US"><u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt">
at com.xxx.xxx.xxx.xxx.xxx.yyy.yyy(yyy.java:227)</span><span lang="EN-US"><u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt">
at com.xxx.xxx.xxx.xxx.xxx.yyy.zzz(zzz.java:115)</span><span lang="EN-US"><u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt">
at com.xxx.xxx.xxx.xxx.xxx.yyy.ttt(ttt.java:83)</span><span lang="EN-US"><u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt"> at
com.xxx.xxx.xxx.xxx.xxx.yyy.uuu(uuu.java:75)</span><span lang="EN-US"><u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt"> <span style="background:yellow">at com. com.xxx.xxx.xxx.xxx.xxx.yyy.vvv(vvv.java:9)</span></span><span lang="EN-US"><u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;background:yellow">
at com. com.xxx.xxx.xxx.xxx.xxx.yyy.www(www.java:28)</span><span lang="EN-US"><u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt">
at org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:906)</span><span lang="EN-US"><u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt">
... 9 more</span><span lang="EN-US"><u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US">Best regards<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US">Abe<u></u><u></u></span></p>
</div>
</div>
<p class="MsoNormal" style="margin-bottom:12.0pt"><span lang="EN-US"><br>
_______________________________________________<br>
rules-users mailing list<br>
<a href="mailto:rules-users@lists.jboss.org" target="_blank">rules-users@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a><u></u><u></u></span></p>
</div>
<p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p>
</div>
</div>
</div>
<br>_______________________________________________<br>
rules-users mailing list<br>
<a href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a><br>
<br></blockquote></div><br></div></div>