Uploaded image for project: 'JBRULES'
  1. JBRULES
  2. JBRULES-2882

NPE in EqualityEvaluatorsDefinition$StringEqualEvaluator.evaluateCachedLeft

    Details

    • Steps to Reproduce:
      Hide

      Create a rule that has joins such that we have a Cartesian product. insert objects into the session with partitioning enabled.

      Show
      Create a rule that has joins such that we have a Cartesian product. insert objects into the session with partitioning enabled.
    • Estimated Difficulty:
      Medium

      Description

      While working with rules with partitioning turned on.

      KnowledgeBaseConfiguration config = KnowledgeBaseFactory.newKnowledgeBaseConfiguration();
      config.setOption( MultithreadEvaluationOption.YES );
      conf.setOption( MaxThreadsOption.get(5) );

      Once we start inserting objects into the KSession, somewhere in the middle it throws this error:
      Partition task manager caught an unexpected exception: null
      Drools is capturing the exception to avoid thread death. Please report stack trace to development team.
      java.lang.NullPointerException
      at org.drools.base.evaluators.EqualityEvaluatorsDefinition$StringEqualEvaluator.evaluateCachedLeft(EqualityEvaluatorsDefinition.java:1984)
      at org.drools.rule.VariableRestriction.isAllowedCachedLeft(VariableRestriction.java:109)
      at org.drools.rule.VariableConstraint.isAllowedCachedLeft(VariableConstraint.java:115)
      at org.drools.common.SingleBetaConstraints.isAllowedCachedLeft(SingleBetaConstraints.java:142)
      at org.drools.reteoo.FromNode.checkConstraintsAndPropagate(FromNode.java:274)
      at org.drools.reteoo.FromNode.assertLeftTuple(FromNode.java:138)
      at org.drools.reteoo.SingleLeftTupleSinkAdapter.doPropagateAssertLeftTuple(SingleLeftTupleSinkAdapter.java:189)
      at org.drools.reteoo.SingleLeftTupleSinkAdapter.propagateAssertLeftTuple(SingleLeftTupleSinkAdapter.java:64)
      at org.drools.reteoo.JoinNode.assertLeftTuple(JoinNode.java:85)
      at org.drools.reteoo.SingleLeftTupleSinkAdapter.doPropagateAssertLeftTuple(SingleLeftTupleSinkAdapter.java:189)
      at org.drools.reteoo.SingleLeftTupleSinkAdapter.propagateAssertLeftTuple(SingleLeftTupleSinkAdapter.java:64)
      at org.drools.reteoo.FromNode.checkConstraintsAndPropagate(FromNode.java:279)
      at org.drools.reteoo.FromNode.assertLeftTuple(FromNode.java:138)
      at org.drools.reteoo.SingleLeftTupleSinkAdapter.doPropagateAssertLeftTuple(SingleLeftTupleSinkAdapter.java:189)
      at org.drools.reteoo.SingleLeftTupleSinkAdapter.propagateAssertLeftTuple(SingleLeftTupleSinkAdapter.java:64)
      at org.drools.reteoo.JoinNode.assertObject(JoinNode.java:128)
      at org.drools.reteoo.PartitionTaskManager$FactAssertAction.execute(PartitionTaskManager.java:274)
      at org.drools.reteoo.PartitionTaskManager$PartitionTask.run(PartitionTaskManager.java:118)
      at org.drools.concurrent.ExternalExecutorService$ObservableRunnable.run(ExternalExecutorService.java:453)
      at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
      at java.lang.Thread.run(Thread.java:662)

        Gliffy Diagrams

          Attachments

            Activity

              People

              • Assignee:
                tirelli Edson Tirelli
                Reporter:
                ravi.bhatt Ravi Bhatt
              • Votes:
                0 Vote for this issue
                Watchers:
                0 Start watching this issue

                Dates

                • Created:
                  Updated: