Uploaded image for project: 'Drools'
  1. Drools
  2. DROOLS-5315

"Contains" is not null-safe with executable model

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • Major
    • None
    • 7.37.0.Final
    • core engine
    • None
    • 2020 Week 19-21 (from May 4)
    • Hide

      run:

          mvn clean test
      

      on attached reproducer

      Show
      run: mvn clean test on attached reproducer
    • NEW
    • NEW

    Description

      When executing rules with executable model, contains constraints are not null-safe, whereas they are in DRL mode

      Example of DRL that exhibits the behavior:

          rule "contains constraint"
          when Pojo(integerList contains 3)
          then
          end
      

      Error:

          java.lang.RuntimeException: java.lang.RuntimeException: java.lang.NullPointerException
          
          	at org.drools.modelcompiler.constraints.ConstraintEvaluator.evaluate(ConstraintEvaluator.java:95)
          	at org.drools.modelcompiler.constraints.LambdaConstraint.isAllowed(LambdaConstraint.java:132)
          	at org.drools.core.reteoo.AlphaNode.assertObject(AlphaNode.java:139)
          	at org.drools.core.reteoo.SingleObjectSinkAdapter.propagateAssertObject(SingleObjectSinkAdapter.java:70)
          	at org.drools.core.reteoo.ObjectTypeNode.propagateAssert(ObjectTypeNode.java:329)
           ...
      
      

      The example works fine when running without executable model.

      The documentation is not explicit about whether contains should be null safe or not, so we are unsure whether this is to be considered or not a regression.

      Attachments

        Activity

          People

            mfusco@redhat.com Mario Fusco
            mcasalino Matteo Casalino (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: