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