Select Your Language

Infrastructure and Management

Cloud Computing

Storage

Runtimes

Integration and Automation

  • Comments
  • Drools ClassFieldReader|BaseDateClassFieldReader Nullpointerexception while firing rules

    Posted on

    We are using drools-core-6.3.0.Final-redhat-5.jar.
    The Rules are being executed in an embedded container in our application.
    While executing the Rules in the container, for few scenarios we notice the following error.
    These issues are not reproducible in unit test mode, while trying to simulate with the same fact data as available during application execution.
    Sometimes the rule actually fires (I see the logs for the Then side of a rule), and we still observe this exception.

    How can we track, if this is a specific rule which is throwing this exception everytime or some issue with the fact?
    I am unable to pin it on the facts, since similar fact with slightly different data values works fine.

    java.lang.NullPointerException
    at org.drools.core.base.extractors.BaseDateClassFieldReader.getLongValue(BaseDateClassFieldReader.java:80)
    at org.drools.core.base.extractors.BaseDateClassFieldReader.getHashCode(BaseDateClassFieldReader.java:111)
    at org.drools.core.base.ClassFieldReader.getHashCode(ClassFieldReader.java:197)
    at org.drools.core.rule.Declaration.getHashCode(Declaration.java:298)
    at org.drools.core.util.AbstractHashTable$TripleCompositeIndex.hashCodeOf(AbstractHashTable.java:713)
    at org.drools.core.util.index.LeftTupleIndexHashTable.getOrCreate(LeftTupleIndexHashTable.java:449)
    at org.drools.core.util.index.LeftTupleIndexHashTable.add(LeftTupleIndexHashTable.java:379)
    at org.drools.core.phreak.PhreakAccumulateNode.doLeftInserts(PhreakAccumulateNode.java:145)
    at org.drools.core.phreak.PhreakAccumulateNode.doNode(PhreakAccumulateNode.java:95)
    at org.drools.core.phreak.RuleNetworkEvaluator.switchOnDoBetaNode(RuleNetworkEvaluator.java:565)
    at org.drools.core.phreak.RuleNetworkEvaluator.evalBetaNode(RuleNetworkEvaluator.java:536)
    at org.drools.core.phreak.RuleNetworkEvaluator.evalNode(RuleNetworkEvaluator.java:372)
    at org.drools.core.phreak.RuleNetworkEvaluator.innerEval(RuleNetworkEvaluator.java:332)
    at org.drools.core.phreak.RuleNetworkEvaluator.outerEval(RuleNetworkEvaluator.java:166)
    at org.drools.core.phreak.RuleNetworkEvaluator.evaluateNetwork(RuleNetworkEvaluator.java:123)
    at org.drools.core.phreak.RuleExecutor.evaluateNetwork(RuleExecutor.java:65)
    at org.drools.core.common.DefaultAgenda.evaluateEagerList(DefaultAgenda.java:1004)
    at org.drools.core.common.DefaultAgenda.fireNextItem(DefaultAgenda.java:961)
    at org.drools.core.common.DefaultAgenda.fireAllRules(DefaultAgenda.java:1292)
    at org.drools.core.impl.StatefulKnowledgeSessionImpl.internalFireAllRules(StatefulKnowledgeSessionImpl.java:1294)
    at org.drools.core.impl.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:1281)
    at org.drools.core.impl.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:1260)
    at com.highmark.eitmet.transformers.CorrelationEngineTransformer.triggerCorrelationBusinessRule(CorrelationEngineTransformer.java:113)
    at com.highmark.eitmet.transformers.CorrelationEngineTransformer.transform(CorrelationEngineTransformer.java:60)
    at com.highmark.gupfdr.federator.UniversalFederator.federate(UniversalFederator.java:31)
    at com.highmark.gupfdr.ejb.FederationProcessBean.process(FederationProcessBean.java:189)
    at com.ibm.websphere.scheduler.EJSRemoteCSLWRITETO_DB_FEDERATOR_bbf2322f.process(EJSRemoteCSLWRITETO_DB_FEDERATOR_bbf2322f.java)
    at com.ibm.websphere.scheduler._TaskHandler_Stub.process(_TaskHandler_Stub.java:269)
    at com.highmark.gupfdr.federator.FederatorThreadRunner.run(FederatorThreadRunner.java:36)
    at com.ibm.ws.asynchbeans.J2EEContext$RunProxy.run(J2EEContext.java:270)
    at java.security.AccessController.doPrivileged(AccessController.java:311)
    at javax.security.auth.Subject.doAs(Subject.java:494)
    at com.ibm.websphere.security.auth.WSSubject.doAs(WSSubject.java:133)
    at com.ibm.websphere.security.auth.WSSubject.doAs(WSSubject.java:91)
    at com.ibm.ws.asynchbeans.J2EEContext$DoAsProxy.run(J2EEContext.java:337)
    at java.security.AccessController.doPrivileged(AccessController.java:341)
    at com.ibm.ws.asynchbeans.J2EEContext.run(J2EEContext.java:805)
    at com.ibm.ws.asynchbeans.WorkWithExecutionContextImpl.go(WorkWithExecutionContextImpl.java:222)
    at com.ibm.ws.asynchbeans.ABWorkItemImpl.run(ABWorkItemImpl.java:206)
    at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1881)

    or :

    java.lang.NullPointerException
    at org.drools.core.base.ClassFieldReader.getHashCode(ClassFieldReader.java:197)
    at org.drools.core.rule.Declaration.getHashCode(Declaration.java:298)
    at org.drools.core.util.AbstractHashTable$TripleCompositeIndex.hashCodeOf(AbstractHashTable.java:713)
    at org.drools.core.util.index.LeftTupleIndexHashTable.getOrCreate(LeftTupleIndexHashTable.java:449)
    at org.drools.core.util.index.LeftTupleIndexHashTable.add(LeftTupleIndexHashTable.java:379)
    at org.drools.core.phreak.PhreakAccumulateNode.doLeftInserts(PhreakAccumulateNode.java:145)
    at org.drools.core.phreak.PhreakAccumulateNode.doNode(PhreakAccumulateNode.java:95)
    at org.drools.core.phreak.RuleNetworkEvaluator.switchOnDoBetaNode(RuleNetworkEvaluator.java:565)
    at org.drools.core.phreak.RuleNetworkEvaluator.evalBetaNode(RuleNetworkEvaluator.java:536)
    at org.drools.core.phreak.RuleNetworkEvaluator.evalNode(RuleNetworkEvaluator.java:372)
    at org.drools.core.phreak.RuleNetworkEvaluator.innerEval(RuleNetworkEvaluator.java:332)
    at org.drools.core.phreak.RuleNetworkEvaluator.outerEval(RuleNetworkEvaluator.java:166)
    at org.drools.core.phreak.RuleNetworkEvaluator.evaluateNetwork(RuleNetworkEvaluator.java:123)
    at org.drools.core.phreak.RuleExecutor.evaluateNetwork(RuleExecutor.java:65)
    at org.drools.core.common.DefaultAgenda.evaluateEagerList(DefaultAgenda.java:1004)
    at org.drools.core.common.DefaultAgenda.fireNextItem(DefaultAgenda.java:961)
    at org.drools.core.common.DefaultAgenda.fireAllRules(DefaultAgenda.java:1292)
    at org.drools.core.impl.StatefulKnowledgeSessionImpl.internalFireAllRules(StatefulKnowledgeSessionImpl.java:1294)
    at org.drools.core.impl.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:1281)
    at org.drools.core.impl.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:1260)
    at com.highmark.eitmet.transformers.CorrelationEngineTransformer.triggerCorrelationBusinessRule(CorrelationEngineTransformer.java:113)
    at com.highmark.eitmet.transformers.CorrelationEngineTransformer.transform(CorrelationEngineTransformer.java:60)
    at com.highmark.gupfdr.federator.UniversalFederator.federate(UniversalFederator.java:31)
    at com.highmark.gupfdr.ejb.FederationProcessBean.process(FederationProcessBean.java:189)
    at com.ibm.websphere.scheduler.EJSRemoteCSLWRITETO_DB_FEDERATOR_bbf2322f.process(EJSRemoteCSLWRITETO_DB_FEDERATOR_bbf2322f.java)
    at com.ibm.websphere.scheduler._TaskHandler_Stub.process(_TaskHandler_Stub.java:269)
    at com.highmark.gupfdr.federator.FederatorThreadRunner.run(FederatorThreadRunner.java:36)
    at com.ibm.ws.asynchbeans.J2EEContext$RunProxy.run(J2EEContext.java:270)
    at java.security.AccessController.doPrivileged(AccessController.java:311)
    at javax.security.auth.Subject.doAs(Subject.java:494)
    at com.ibm.websphere.security.auth.WSSubject.doAs(WSSubject.java:133)
    at com.ibm.websphere.security.auth.WSSubject.doAs(WSSubject.java:91)
    at com.ibm.ws.asynchbeans.J2EEContext$DoAsProxy.run(J2EEContext.java:337)
    at java.security.AccessController.doPrivileged(AccessController.java:341)
    at com.ibm.ws.asynchbeans.J2EEContext.run(J2EEContext.java:805)
    at com.ibm.ws.asynchbeans.WorkWithExecutionContextImpl.go(WorkWithExecutionContextImpl.java:222)
    at com.ibm.ws.asynchbeans.ABWorkItemImpl.run(ABWorkItemImpl.java:206)
    at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1881)

    by

    points

    Responses

    Red Hat LinkedIn YouTube Facebook X, formerly Twitter

    Quick Links

    Help

    Site Info

    Related Sites

    © 2026 Red Hat