<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<meta name=Generator content="Microsoft Word 12 (filtered medium)">
<style>
<!--
 /* Font Definitions */
 @font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page Section1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.Section1
        {page:Section1;}
-->
</style>
<!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext="edit">
  <o:idmap v:ext="edit" data="1" />
 </o:shapelayout></xml><![endif]-->
</head>

<body lang=EN-US link=blue vlink=purple>

<div class=Section1>

<p class=MsoNormal>Hi All, <o:p></o:p></p>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

<p class=MsoNormal> I am using Drools 4.0.7 and when I tried to use &#8220;matches&#8221;
operator it is giving following  exception<o:p></o:p></p>

<p class=MsoNormal>The rule logic is following<o:p></o:p></p>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

<p class=MsoNormal>package com.logica.heca.lpr.rule;<o:p></o:p></p>

<p class=MsoNormal>import com.logica.heca.lpr.domain.*;<o:p></o:p></p>

<p class=MsoNormal>import com.logica.heca.lpr.domain.contact.*;<o:p></o:p></p>

<p class=MsoNormal>import com.logica.heca.lpr.domain.ruleengine.*;<o:p></o:p></p>

<p class=MsoNormal>import java.util.*;<o:p></o:p></p>

<p class=MsoNormal>rule    &quot;CPR_RULE_222222&quot;<o:p></o:p></p>

<p class=MsoNormal>dialect &quot;mvel&quot;<o:p></o:p></p>

<p class=MsoNormal>when<o:p></o:p></p>

<p class=MsoNormal>   INDUD : ContactVO();<o:p></o:p></p>

<p class=MsoNormal>   eval(INDUD.districtCode matches
&quot;((UX)[ACMR][[A-Z0-9]]{3})|([A-Z0-9]++)&quot;)<o:p></o:p></p>

<p class=MsoNormal>   then<o:p></o:p></p>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

<p class=MsoNormal>       System.out.println(&quot;hello&quot;);<o:p></o:p></p>

<p class=MsoNormal>End<o:p></o:p></p>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

<p class=MsoNormal>Note: INDUD.districtCode returns String value.<o:p></o:p></p>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

<p class=MsoNormal><b>While  if I changed matches operator to java method this
work fine<o:p></o:p></b></p>

<p class=MsoNormal><b>eval(INDUD.getDistrictCode().matches(&quot;((UX)[ACMR][[A-Z0-9]]{3})|([A-Z0-9]++)&quot;));<o:p></o:p></b></p>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

<p class=MsoNormal>any of your esteemed help will highly be appreciated<o:p></o:p></p>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

<p class=MsoNormal>Thanks<o:p></o:p></p>

<p class=MsoNormal>Ravendra Kumar<o:p></o:p></p>

<p class=MsoNormal>-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------<o:p></o:p></p>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

<p class=MsoNormal>org.drools.RuntimeDroolsException:
org.drools.base.mvel.MVELEvalExpression@1cf7491 : java.lang.ClassCastException:
java.lang.String cannot be cast to java.lang.Boolean<o:p></o:p></p>

<p class=MsoNormal>                at
org.drools.rule.EvalCondition.isAllowed(EvalCondition.java:82)<o:p></o:p></p>

<p class=MsoNormal>                at
org.drools.reteoo.EvalConditionNode.assertTuple(EvalConditionNode.java:148)<o:p></o:p></p>

<p class=MsoNormal>                at
org.drools.reteoo.SingleTupleSinkAdapter.createAndPropagateAssertTuple(SingleTupleSinkAdapter.java:55)<o:p></o:p></p>

<p class=MsoNormal>                at
org.drools.reteoo.LeftInputAdapterNode.assertObject(LeftInputAdapterNode.java:116)<o:p></o:p></p>

<p class=MsoNormal>                at
org.drools.reteoo.SingleObjectSinkAdapter.propagateAssertObject(SingleObjectSinkAdapter.java:22)<o:p></o:p></p>

<p class=MsoNormal>                at
org.drools.reteoo.ObjectTypeNode.assertObject(ObjectTypeNode.java:162)<o:p></o:p></p>

<p class=MsoNormal>                at
org.drools.reteoo.Rete.assertObject(Rete.java:175)<o:p></o:p></p>

