Author: michiel
Date: 2010-04-27 17:43:18 +0200 (Tue, 27 Apr 2010)
New Revision: 42059

Modified:
   
mmbase/trunk/bridge/src/main/java/org/mmbase/storage/search/implementation/BasicStepField.java
Log:
anonymisation of cloud should also take into consideration the name of the Cloud

Modified: 
mmbase/trunk/bridge/src/main/java/org/mmbase/storage/search/implementation/BasicStepField.java
===================================================================
--- 
mmbase/trunk/bridge/src/main/java/org/mmbase/storage/search/implementation/BasicStepField.java
      2010-04-27 15:37:58 UTC (rev 42058)
+++ 
mmbase/trunk/bridge/src/main/java/org/mmbase/storage/search/implementation/BasicStepField.java
      2010-04-27 15:43:18 UTC (rev 42059)
@@ -127,7 +127,7 @@
 
     // Perhaps it is better to have something like this available in 
CloudContext itself.
     // CloudContext#getAnonymousCloud or so.
-    private static final Map<CloudContext, Cloud> anonymousClouds = new 
ConcurrentHashMap<CloudContext, Cloud>();
+    private static final Map<CloudContext, Map<String, Cloud>> anonymousClouds 
= new ConcurrentHashMap<CloudContext, Map<String, Cloud>>();
     /**
      * Constructor.
      *
@@ -155,11 +155,17 @@
             // SearchQueries can be referenced in caches. We don't want to
             // have references to user clouds there (Field is probably a 
BasicField then)
             // So, we use a specialized anonymous cloud instance
-            CloudContext cloudContext = 
f.getNodeManager().getCloud().getCloudContext();
-            Cloud anonymousCloud = anonymousClouds.get(cloudContext);
+            Cloud cloud = f.getNodeManager().getCloud();
+            CloudContext cloudContext = cloud.getCloudContext();
+            Map<String, Cloud> map = anonymousClouds.get(cloudContext);
+            if (map == null) {
+                map = new ConcurrentHashMap<String, Cloud>();
+                anonymousClouds.put(cloudContext, map);
+            }
+            Cloud anonymousCloud = map.get(cloud.getName());
             if (anonymousCloud == null) {
-                anonymousCloud = cloudContext.getCloud("mmbase");
-                anonymousClouds.put(cloudContext, anonymousCloud);
+                anonymousCloud = cloudContext.getCloud(cloud.getName());
+                map.put(cloud.getName(), anonymousCloud);
             }
             NodeManager anonymousNodeManager = 
anonymousCloud.getNodeManager(f.getNodeManager().getName());
             f = anonymousNodeManager.getField(f.getName());

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

Reply via email to