<div><br></div>   I will check these out today. If you can provide an isolated test case, it helps, otherwise I will try to reproduce from your info in these e-mails.<div><div><br></div><div>   Edson<br><br><div class="gmail_quote">
2011/10/5 Wac³aw Borowiec <span dir="ltr">&lt;<a href="mailto:wborowiec@proximetry.pl">wborowiec@proximetry.pl</a>&gt;</span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Thanks for the hint Wolfgang, here are the results:<br>
<br>
this == ($constr.getRestrictions () [0])<br>
<br>
gives<br>
<div class="im"><br>
[Error: unexpected end of statement]<br>
</div>[Near : {... ($constr.getRestrictions () [0]) ....}]<br>
                                              ^<br>
[Line: 1, Column: 33]<br>
     at<br>
org.mvel2.compiler.AbstractParser.nextToken(AbstractParser.java:1146)<br>
<div class="im">     at<br>
org.mvel2.compiler.ExpressionCompiler._compile(ExpressionCompiler.java:128)<br>
     at<br>
org.mvel2.compiler.ExpressionCompiler.compile(ExpressionCompiler.java:62)<br>
</div><div class="im">     at org.mvel2.MVEL.analysisCompile(MVEL.java:668)<br>
     at org.mvel2.MVEL.analysisCompile(MVEL.java:672)<br>
     at<br>
org.drools.rule.builder.PatternBuilder.setInputs(PatternBuilder.java:854)<br>
     at<br>
org.drools.rule.builder.PatternBuilder.build(PatternBuilder.java:595)<br>
     at<br>
</div>org.drools.rule.builder.PatternBuilder.processConstraintsAndBinds(PatternBuilder.java:397)<br>
<div class="im">     at<br>
org.drools.rule.builder.PatternBuilder.build(PatternBuilder.java:309)<br>
     at<br>
org.drools.rule.builder.PatternBuilder.build(PatternBuilder.java:132)<br>
     at<br>
</div>org.drools.rule.builder.GroupElementBuilder.build(GroupElementBuilder.java:65)<br>
<div class="im">     at org.drools.rule.builder.RuleBuilder.build(RuleBuilder.java:80)<br>
     at org.drools.compiler.PackageBuilder.addRule(PackageBuilder.java:2241)<br>
     at<br>
org.drools.compiler.PackageBuilder.addPackage(PackageBuilder.java:802)<br>
     at<br>
org.drools.compiler.PackageBuilder.addPackageFromDrl(PackageBuilder.java:388)<br>
     at<br>
</div><div class="im">org.drools.compiler.PackageBuilder.addKnowledgeResource(PackageBuilder.java:566)<br>
     at<br>
org.drools.builder.impl.KnowledgeBuilderImpl.add(KnowledgeBuilderImpl.java:35)<br>
</div>Caused by: java.lang.StringIndexOutOfBoundsException: String index out<br>
of range: -1<br>
     at java.lang.String.&lt;init&gt;(String.java:207)<br>
     at<br>
org.mvel2.optimizers.AbstractOptimizer.capture(AbstractOptimizer.java:222)<br>
     at<br>
org.mvel2.compiler.PropertyVerifier.analyze(PropertyVerifier.java:123)<br>
     at<br>
org.mvel2.compiler.ExpressionCompiler.verify(ExpressionCompiler.java:377)<br>
     at<br>
org.mvel2.compiler.ExpressionCompiler._compile(ExpressionCompiler.java:273)<br>
     at org.mvel2.util.ParseTools.subCompileExpression(ParseTools.java:2136)<br>
     at org.mvel2.ast.Substatement.&lt;init&gt;(Substatement.java:37)<br>
     at<br>
org.mvel2.compiler.AbstractParser.nextToken(AbstractParser.java:1006)<br>
     ... 46 more<br>
<br>
I tried also without external brackets, but the result is pretty much<br>
the same.<br>
<div><div></div><div class="h5"><br>
<br>
On 10/05/2011 02:45 PM, Wolfgang Laun wrote:<br>
&gt; Correction:<br>
&gt; EmNumberRestriction(this == ($constr.getRestrictions () [0] ),...<br>
&gt;<br>
&gt; On 5 October 2011 14:44, Wolfgang Laun&lt;<a href="mailto:wolfgang.laun@gmail.com">wolfgang.laun@gmail.com</a>&gt;  wrote:<br>
&gt;&gt; Write this like so:<br>
&gt;&gt;    EmNumberRestriction(this == ($constr.getRestrictions[0]),...<br>
&gt;&gt; -W<br>
&gt;&gt;&gt; part from last line of LHS. Again, it worked well in 5.1.1.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; On 10/05/2011 12:14 PM, Swindells, Thomas wrote:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Why do you need the and in the rule?<br>
&gt;&gt;&gt; Have you tried<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; rule &quot;enabled paramId: 1, id: 0&quot;<br>
&gt;&gt;&gt; salience 50<br>
&gt;&gt;&gt; when<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;        def0: EmParamDefinition(paramName == &quot;p2&quot;, listIndex == -1)<br>
&gt;&gt;&gt;        EmParamValue(paramDefinitionId == def0, requiredValue == 1)<br>
&gt;&gt;&gt;        $param : EmParamValue(id == 1, enabled == false)<br>
&gt;&gt;&gt;        not ParentDisabled(id == 1)<br>
&gt;&gt;&gt;   then<br>
&gt;&gt;&gt;        $param.setEnabled(true);<br>
&gt;&gt;&gt;        update($param);<br>
&gt;&gt;&gt;   end<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Thomas<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; -----Original Message-----<br>
&gt;&gt;&gt; From: <a href="mailto:rules-users-bounces@lists.jboss.org">rules-users-bounces@lists.jboss.org</a> [mailto:<a href="mailto:rules-users-">rules-users-</a><br>
&gt;&gt;&gt; <a href="mailto:bounces@lists.jboss.org">bounces@lists.jboss.org</a>] On Behalf Of Waclaw Borowiec<br>
&gt;&gt;&gt; Sent: 05 October 2011 10:55<br>
&gt;&gt;&gt; To: <a href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a><br>
&gt;&gt;&gt; Subject: [rules-users] Compilation errors with 5.3.0.CR1<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Hello<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; I&#39;m sending the message once again due to problems with code samples<br>
&gt;&gt;&gt; visibility in the previous one.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; I&#39;ve got following rule:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; rule &quot;enabled paramId: 1, id: 0&quot;<br>
&gt;&gt;&gt; salience 50<br>
&gt;&gt;&gt; when<br>
&gt;&gt;&gt;       (def0: EmParamDefinition(paramName == &quot;p2&quot;, listIndex == -1) and<br>
&gt;&gt;&gt; EmParamValue(paramDefinitionId == def0, requiredValue == 1))<br>
&gt;&gt;&gt;       $param : EmParamValue(id == 1, enabled == false)<br>
&gt;&gt;&gt;       not ParentDisabled(id == 1)<br>
&gt;&gt;&gt; then<br>
&gt;&gt;&gt;       $param.setEnabled(true);<br>
&gt;&gt;&gt;       update($param);<br>
&gt;&gt;&gt; end&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; It compiles fine under Drools 5.1.1, but after switching to 5.3.0.CR1 I get<br>
&gt;&gt;&gt; following exception:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; [Error: unexpected end of statement]<br>
&gt;&gt;&gt; [Near : {... def ....}]<br>
&gt;&gt;&gt;                   ^<br>
&gt;&gt;&gt; [Line: 1, Column: 4]<br>
&gt;&gt;&gt;       at<br>
&gt;&gt;&gt; org.mvel2.compiler.AbstractParser._captureBlock(AbstractParser.java:1470)<br>
&gt;&gt;&gt;       at<br>
&gt;&gt;&gt; org.mvel2.compiler.AbstractParser.captureCodeBlock(AbstractParser.java:14<br>
&gt;&gt;&gt; 46)<br>
&gt;&gt;&gt;       at org.mvel2.compiler.AbstractParser.nextToken(AbstractParser.java:421)<br>
&gt;&gt;&gt;       at<br>
&gt;&gt;&gt; org.mvel2.compiler.ExpressionCompiler._compile(ExpressionCompiler.java:1<br>
&gt;&gt;&gt; 28)<br>
&gt;&gt;&gt;       at<br>
&gt;&gt;&gt; org.mvel2.compiler.ExpressionCompiler.compile(ExpressionCompiler.java:62<br>
&gt;&gt;&gt; )<br>
&gt;&gt;&gt;       at org.mvel2.MVEL.analysisCompile(MVEL.java:668)<br>
&gt;&gt;&gt;       at org.mvel2.MVEL.analysisCompile(MVEL.java:672)<br>
&gt;&gt;&gt;       at<br>
&gt;&gt;&gt; org.drools.rule.builder.PatternBuilder.setInputs(PatternBuilder.java:854)<br>
&gt;&gt;&gt;       at org.drools.rule.builder.PatternBuilder.build(PatternBuilder.java:595)<br>
&gt;&gt;&gt;       at<br>
&gt;&gt;&gt; org.drools.rule.builder.PatternBuilder.processConstraintsAndBinds(PatternB<br>
&gt;&gt;&gt; uilder.java:397)<br>
&gt;&gt;&gt;       at org.drools.rule.builder.PatternBuilder.build(PatternBuilder.java:309)<br>
&gt;&gt;&gt;       at org.drools.rule.builder.PatternBuilder.build(PatternBuilder.java:132)<br>
&gt;&gt;&gt;       at<br>
&gt;&gt;&gt; org.drools.rule.builder.GroupElementBuilder.build(GroupElementBuilder.jav<br>
&gt;&gt;&gt; a:65)<br>
&gt;&gt;&gt;       at org.drools.rule.builder.RuleBuilder.build(RuleBuilder.java:80)<br>
&gt;&gt;&gt;       at org.drools.compiler.PackageBuilder.addRule(PackageBuilder.java:2241)<br>
&gt;&gt;&gt;       at<br>
&gt;&gt;&gt; org.drools.compiler.PackageBuilder.addPackage(PackageBuilder.java:802)<br>
&gt;&gt;&gt;       at<br>
&gt;&gt;&gt; org.drools.compiler.PackageBuilder.addPackageFromDrl(PackageBuilder.java<br>
&gt;&gt;&gt; :388)<br>
&gt;&gt;&gt;       at<br>
&gt;&gt;&gt; org.drools.compiler.PackageBuilder.addKnowledgeResource(PackageBuilder<br>
&gt;&gt;&gt; .java:566)<br>
&gt;&gt;&gt;       at<br>
&gt;&gt;&gt; org.drools.builder.impl.KnowledgeBuilderImpl.add(KnowledgeBuilderImpl.ja<br>
&gt;&gt;&gt; va:35)<br>
&gt;&gt;&gt;       at<br>
&gt;&gt;&gt; com.proximetry.elmgr.services.DependenciesBean$Expander.addDrl(Depen<br>
&gt;&gt;&gt; denciesBean.java:110)<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; It is<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; (def0: EmParamDefinition(paramName == &quot;p2&quot;, listIndex == -1) and<br>
&gt;&gt;&gt; EmParamValue(paramDefinitionId == def0, requiredValue == 1))<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; line that causes the problem - the exeption disappears after removing it.<br>
&gt;&gt;&gt; What&#39;s interesting, when I add &#39;$&#39; sign to binding variable name, and the line<br>
&gt;&gt;&gt; looks like:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; ($def0: EmParamDefinition(paramName == &quot;p2&quot;, listIndex == -1) and<br>
&gt;&gt;&gt; EmParamValue(paramDefinitionId == $def0, requiredValue == 1))<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; instead of the exception I get DRL error:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; [DialectError message=&#39;Unable to wire compiled classes, probably related to<br>
&gt;&gt;&gt; compilation failures:sun.reflect.generics.reflectiveObjects.WildcardTypeImpl<br>
&gt;&gt;&gt; cannot be cast to java.lang.Class&#39;]<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; For completness, this is how I add DRL resources:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; public void addDrl(Reader rdr) {<br>
&gt;&gt;&gt;                KnowledgeBuilder kBuilder =<br>
&gt;&gt;&gt; KnowledgeBuilderFactory.newKnowledgeBuilder();<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;                kBuilder.add( ResourceFactory.newReaderResource(rdr),<br>
&gt;&gt;&gt; ResourceType.DRL);<br>
&gt;&gt;&gt;                if( kBuilder.hasErrors() ){<br>
&gt;&gt;&gt;                    for( KnowledgeBuilderError err: kBuilder.getErrors() ){<br>
&gt;&gt;&gt;                        StackTrace.error(this, err);<br>
&gt;&gt;&gt;                    }<br>
&gt;&gt;&gt;                    throw new IllegalStateException( &quot;DRL errors&quot; );<br>
&gt;&gt;&gt;                }<br>
&gt;&gt;&gt;                knowledgeBase.addKnowledgePackages(<br>
&gt;&gt;&gt; kBuilder.getKnowledgePackages() );<br>
&gt;&gt;&gt;                }<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; I would be grateful if someone has an idea, why after switching Drools<br>
&gt;&gt;&gt; version such problem exists.<br>
&gt;&gt;&gt; _______________________________________________<br>
&gt;&gt;&gt; rules-users mailing list<br>
&gt;&gt;&gt; <a href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a><br>
&gt;&gt;&gt; <a href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a><br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; **************************************************************************************<br>
&gt;&gt;&gt; This message is confidential and intended only for the addressee. If you have received this message in error, please immediately notify the <a href="mailto:postmaster@nds.com">postmaster@nds.com</a> and delete it from your system as well as any copies. The content of e-mails as well as traffic data may be monitored by NDS for employment and security purposes. To protect the environment please do not print this e-mail unless necessary.<br>

&gt;&gt;&gt;<br>
&gt;&gt;&gt; NDS Limited. Registered Office: One London Road, Staines, Middlesex, TW18 4EX, United Kingdom. A company registered in England and Wales. Registered no. 3080780. VAT no. GB 603 8808 40-00<br>
&gt;&gt;&gt; **************************************************************************************<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; _______________________________________________<br>
&gt;&gt;&gt; rules-users mailing list<br>
&gt;&gt;&gt; <a href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a><br>
&gt;&gt;&gt; <a href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a><br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; _______________________________________________<br>
&gt;&gt;&gt; rules-users mailing list<br>
&gt;&gt;&gt; <a href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a><br>
&gt;&gt;&gt; <a href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a><br>
&gt;&gt;&gt;<br>
&gt; _______________________________________________<br>
&gt; rules-users mailing list<br>
&gt; <a href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a><br>
&gt; <a href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a><br>
<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>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br>  Edson Tirelli<br>  JBoss Drools Core Development<br>  JBoss by Red Hat @ <a href="http://www.jboss.com">www.jboss.com</a><br>
</div></div>