<p dir="ltr">Data Modeller generates Java classes in 6.x whereas we generated DRL Declarative Types before.</p>
<p dir="ltr">The getFactType() API is for manipulating declared types.  Java&#39;s standard Reflection API is for manipulating Java classes.</p>
<p dir="ltr">Sent on the move</p>
<div class="gmail_quote">On 6 May 2014 20:57, &quot;Patel, Ronak (Autonomy)&quot; &lt;<a href="mailto:ronak.patel@hp.com">ronak.patel@hp.com</a>&gt; wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">






<div lang="EN-US" link="#0563C1" vlink="#954F72">
<div>
<p class="MsoNormal">Hello all,<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">I’m getting a NullPointerException when calling org.kie.api.definition.type.FactType.set(Object, String, Object) and also when I call org.kie.api.definition.type.FactType.setFromMap(Object, Map&lt;String, Object&gt;). The exception stack trace
 points to the same line in both cases:<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10.0pt;font-family:Consolas;color:red">Exception in thread &quot;main&quot;
</span><u><span style="font-size:10.0pt;font-family:Consolas;color:#0066cc">java.lang.NullPointerException</span></u><span style="font-size:10.0pt;font-family:Consolas"><u></u><u></u></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10.0pt;font-family:Consolas;color:red">       at org.drools.core.factmodel.ClassDefinition.set(</span><u><span style="font-size:10.0pt;font-family:Consolas;color:#0066cc">ClassDefinition.java:255</span></u><span style="font-size:10.0pt;font-family:Consolas;color:red">)<u></u><u></u></span></p>

<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10.0pt;font-family:Consolas;color:red">       ...<u></u><u></u></span></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">Doing some debugging, I found that the getFieldAccessor() call in org.drools.core.factmodel.ClassDefinition, line 255, is returning null, which is what’s causing this. I didn’t dig deeper than that, though.<u></u><u></u></p>

<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">I created the data model in Drools Workbench 6.0.1 final and I’ve double-checked that the field I’m passing in to set a value exists on the object. Below is my code and it’s throwing the NPE on the last line.<u></u><u></u></p>

<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">I’m going to try to use standard Java reflection instead for now, but any assistance on this would be appreciated. I can provide any other code, the KieModule JAR produced by Workbench, or anything else, if needed.<u></u><u></u></p>

<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10.0pt;font-family:Consolas;color:black">        KieServices ks = KieServices.Factory.<i>get</i>();</span><span style="font-size:10.0pt;font-family:Consolas"><u></u><u></u></span></p>

<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10.0pt;font-family:Consolas;color:black">        KieContainer kContainer = ks.newKieContainer(ks.newReleaseId(</span><span style="font-size:10.0pt;font-family:Consolas;color:#2a00ff">&quot;com.hp.pa.sample&quot;</span><span style="font-size:10.0pt;font-family:Consolas;color:black">,
</span><span style="font-size:10.0pt;font-family:Consolas;color:#2a00ff">&quot;realestate&quot;</span><span style="font-size:10.0pt;font-family:Consolas;color:black">,
</span><span style="font-size:10.0pt;font-family:Consolas;color:#2a00ff">&quot;LATEST&quot;</span><span style="font-size:10.0pt;font-family:Consolas;color:black">));</span><span style="font-size:10.0pt;font-family:Consolas"><u></u><u></u></span></p>

<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10.0pt;font-family:Consolas;color:black">        KieSession kSession = kContainer.newKieSession();</span><span style="font-size:10.0pt;font-family:Consolas"><u></u><u></u></span></p>

<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10.0pt;font-family:Consolas;color:black">        KieBase kBase = kSession.getKieBase();</span><span style="font-size:10.0pt;font-family:Consolas"><u></u><u></u></span></p>

<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10.0pt;font-family:Consolas;color:black">       
</span><span style="font-size:10.0pt;font-family:Consolas"><u></u><u></u></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10.0pt;font-family:Consolas;color:black">        FactType agentAssignmentType = kBase.getFactType(</span><span style="font-size:10.0pt;font-family:Consolas;color:#2a00ff">&quot;com.hp.pa.sample.realestate&quot;</span><span style="font-size:10.0pt;font-family:Consolas;color:black">,
</span><span style="font-size:10.0pt;font-family:Consolas;color:#2a00ff">&quot;AgentAssignmentData&quot;</span><span style="font-size:10.0pt;font-family:Consolas;color:black">);</span><span style="font-size:10.0pt;font-family:Consolas"><u></u><u></u></span></p>

<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10.0pt;font-family:Consolas;color:black">        FactType property4SaleType = kBase.getFactType(</span><span style="font-size:10.0pt;font-family:Consolas;color:#2a00ff">&quot;com.hp.pa.sample.realestate&quot;</span><span style="font-size:10.0pt;font-family:Consolas;color:black">,
</span><span style="font-size:10.0pt;font-family:Consolas;color:#2a00ff">&quot;PropertyForSale&quot;</span><span style="font-size:10.0pt;font-family:Consolas;color:black">);</span><span style="font-size:10.0pt;font-family:Consolas"><u></u><u></u></span></p>

