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: '[email protected]' 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.
_______________________________________________ rules-users mailing list [email protected] https://lists.jboss.org/mailman/listinfo/rules-users
