Author: michiel
Date: 2010-03-03 10:44:34 +0100 (Wed, 03 Mar 2010)
New Revision: 41247

Modified:
   mmbase/trunk/core/src/main/java/org/mmbase/storage/search/ResultBuilder.java
Log:
Avoid referencing BasicQueries in caches, because they refer to a cloud, and 
clouds may refer to I don't know what not.

Modified: 
mmbase/trunk/core/src/main/java/org/mmbase/storage/search/ResultBuilder.java
===================================================================
--- 
mmbase/trunk/core/src/main/java/org/mmbase/storage/search/ResultBuilder.java    
    2010-03-03 09:43:24 UTC (rev 41246)
+++ 
mmbase/trunk/core/src/main/java/org/mmbase/storage/search/ResultBuilder.java    
    2010-03-03 09:44:34 UTC (rev 41247)
@@ -56,10 +56,17 @@
      * @param mmbase MMBase instance.
      * @param query The search query that defines the search.
      */
-    public ResultBuilder(MMBase mmbase, SearchQuery query) {
+    public ResultBuilder(MMBase mmbase, SearchQuery q) {
         super(mmbase);
-        this.query = query;
 
+        // The ResultBuilder will be back referenced by nodes in the result of 
an aggregate query.
+        // And this result may be cached.
+        // We don't want to cache 'Wrapped' queries (e.g. bridge.BasicQuery, 
because they reference a Cloud).
+        while (q instanceof SearchQueryWrapper) {
+            q = ((SearchQueryWrapper)q).unwrap();
+        }
+        this.query = q;
+
         // Create fieldsByAlias map.
         for (StepField field : query.getFields()) {
             String fieldAlias = field.getAlias();

_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to