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

QueryResult.get fires ClassCastException when using the string argument

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

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • Major
    • 3.0.3
    • None
    • None
    • None

    Description

      here is the simple test case:

      package simpletest;

      public class AssertedObject {
      private String value;

      public String getValue()

      { return value; }

      public void setValue(String value)

      { this.value = value; }

      public AssertedObject(String value)

      { // TODO Auto-generated constructor stub this.value = value; }

      }

      package simpletest;

      import simpletest.AssertedObject;

      rule rule1
      when
      then
      assert( new AssertedObject( "value1") );
      assert( new AssertedObject( "value2") );
      end

      query "assertedobjquery"
      assertedobj : AssertedObject( value=="value1" )
      end

      package simpletest;

      import java.io.InputStreamReader;
      import java.util.HashMap;
      import java.util.Iterator;
      import java.util.Map;

      import mit.rules.test.Prestazione;
      import mit.rules.test.StrutturaErogante;
      import mit.rules.test.TempiAttesa;
      import mit.rules.test.TestRules;

      import org.drools.QueryResult;
      import org.drools.QueryResults;
      import org.drools.RuleBase;
      import org.drools.RuleBaseFactory;
      import org.drools.WorkingMemory;
      import org.drools.audit.WorkingMemoryFileLogger;
      import org.drools.compiler.PackageBuilder;

      public class TestQuery {
      public static void main(String[] args) throws Exception

      { // TODO Auto-generated method stub final PackageBuilder builder = new PackageBuilder(); builder.addPackageFromDrl( new InputStreamReader( TestQuery.class.getResourceAsStream( "testquery.drl" ) ) ); final RuleBase ruleBase = RuleBaseFactory.newRuleBase(); ruleBase.addPackage( builder.getPackage() ); final WorkingMemory workingMemory = ruleBase.newWorkingMemory(); fireRules(workingMemory); }

      public static void fireRules(WorkingMemory workingMemory) {
      final WorkingMemoryFileLogger logger = new WorkingMemoryFileLogger( workingMemory );
      logger.setFileName( "log/testquery" );

      workingMemory.fireAllRules();
      QueryResults results = workingMemory.getQueryResults( "assertedobjquery" );

      if (results==null || !results.iterator().hasNext())

      { System.err.println("Empty list"); }

      else {
      for ( Iterator it = results.iterator(); it.hasNext(); )

      { QueryResult result = ( QueryResult )it.next();; AssertedObject assertedObject=(AssertedObject)result.get( "assertedobj" ); System.out.println("AssertedObject with value " + assertedObject.getValue()); }


      }
      logger.writeToDisk();
      }
      }

      Attachments

        Activity

          People

            etirelli@redhat.com Edson Tirelli
            gcuccu_jira Giovanni Cuccu (Inactive)
            Archiver:
            rhn-support-ceverson Clark Everson

            Dates

              Created:
              Updated:
              Resolved:
              Archived:

              PagerDuty