[rules-users] Facing an issue with Drools Query

siddhartha banik siddhartha.banik at gmail.com
Sat Sep 6 03:10:10 EDT 2008


Hi,

I am facing an issue with Drools Query.
Our application serializes working memory after its each execution, to save
the rule engine state.

Our rule base contains a Query along with other rules:

 query "GetFactsByValue" ( String $value )
   Facts : DataObject( stringValue == $value )
end

With this query present in Rule Base, if I insert more then 900 instances of
DataObject & then try to serialize the working memory... serialization fails
with bellow error:

 java.lang.StackOverflowError
 at java.io.ObjectStreamClass.processQueue(Unknown Source)
 at java.io.ObjectStreamClass.lookup(Unknown Source)
 at java.io.ObjectOutputStream.writeObject0(Unknown Source)
 at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
 at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
 at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
 at java.io.ObjectOutputStream.writeObject0(Unknown Source)
 at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
 at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
 at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)

But if I remove the query from rule base, I can  insert more then 60,000
objects & then serialize WM without any problem.

Not sure if this is a bug in Query feature or problem in the way I have
written the Query. I have attached test files.

We are using few more queries in our RuleBase like:

query "GetAllFacts" ( )
    Fact : DataObject( )
end

query "GetFactsByDate" ( Calendar $startDate, Calendar $endDate )
    Fact : DataObject( startDate >= $startDate, endDate <= $endDate )
end

query "GetFactsByParamIdTimeRange" ( ArrayList $paramIDs, Calendar
$startDate, Calendar $endDate )
    Facts : DataObject( paramID memberOf $paramIDs, startDate >= $startDate,
endDate <= $endDate )
end

Not sure if they also may fail in some special scenarios. Atleast last 3
Queries we are planning to use in our production. Is it ok to use those?

Execution Environment:
OS: Windows/ Solaris
Drools 4.0.7
jre1.5.0_09

Thanks
Siddhartha
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20080906/ba2be67b/attachment.html 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: TestQuery.zip
Type: application/zip
Size: 2583 bytes
Desc: not available
Url : http://lists.jboss.org/pipermail/rules-users/attachments/20080906/ba2be67b/attachment.zip 


More information about the rules-users mailing list