<p class=MsoNormal>                at
org.drools.reteoo.ReteooRuleBase.assertObject(ReteooRuleBase.java:192)<o:p></o:p></p>

<p class=MsoNormal>                at
org.drools.reteoo.ReteooWorkingMemory.doInsert(ReteooWorkingMemory.java:71)<o:p></o:p></p>

<p class=MsoNormal>                at org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:911)<o:p></o:p></p>

<p class=MsoNormal>                at
org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:883)<o:p></o:p></p>

<p class=MsoNormal>                at
org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:684)<o:p></o:p></p>

<p class=MsoNormal>                at
org.drools.reteoo.ReteooStatelessSession.execute(ReteooStatelessSession.java:143)<o:p></o:p></p>

<p class=MsoNormal>                at
com.logica.heca.lpr.rule.RuleTester.main(RuleTester.java:44)<o:p></o:p></p>

<p class=MsoNormal>                at
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)<o:p></o:p></p>

<p class=MsoNormal>                at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)<o:p></o:p></p>

<p class=MsoNormal>                at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)<o:p></o:p></p>

<p class=MsoNormal>                at
java.lang.reflect.Method.invoke(Method.java:597)<o:p></o:p></p>

<p class=MsoNormal>                at
com.intellij.rt.execution.application.AppMain.main(AppMain.java:90)<o:p></o:p></p>

<p class=MsoNormal>Caused by: java.lang.ClassCastException: java.lang.String
cannot be cast to java.lang.Boolean<o:p></o:p></p>

<p class=MsoNormal>                at
org.drools.base.mvel.MVELEvalExpression.evaluate(MVELEvalExpression.java:42)<o:p></o:p></p>

<p class=MsoNormal>                at
org.drools.rule.EvalCondition.isAllowed(EvalCondition.java:77)<o:p></o:p></p>

<p class=MsoNormal>                ... 18 more<o:p></o:p></p>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Arial","sans-serif"'>-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Arial","sans-serif"'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Arial","sans-serif"'>Thanks
and Regards,<o:p></o:p></span></p>

<p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Arial","sans-serif"'><o:p>&nbsp;</o:p></span></b></p>

<p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Arial","sans-serif"'>Ravendra
kumar<o:p></o:p></span></b></p>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Arial","sans-serif"'>IT
Consultant<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Arial","sans-serif"'>__________________________________
<br>
<b>Logica</b></span><span style='font-size:8.0pt;font-family:"Arial","sans-serif"'>
<b><span style='color:#7D7D7D'>- Releasing your potential<o:p></o:p></span></b></span></p>

<p class=MsoNormal><b><span style='font-size:8.0pt;font-family:"Arial","sans-serif";
color:#7D7D7D'><o:p>&nbsp;</o:p></span></b></p>

<p class=MsoNormal><span lang=DA style='font-size:9.0pt;font-family:"Arial","sans-serif";
color:black'>Margrethepladsen 4, 8000 Århus C<br>
Danmark <br>
T: +45 2518 8864<br>
E-mail: <a href="mailto:hans.knudsen@logica.com"><span style='color:#CC6600'>ravendra.kumar@logica.com</span></a><br>
</span><span lang=EN-GB style='font-size:8.0pt;font-family:"Arial","sans-serif"'><a
href="http://www.logica.dk/"><span lang=DA style='color:#CC6600'>www.logica.dk</span></a></span><span
style='font-size:10.0pt;font-family:"Arial","sans-serif"'><o:p></o:p></span></p>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

</div>

<br clear=all> Please help Logica to respect the environment by not printing this email  / Pour contribuer comme Logica au respect de l'environnement, merci de ne pas imprimer ce mail /  Bitte drucken Sie diese Nachricht nicht aus und helfen Sie so Logica dabei die Umwelt zu schuetzen  /  Por favor ajude a Logica a respeitar o ambiente não imprimindo este correio electrónico.



This e-mail and any attachment is for authorised use by the intended recipient(s) only. It may contain proprietary material, confidential information and/or be subject to legal privilege. It should not be copied, disclosed to, retained or used by, any other party. If you are not an intended recipient then please promptly delete this e-mail and any attachment and all copies and inform the sender. Thank you.

</body>

</html>