[rules-users] Question: Why is ClassFieldReader.getIntValue throwing in this scenario?

Edson Tirelli tirelli at post.com
Mon Apr 20 22:05:34 EDT 2009


   Sounds like a bug... it should be casting to Number instead of Integer.
Can you open a JIRA with a test case or a way to reproduce the problem?

   Thanks,
       Edson

2009/4/20 <Tom.E.Murphy at wellsfargo.com>

>  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
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>
>


-- 
 Edson Tirelli
 JBoss Drools Core Development
 JBoss, a division of Red Hat @ www.jboss.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20090420/0ab148d6/attachment.html 


More information about the rules-users mailing list