Author: sdumitriu
Date: 2007-11-20 13:05:29 +0100 (Tue, 20 Nov 2007)
New Revision: 6028
Modified:
xwiki-platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/render/DefaultXWikiRenderingEngine.java
Log:
XWIKI-1044: Refreshing cached documents affects only the current request
XWIKI-937: Caching documents breaks the inline edit mode
XWIKI-1869: Caching documents does not consider the current user language,
returning the document in the cached language
Fixed.
Modified:
xwiki-platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/render/DefaultXWikiRenderingEngine.java
===================================================================
---
xwiki-platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/render/DefaultXWikiRenderingEngine.java
2007-11-20 11:44:00 UTC (rev 6027)
+++
xwiki-platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/render/DefaultXWikiRenderingEngine.java
2007-11-20 12:05:29 UTC (rev 6028)
@@ -324,13 +324,24 @@
private String getKey(String text, XWikiDocument contentdoc, XWikiDocument
includingdoc,
XWikiContext context)
{
- return ((context == null) ? "xwiki" : context.getDatabase()) + "-"
- + ((contentdoc == null) ? "" : contentdoc.getDatabase() + ":"
- + contentdoc.getFullName()) + "-"
- + ((includingdoc == null) ? "" : includingdoc.getDatabase() + ":"
- + includingdoc.getFullName()) + "-"
- + ((context == null || context.getRequest() == null) ? "" :
context.getRequest()
- .getQueryString()) + "-" + text.hashCode();
+ String qs =
+ ((context == null || context.getRequest() == null) ? "" :
context.getRequest()
+ .getQueryString());
+ if (qs != null) {
+ qs = qs.replaceAll("refresh=1&?", "");
+ qs = qs.replaceAll("&?refresh=1", "");
+ }
+ String db = ((context == null) ? "xwiki" : context.getDatabase());
+ String cdoc =
+ ((contentdoc == null) ? "" : contentdoc.getDatabase() + ":"
+ + contentdoc.getFullName() + ":" +
contentdoc.getRealLanguage());
+ String idoc =
+ ((includingdoc == null) ? "" : includingdoc.getDatabase() + ":"
+ + includingdoc.getFullName() + ":" +
includingdoc.getRealLanguage());
+ String action = ((context == null) ? "view" : context.getAction());
+ String lang = ((context == null) ? "" : context.getLanguage());
+ return db + "-" + cdoc + "-" + idoc + "-" + qs + "-" + action + "-" +
lang + "-"
+ + text.hashCode();
}
public void flushCache()
_______________________________________________
notifications mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/notifications