Looks like one of the $ldapResponseMap : Map() entries for keys &quot;zimbraDomainName&quot; or &quot;zimbraDomainType&quot; is not there.<br>-W<br><br><div class="gmail_quote">2011/8/5 Devarakonda, Murty <span dir="ltr">&lt;<a href="mailto:murty.devarakonda@teamaol.com">murty.devarakonda@teamaol.com</a>&gt;</span><br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">



<div style="word-wrap: break-word; color: rgb(0, 0, 0); font-size: 14px; font-family: Calibri,sans-serif;">
<div>Hello,</div>
<div>I am facing a problem with the following code with Drools 5.0.1:</div>
<div><br>
</div>
<div>I insert multiple objects as facts into my stateful session here:</div>
<div><br>
</div>
<div>===============================================================</div>
<div>
<div>StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();</div>
<div>        </div>
<div> /**<span style="font-weight: bold;">  mapTypes here is an array of MapType objects
</span>**/    </div>
<div>        for(int i=0;i&lt;mapTypes.length;i++) {</div>
<div>            System.out.println(&quot;Inserting the fact type: &quot; + mapTypes[i]);</div>
<div>            ksession.insert(mapTypes[i]);</div>
<div>        } </div>
<div>        </div>
<div>        ksession.insert(ldapLookupKey);</div>
<div>        ksession.insert(ldapResponseMap);</div>
<div>        </div>
<div>        ksession.fireAllRules();</div>
<div>        ksession.dispose();</div>
</div>
<div>
<div>===============================================================</div>
<div></div>
</div>
<div><br>
</div>
<div>And here is my drools file:</div>
<div><br>
</div>
<div>
<div>===============================================================</div>
<div><br>
</div>
<div>
<div>rule &quot;LocalRecipient&quot;</div>
<div>    when</div>
<div>        $myMapType : MapType( name  ==  &quot;LocalRecipient&quot; )</div>
<div>        $lookupKey : String()</div>
<div>        $ldapResponseMap : Map()</div>
<div>        eval( ((($ldapResponseMap.get(&quot;zimbraMailDeliveryAddress&quot;).equals($lookupKey)) ||</div>
<div>                ($ldapResponseMap.get(&quot;zimbraMailAlias&quot;).equals($lookupKey)) ||</div>
<div>                ($ldapResponseMap.get(&quot;zimbraMailCatchAllAddress&quot;).equals($lookupKey))) &amp;&amp;</div>
<div>                ($ldapResponseMap.get(&quot;zimbraMailStatus&quot;).equals(&quot;enabled&quot;))) )</div>
<div>    then</div>
<div>        System.out.println(&quot;This LocalRecipient rule should work&quot;);</div>
<div>        $myMapType.setQueryFilterCheck(true);</div>
<div>end</div>
<div><br>
</div>
<div><br>
</div>
<div><br>
</div>
<div>rule &quot;VirtualMailboxDomain&quot;</div>
<div>    when</div>
<div>        $myMapType : MapType( name  ==  &quot;VirtualMailboxDomain&quot; )</div>
<div>        $lookupKey : String()</div>
<div>        $ldapResponseMap : Map()</div>
<div>        eval( (($ldapResponseMap.get(&quot;zimbraDomainName&quot;).equals($lookupKey)) &amp;&amp;</div>
<div>               ($ldapResponseMap.get(&quot;zimbraDomainType&quot;).equals(&quot;local&quot;)) &amp;&amp;</div>
<div>               ($ldapResponseMap.get(&quot;zimbraMailStatus&quot;).equals(&quot;enabled&quot;))) )</div>
<div>    then</div>
<div>        System.out.println(&quot;This VirtualMailboxDomain rule should work&quot;);</div>
<div>        $myMapType.setQueryFilterCheck(true);</div>
<div>End</div>
</div>
<div><br>
</div>
<div>
<div>===============================================================</div>
</div>
<div><br>
</div>
<div><br>
</div>
<div>Now the problem I am facing is, as long as I defined only rule001 above, it works like a charm and the MapType.QueryFilterCheck flag gets set to TRUE.  </div>
<div><br>
</div>
<div>As soon I put the rule002 above, I started getting a NullPointerException with the following lines in the stack trace.</div>
<div><br>
</div>
<div>
<div>
<div>===============================================================</div>
</div>
</div>
<div>Caused by: java.lang.NullPointerException</div>
<div>
<div>        at com.aol.postfixcache.Rule_LocalRecipient_Rule_0.eval0(Rule_LocalRecipient_Rule_0.java:8)</div>
<div>        at com.aol.postfixcache.Rule_LocalRecipient_Rule_0Eval0Invoker.evaluate(Rule_LocalRecipient_Rule_0Eval0Invoker.java:23)</div>
<div>        at org.drools.rule.EvalCondition.isAllowed(EvalCondition.java:117)</div>
</div>
<div>
<div>
<div>===============================================================</div>
</div>
</div>
<div><br>
</div>
<div><br>
</div>
<div>I tried different combinations along with an extensive search to see why I am getting this, but couldn&#39;t crack it.  Appreciate your help.</div>
<div><br>
</div>
<div>Regards,</div>
<div>Murty.</div>
<div><br>
</div>
<div><br>
</div>
<div></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>