Sorry – forgot to add the nature of the exception – “java.lang.Long cannot be cast to java.lang.Integer”
 
Tom Murphy
Business Process Consultant
Wells Fargo HCFG - CORE Deal Decisioning Platform
800 S. Jordan Creek Parkway | West Des Moines, IA 50266
MAC:
X2301-01B
Office: 515 324 4853 | Mobile: 941 320 8014
This message may contain confidential and/or privileged information.  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.  If you have received this message in error, please advise the sender immediately by reply e-mail and delete this message.  Thank you for your cooperation.
 
 
_____________________________________________
From: Murphy, Tom E.
Sent: Monday, April 20, 2009 8:30 PM
To: 'rules-users@lists.jboss.org'
Subject: Question: Why is ClassFieldReader.getIntValue throwing in this scenario?
 
 
The following block of code inside org.drools.base.ClassFieldReader is throwing an exception and I don’t quite understand why. Can anyone advise? Thanks in advance.
 
public int getIntValue(InternalWorkingMemory workingMemory,
final Object object) {
        return this.reader.getIntValue( workingMemory,
object );
    }
 
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:
 
public boolean isAllowed(final InternalReadAccessor readAccessor,
                             final InternalFactHandle handle,
                             final InternalWorkingMemory workingMemoiry,
                             final ContextEntry context) {
return this.evaluator.evaluate( null,
                                        this.readAccessor,
                                        handle.getObject(),
                                        this.field );
    }
 
 
While sitting on the breakpoint in getIntValue, the live call stack is as follows:
 
ClassFieldReader.getIntValue(InternalWorkingMemory, Object) line: 164  
ComparableEvaluatorsDefinition$IntegerGreaterEvaluator.evaluate(InternalWorkingMemory, InternalReadAccessor, Object, FieldValue) line: 1881    
LiteralRestriction.isAllowed(InternalReadAccessor, InternalFactHandle, InternalWorkingMemory, ContextEntry) line: 92   
LiteralConstraint.isAllowed(InternalFactHandle, InternalWorkingMemory, ContextEntry) line: 109 
AccumulateNode.evaluateResultConstraints(LeftTuple, PropagationContext, InternalWorkingMemory, AccumulateNode$AccumulateMemory, AccumulateNode$AccumulateContext) line: 498    
AccumulateNode.assertLeftTuple(LeftTuple, PropagationContext, InternalWorkingMemory) line: 197 
SingleLeftTupleSinkAdapter.doPropagateAssertLeftTuple(PropagationContext, InternalWorkingMemory, LeftTuple) line: 117  
SingleLeftTupleSinkAdapter.propagateAssertLeftTuple(LeftTuple, RightTuple, PropagationContext, InternalWorkingMemory, boolean) line: 28
JoinNode.assertObject(InternalFactHandle, PropagationContext, InternalWorkingMemory) line: 175 
CompositeObjectSinkAdapter.doPropagateAssertObject(InternalFactHandle, PropagationContext, InternalWorkingMemory, ObjectSink) line: 366
CompositeObjectSinkAdapter.propagateAssertObject(InternalFactHandle, PropagationContext, InternalWorkingMemory) line: 349      
AlphaNode.assertObject(InternalFactHandle, PropagationContext, InternalWorkingMemory) line: 147
SingleObjectSinkAdapter.propagateAssertObject(InternalFactHandle, PropagationContext, InternalWorkingMemory) line: 42  
AlphaNode.assertObject(InternalFactHandle, PropagationContext, InternalWorkingMemory) line: 147
SingleObjectSinkAdapter.propagateAssertObject(InternalFactHandle, PropagationContext, InternalWorkingMemory) line: 42  
AlphaNode.assertObject(InternalFactHandle, PropagationContext, InternalWorkingMemory) line: 147
CompositeObjectSinkAdapter.doPropagateAssertObject(InternalFactHandle, PropagationContext, InternalWorkingMemory, ObjectSink) line: 366
CompositeObjectSinkAdapter.propagateAssertObject(InternalFactHandle, PropagationContext, InternalWorkingMemory) line: 342      
ObjectTypeNode.assertObject(InternalFactHandle, PropagationContext, InternalWorkingMemory) line: 184   
EntryPointNode.assertObject(InternalFactHandle, PropagationContext, ObjectTypeConf, InternalWorkingMemory) line: 146   
ReteooStatefulSession(AbstractWorkingMemory).insert(InternalFactHandle, Object, Rule, Activation, ObjectTypeConf) line: 1066   
ReteooStatefulSession(AbstractWorkingMemory).insert(Object, boolean, boolean, Rule, Activation) line: 1022     
DefaultKnowledgeHelper.insert(Object, boolean) line: 103       
DefaultKnowledgeHelper.insert(Object) line: 97 
Rule_RS6601_3_2_0.consequence(KnowledgeHelper, TransactionDetail, FactHandle, Double, FactHandle, DealRiskCategoryEnum$Enum, FactHandle, ExitStrategyTypeEnum$Enum, FactHandle, Short, FactHandle, Short, FactHandle) line: 32 
Rule_RS6601_3_2_0ConsequenceInvoker.evaluate(KnowledgeHelper, WorkingMemory) line: 42  
DefaultAgenda.fireActivation(Activation) line: 934     
DefaultAgenda.fireNextItem(AgendaFilter) line: 885     
DefaultAgenda.fireAllRules(AgendaFilter, int) line: 1082       
ReteooStatefulSession(AbstractWorkingMemory).fireAllRules(AgendaFilter, int) line: 682 
ReteooStatefulSession(AbstractWorkingMemory).fireAllRules() line: 649  
StatefulKnowledgeSessionImpl.fireAllRules() line: 177  
RuleBase.runTestCase(LoanFile, String, int, Logger) line: 116  
 
 
 
Tom Murphy
Business Process Consultant
Wells Fargo HCFG - CORE Deal Decisioning Platform
800 S. Jordan Creek Parkway | West Des Moines, IA 50266
MAC:
X2301-01B
Office: 515 324 4853 | Mobile: 941 320 8014
This message may contain confidential and/or privileged information.  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.  If you have received this message in error, please advise the sender immediately by reply e-mail and delete this message.  Thank you for your cooperation.