<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10.0pt;font-family:Consolas;color:black">       
</span><span style="font-size:10.0pt;font-family:Consolas"><u></u><u></u></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10.0pt;font-family:Consolas;color:black">        </span><b><span style="font-size:10.0pt;font-family:Consolas;color:#7f0055">if</span></b><span style="font-size:10.0pt;font-family:Consolas;color:black">
 (agentAssignmentType == </span><b><span style="font-size:10.0pt;font-family:Consolas;color:#7f0055">null</span></b><span style="font-size:10.0pt;font-family:Consolas;color:black"> || property4SaleType ==
</span><b><span style="font-size:10.0pt;font-family:Consolas;color:#7f0055">null</span></b><span style="font-size:10.0pt;font-family:Consolas;color:black">)</span><span style="font-size:10.0pt;font-family:Consolas"><u></u><u></u></span></p>

<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10.0pt;font-family:Consolas;color:black">            System.</span><i><span style="font-size:10.0pt;font-family:Consolas;color:#0000c0">err</span></i><span style="font-size:10.0pt;font-family:Consolas;color:black">.println(</span><span style="font-size:10.0pt;font-family:Consolas;color:#2a00ff">&quot;Could
 not find a FactType&quot;</span><span style="font-size:10.0pt;font-family:Consolas;color:black">);</span><span style="font-size:10.0pt;font-family:Consolas"><u></u><u></u></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10.0pt;font-family:Consolas;color:black">       
</span><span style="font-size:10.0pt;font-family:Consolas"><u></u><u></u></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10.0pt;font-family:Consolas;color:black">        Object agentAssignment =
</span><b><span style="font-size:10.0pt;font-family:Consolas;color:#7f0055">null</span></b><span style="font-size:10.0pt;font-family:Consolas;color:black">;</span><span style="font-size:10.0pt;font-family:Consolas"><u></u><u></u></span></p>

<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10.0pt;font-family:Consolas;color:black">        Object property4Sale =
</span><b><span style="font-size:10.0pt;font-family:Consolas;color:#7f0055">null</span></b><span style="font-size:10.0pt;font-family:Consolas;color:black">;</span><span style="font-size:10.0pt;font-family:Consolas"><u></u><u></u></span></p>

<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10.0pt;font-family:Consolas;color:black">       
</span><b><span style="font-size:10.0pt;font-family:Consolas;color:#7f0055">try</span></b><span style="font-size:10.0pt;font-family:Consolas;color:black"> {</span><span style="font-size:10.0pt;font-family:Consolas"><u></u><u></u></span></p>

<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10.0pt;font-family:Consolas;color:black">            agentAssignment = agentAssignmentType.newInstance();</span><span style="font-size:10.0pt;font-family:Consolas"><u></u><u></u></span></p>

<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10.0pt;font-family:Consolas;color:black">            property4Sale = property4SaleType.newInstance();</span><span style="font-size:10.0pt;font-family:Consolas"><u></u><u></u></span></p>

<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10.0pt;font-family:Consolas;color:black">        }
</span><b><span style="font-size:10.0pt;font-family:Consolas;color:#7f0055">catch</span></b><span style="font-size:10.0pt;font-family:Consolas;color:black"> (InstantiationException e) {</span><span style="font-size:10.0pt;font-family:Consolas"><u></u><u></u></span></p>

<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10.0pt;font-family:Consolas;color:black">            e.printStackTrace();</span><span style="font-size:10.0pt;font-family:Consolas"><u></u><u></u></span></p>

<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10.0pt;font-family:Consolas;color:black">        }
</span><b><span style="font-size:10.0pt;font-family:Consolas;color:#7f0055">catch</span></b><span style="font-size:10.0pt;font-family:Consolas;color:black"> (IllegalAccessException e) {</span><span style="font-size:10.0pt;font-family:Consolas"><u></u><u></u></span></p>

<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10.0pt;font-family:Consolas;color:black">            e.printStackTrace();</span><span style="font-size:10.0pt;font-family:Consolas"><u></u><u></u></span></p>

<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10.0pt;font-family:Consolas;color:black">        }      
</span><span style="font-size:10.0pt;font-family:Consolas"><u></u><u></u></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10.0pt;font-family:Consolas;color:black">       </span><span style="font-size:10.0pt;font-family:Consolas"><u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:Consolas;color:black">        property4SaleType.set(property4Sale,
</span><span style="font-size:10.0pt;font-family:Consolas;color:#2a00ff">&quot;city&quot;</span><span style="font-size:10.0pt;font-family:Consolas;color:black">,
</span><span style="font-size:10.0pt;font-family:Consolas;color:#2a00ff">&quot;San Diego&quot;</span><span style="font-size:10.0pt;font-family:Consolas;color:black">);</span><u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">Thank you,<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal"><b><span style="font-size:9.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;;color:black">Ronak Patel<br>
</span></b><span style="font-size:9.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;;color:#717172">Software Designer<br>
HP Autonomy</span><u></u><u></u></p>
</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></blockquote></div>