<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Exchange Server">
<!-- converted from rtf -->
<style><!-- .EmailQuote { margin-left: 1pt; padding-left: 4pt; border-left: #800000 2px solid; } --></style>
</head>
<body>
<font face="Calibri, sans-serif" size="2">
<div>The following block of code inside org.drools.base.ClassFieldReader is throwing an exception and I don&#8217;t quite understand why. Can anyone advise? Thanks in advance.</div>
<div>&nbsp;</div>
<div><font face="Courier New, monospace" size="2" color="#7F0055"><b>public</b><font color="#000000"> </font><b>int</b><font color="#000000"> getIntValue(InternalWorkingMemory workingMemory, </font></font></div>
<div style="padding-left: 36pt; text-indent: 36pt; "><font face="Courier New, monospace" size="2" color="#7F0055"><b>final</b><font color="#000000"> Object object) {</font></font></div>
<div><font face="Courier New, monospace" size="2"><span style="background-color:#C0C0C0">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><font color="#7F0055"><span style="background-color:#C0C0C0"><b>return</b></span></font><span style="background-color:#C0C0C0"> </span><font color="#7F0055"><span style="background-color:#C0C0C0"><b>this</b></span></font><span style="background-color:#C0C0C0">.</span><font color="#0000C0"><span style="background-color:#C0C0C0">reader</span></font><span style="background-color:#C0C0C0">.getIntValue(
workingMemory,</span> </font></div>
<div style="padding-left: 36pt; text-indent: 36pt; "><font face="Courier New, monospace" size="2">object );</font></div>
<div><font face="Courier New, monospace" size="2">&nbsp;&nbsp;&nbsp; }</font></div>
<div>&nbsp;</div>
<div>Object is of type Long, with value = 0, when the throw happens, and workingMemory is null (having been explicitly passed in as null by the method two layers up in the stack:</div>
<div>&nbsp;</div>
<div><font face="Courier New, monospace" size="2" color="#7F0055"><b>public</b><font color="#000000"> </font><b>boolean</b><font color="#000000"> isAllowed(</font><b>final</b><font color="#000000"> InternalReadAccessor readAccessor,</font></font></div>
<div><font face="Courier New, monospace" size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="#7F0055"><b>final</b></font> InternalFactHandle handle,</font></div>
<div><font face="Courier New, monospace" size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="#7F0055"><b>final</b></font> InternalWorkingMemory workingMemoiry,</font></div>
<div><font face="Courier New, monospace" size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="#7F0055"><b>final</b></font> ContextEntry context) {</font></div>
<div style="padding-left: 36pt; text-indent: 36pt; "><font face="Courier New, monospace" size="2" color="#7F0055"><span style="background-color:#C0C0C0"><b>return</b></span><font color="#000000"><span style="background-color:#C0C0C0"> </span></font><span style="background-color:#C0C0C0"><b>this</b></span><font color="#000000"><span style="background-color:#C0C0C0">.</span></font><font color="#0000C0"><span style="background-color:#C0C0C0">evaluator</span></font><font color="#000000"><span style="background-color:#C0C0C0">.evaluate(
</span></font><span style="background-color:#C0C0C0"><b>null</b></span><font color="#000000"><span style="background-color:#C0C0C0">,</span></font></font></div>
<div><font face="Courier New, monospace" size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="#7F0055"><b>this</b></font>.<font color="#0000C0">readAccessor</font>,</font></div>
<div><font face="Courier New, monospace" size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; handle.getObject(),</font></div>
<div><font face="Courier New, monospace" size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="#7F0055"><b>this</b></font>.<font color="#0000C0">field</font> );</font></div>
<div><font face="Courier New, monospace" size="2">&nbsp;&nbsp;&nbsp; }</font></div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>While sitting on the breakpoint in getIntValue, the live call stack is as follows:</div>
<div>&nbsp;</div>
<div>ClassFieldReader.getIntValue(InternalWorkingMemory, Object) line: 164&nbsp;&nbsp; </div>
<div>ComparableEvaluatorsDefinition$IntegerGreaterEvaluator.evaluate(InternalWorkingMemory, InternalReadAccessor, Object, FieldValue) line: 1881&nbsp;&nbsp;&nbsp;&nbsp; </div>
<div>LiteralRestriction.isAllowed(InternalReadAccessor, InternalFactHandle, InternalWorkingMemory, ContextEntry) line: 92&nbsp;&nbsp;&nbsp; </div>
<div>LiteralConstraint.isAllowed(InternalFactHandle, InternalWorkingMemory, ContextEntry) line: 109&nbsp; </div>
<div>AccumulateNode.evaluateResultConstraints(LeftTuple, PropagationContext, InternalWorkingMemory, AccumulateNode$AccumulateMemory, AccumulateNode$AccumulateContext) line: 498&nbsp;&nbsp;&nbsp;&nbsp; </div>
<div>AccumulateNode.assertLeftTuple(LeftTuple, PropagationContext, InternalWorkingMemory) line: 197&nbsp; </div>
<div>SingleLeftTupleSinkAdapter.doPropagateAssertLeftTuple(PropagationContext, InternalWorkingMemory, LeftTuple) line: 117&nbsp;&nbsp; </div>
<div>SingleLeftTupleSinkAdapter.propagateAssertLeftTuple(LeftTuple, RightTuple, PropagationContext, InternalWorkingMemory, boolean) line: 28 </div>
<div>JoinNode.assertObject(InternalFactHandle, PropagationContext, InternalWorkingMemory) line: 175&nbsp; </div>
<div>CompositeObjectSinkAdapter.doPropagateAssertObject(InternalFactHandle, PropagationContext, InternalWorkingMemory, ObjectSink) line: 366 </div>
<div>CompositeObjectSinkAdapter.propagateAssertObject(InternalFactHandle, PropagationContext, InternalWorkingMemory) line: 349&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </div>
<div>AlphaNode.assertObject(InternalFactHandle, PropagationContext, InternalWorkingMemory) line: 147 </div>
<div>SingleObjectSinkAdapter.propagateAssertObject(InternalFactHandle, PropagationContext, InternalWorkingMemory) line: 42&nbsp;&nbsp; </div>
<div>AlphaNode.assertObject(InternalFactHandle, PropagationContext, InternalWorkingMemory) line: 147 </div>
<div>SingleObjectSinkAdapter.propagateAssertObject(InternalFactHandle, PropagationContext, InternalWorkingMemory) line: 42&nbsp;&nbsp; </div>
<div>AlphaNode.assertObject(InternalFactHandle, PropagationContext, InternalWorkingMemory) line: 147 </div>
<div>CompositeObjectSinkAdapter.doPropagateAssertObject(InternalFactHandle, PropagationContext, InternalWorkingMemory, ObjectSink) line: 366 </div>
<div>CompositeObjectSinkAdapter.propagateAssertObject(InternalFactHandle, PropagationContext, InternalWorkingMemory) line: 342&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </div>
<div>ObjectTypeNode.assertObject(InternalFactHandle, PropagationContext, InternalWorkingMemory) line: 184&nbsp;&nbsp;&nbsp; </div>
<div>EntryPointNode.assertObject(InternalFactHandle, PropagationContext, ObjectTypeConf, InternalWorkingMemory) line: 146&nbsp;&nbsp;&nbsp; </div>
<div>ReteooStatefulSession(AbstractWorkingMemory).insert(InternalFactHandle, Object, Rule, Activation, ObjectTypeConf) line: 1066&nbsp;&nbsp;&nbsp; </div>
<div>ReteooStatefulSession(AbstractWorkingMemory).insert(Object, boolean, boolean, Rule, Activation) line: 1022&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </div>
<div>DefaultKnowledgeHelper.insert(Object, boolean) line: 103&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </div>
<div>DefaultKnowledgeHelper.insert(Object) line: 97&nbsp; </div>
<div>Rule_RS6601_3_2_0.consequence(KnowledgeHelper, TransactionDetail, FactHandle, Double, FactHandle, DealRiskCategoryEnum$Enum, FactHandle, ExitStrategyTypeEnum$Enum, FactHandle, Short, FactHandle, Short, FactHandle) line: 32&nbsp; </div>
<div>Rule_RS6601_3_2_0ConsequenceInvoker.evaluate(KnowledgeHelper, WorkingMemory) line: 42&nbsp;&nbsp; </div>
<div>DefaultAgenda.fireActivation(Activation) line: 934&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </div>
<div>DefaultAgenda.fireNextItem(AgendaFilter) line: 885&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </div>
<div>DefaultAgenda.fireAllRules(AgendaFilter, int) line: 1082&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </div>
<div>ReteooStatefulSession(AbstractWorkingMemory).fireAllRules(AgendaFilter, int) line: 682&nbsp; </div>
<div>ReteooStatefulSession(AbstractWorkingMemory).fireAllRules() line: 649&nbsp;&nbsp; </div>
<div>StatefulKnowledgeSessionImpl.fireAllRules() line: 177&nbsp;&nbsp; </div>
<div>RuleBase.runTestCase(LoanFile, String, int, Logger) line: 116&nbsp;&nbsp; </div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div style="margin-top: 5pt; margin-bottom: 5pt; "><font face="Cambria, serif" size="4" color="#4F81BD"><b>Tom Murphy<br>

</b><font face="Calibri, sans-serif" size="2" color="#000000"><i>Business Process Consultant<br>

Wells Fargo HCFG - CORE Deal Decisioning Platform<br>

800 S. Jordan Creek Parkway | West Des Moines, IA 50266<br>

MAC: </i></font><font face="Calibri, sans-serif" size="2" color="#FF0000"><i><b>X2301-01B<br>

</b></i></font><font face="Calibri, sans-serif" size="2" color="#000000"><b>Office: </b></font><font face="Calibri, sans-serif" size="2" color="#1F497D"><b>515 324 4853</b></font><font face="Calibri, sans-serif" size="2" color="#000000"><b> | Mobile: 941 320
8014<br>

</b></font><font face="Calibri, sans-serif" size="1" color="#808080"><i>This message may contain confidential and/or privileged information.&nbsp; If you are not the addressee or authorized to receive this for the addressee, you must not use, copy, disclose, or
take any action based on this message or any information herein.&nbsp; If you have received this message in error, please advise the sender immediately by reply e-mail and delete this message.&nbsp; Thank you for your cooperation.</i></font></font></div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
</font>
</body>
</html>