Author: ludovic
Date: 2007-09-09 23:51:35 +0200 (Sun, 09 Sep 2007)
New Revision: 4857
Modified:
xwiki-platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/web/EditAction.java
xwiki-platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/web/SaveAction.java
Log:
XWIKI-1729 Cache issue on document creation in multilingual mode
Modified:
xwiki-platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/web/EditAction.java
===================================================================
---
xwiki-platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/web/EditAction.java
2007-09-09 21:50:24 UTC (rev 4856)
+++
xwiki-platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/web/EditAction.java
2007-09-09 21:51:35 UTC (rev 4857)
@@ -43,6 +43,11 @@
XWikiForm form = context.getForm();
VelocityContext vcontext = (VelocityContext) context.get("vcontext");
+ // we need to clone so that nothing happens in memory
+ doc = (XWikiDocument) doc.clone();
+ context.put("doc", doc);
+ vcontext.put("doc", doc.newDocument(context));
+
// Add captcha plugin to avoid spam robots
if (xwiki.hasCaptcha(context)) {
CaptchaPluginApi captchaPluginApi = (CaptchaPluginApi)
xwiki.getPluginApi("jcaptcha", context);
Modified:
xwiki-platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/web/SaveAction.java
===================================================================
---
xwiki-platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/web/SaveAction.java
2007-09-09 21:50:24 UTC (rev 4856)
+++
xwiki-platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/web/SaveAction.java
2007-09-09 21:51:35 UTC (rev 4857)
@@ -65,7 +65,7 @@
// String defaultLanguage = ((EditForm)
form).getDefaultLanguage();
XWikiDocument tdoc;
- if ((language == null) || (language.equals("")) ||
(language.equals("default")) || (language.equals(doc.getDefaultLanguage()))) {
+ if (doc.isNew() || (language == null) ||
(language.equals("")) || (language.equals("default")) ||
(language.equals(doc.getDefaultLanguage()))) {
// Need to save parent and defaultLanguage if
they have changed
tdoc = doc;
} else {
@@ -78,7 +78,13 @@
tdoc.setTranslation(1);
}
- try {
+ if (doc.isNew()) {
+ doc.setLanguage("");
+ if
((doc.getDefaultLanguage()==null)||(doc.getDefaultLanguage().equals("")))
+
doc.setDefaultLanguage(context.getWiki().getLanguagePreference(context));
+ }
+
+ try {
tdoc.readFromTemplate(((EditForm)
form).getTemplate(), context);
} catch (XWikiException e) {
if (e.getCode() ==
XWikiException.ERROR_XWIKI_APP_DOCUMENT_NOT_EMPTY) {
_______________________________________________
notifications mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/notifications