Update of /var/cvs/src/org/mmbase/framework
In directory james.mmbase.org:/tmp/cvs-serv7636
Modified Files:
CachedRenderer.java
Log Message:
sometimes things like toString of request ended up in the key, which is
obiously wrong. Also added the block-name as a directory
See also: http://cvs.mmbase.org/viewcvs/src/org/mmbase/framework
Index: CachedRenderer.java
===================================================================
RCS file: /var/cvs/src/org/mmbase/framework/CachedRenderer.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- CachedRenderer.java 13 Jan 2009 08:24:21 -0000 1.4
+++ CachedRenderer.java 13 Jan 2009 20:28:07 -0000 1.5
@@ -12,8 +12,7 @@
import java.io.*;
import java.net.*;
-import java.util.Date;
-import java.util.Locale;
+import java.util.*;
import java.util.concurrent.*;
@@ -52,7 +51,7 @@
]]></pre>
*
* @author Michiel Meeuwissen
- * @version $Id: CachedRenderer.java,v 1.4 2009/01/13 08:24:21 michiel Exp $
+ * @version $Id: CachedRenderer.java,v 1.5 2009/01/13 20:28:07 michiel Exp $
* @since MMBase-1.9.1
*/
@@ -104,12 +103,24 @@
}
}
+ protected String getKey(Parameters blockParameters) {
+ StringBuilder k = new StringBuilder();
+ for (Map.Entry<String, Object> entry : blockParameters.toEntryList()) {
+ if (entry.getValue() == null) continue;
+ if (! Casting.isStringRepresentable(entry.getValue().getClass()))
continue;
+ k.append(entry.getKey()).append("=");
+ k.append(Casting.toString(entry.getValue()));
+ }
+ return k.toString();
+ }
+
protected File getCacheFile(Parameters blockParameters, RenderHints hints)
{
File dir = new File(MMBase.getMMBase().getDataDir(), directory);
File componentDir = new File(dir, getBlock().getComponent().getName());
- componentDir.mkdirs();
- String key = getBlock().getName() + "_" + blockParameters + "_" +
hints.getWindowState() + "_" + hints.getId() + "_" + hints.getStyleClass() +
".cache";
- return new File(componentDir, key);
+ File blockDir = new File(componentDir, getBlock().getName());
+ blockDir.mkdirs();
+ String key = getBlock().getName() + "_" + getKey(blockParameters) +
"_" + hints.getWindowState() + "_" + hints.getId() + "_" +
hints.getStyleClass() + ".cache";
+ return new File(blockDir, key);
}
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs