[
http://jira.jboss.com/jira/browse/JBRULES-372?page=all ]
Edson Tirelli resolved JBRULES-372.
-----------------------------------
Fix Version/s: 3.0.3
Resolution: Done
Fixed.
There was 2 problems:
* the column offset adjustment calculation for queries was not being done
* there was a minor bug in the map construction inside QueryResults.
Thanks to Giovanni for reporting and for providing a good test case. Let me know if you
find any other problem.
Fixed in trunk (3.1m1) in revision #5132 and in 3.0.x branch in revision #5133.
------------------
Sending
drools-compiler/src/test/java/org/drools/integrationtests/IntegrationCases.java
Adding
drools-compiler/src/test/resources/org/drools/integrationtests/test_Query.drl
Sending drools-core/src/main/java/org/drools/QueryResults.java
Sending drools-core/src/main/java/org/drools/reteoo/ReteooBuilder.java
Transmitting file data ....
Committed revision 5132.
------------------
Sending
drools-compiler/src/test/java/org/drools/integrationtests/IntegrationCases.java
Adding
drools-compiler/src/test/resources/org/drools/integrationtests/test_Query.drl
Sending drools-core/src/main/java/org/drools/QueryResults.java
Sending drools-core/src/main/java/org/drools/reteoo/ReteooBuilder.java
Transmitting file data ...
Committed revision 5133.
QueryResult.get fires ClassCastException when using the string
argument
-----------------------------------------------------------------------
Key: JBRULES-372
URL:
http://jira.jboss.com/jira/browse/JBRULES-372
Project: JBoss Rules
Issue Type: Bug
Security Level: Public(Everyone can see)
Environment: JBoss Rules 3.0.1 and JBoss Rules as downloaded from svn trunk as of
12/07/06
Reporter: Giovanni Cuccu
Assigned To: Edson Tirelli
Fix For: 3.0.3
Attachments: QueryResult.java, QueryResults.java
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();
}
}
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira