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

Array of object not supported by contains

This issue belongs to an archived project. You can view it, but you can't modify it. Learn more

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Major Major
    • 4.0.0.MR2
    • None
    • None
    • None
    • Low

      when the array is an array of object like String we get
      java.lang.ClassCastException
      at org.drools.base.evaluators.ObjectFactory$ObjectContainsEvaluator.evaluate(ObjectFactory.java:386)
      at org.drools.rule.LiteralRestriction.isAllowed(LiteralRestriction.java:61)
      at org.drools.rule.LiteralConstraint.isAllowed(LiteralConstraint.java:82)
      at org.drools.reteoo.AlphaNode.assertObject(AlphaNode.java:140)
      at org.drools.reteoo.CompositeObjectSinkAdapter.propagateAssertObject(CompositeObjectSinkAdapter.java:317)
      at org.drools.reteoo.ObjectTypeNode.assertObject(ObjectTypeNode.java:183)
      at org.drools.reteoo.Rete.assertObject(Rete.java:121)
      at org.drools.reteoo.ReteooRuleBase.assertObject(ReteooRuleBase.java:196)
      at org.drools.reteoo.ReteooWorkingMemory.doAssertObject(ReteooWorkingMemory.java:70)
      at org.drools.common.AbstractWorkingMemory.assertObject(AbstractWorkingMemory.java:727)
      at org.drools.common.AbstractWorkingMemory.assertObject(AbstractWorkingMemory.java:551)

      example: assume we have a class message
      class Message{
      String [] mess;
      }

      rule "test"
      when
      Message(mess contains "HELLO")
      then
      ..
      end
      the reason is the test in the org.drools.base.ValueType class
      else if ( clazz.isAssignableFrom( Object[].class ) ) {
      return ValueType.ARRAY_TYPE; the test will be satisfied only for array of java.lang.Object and not for others object
      a simple solution is to modify this test in
      else if ( clazz.isArray() && clazz.getComponentType() instanceof Object) {
      return ValueType.ARRAY_TYPE;

            etirelli@redhat.com Edson Tirelli
            yehdih2001 ahmed haha (Inactive)
            Archiver:
            rhn-support-ceverson Clark Everson

              Created:
              Updated:
              Resolved:
              Archived:

                Estimated:
                Original Estimate - 1 hour
                1h
                Remaining:
                Remaining Estimate - 1 hour
                1h
                Logged:
                Time Spent - Not Specified
                Not Specified