Author: ludovic
Date: 2007-09-09 23:50:24 +0200 (Sun, 09 Sep 2007)
New Revision: 4856

Modified:
   
xwiki-platform/core/branches/xwiki-core-1.1/src/main/java/com/xpn/xwiki/web/EditAction.java
   
xwiki-platform/core/branches/xwiki-core-1.1/src/main/java/com/xpn/xwiki/web/SaveAction.java
Log:
XWIKI-1729 Cache issue on document creation in multilingual mode

Modified: 
xwiki-platform/core/branches/xwiki-core-1.1/src/main/java/com/xpn/xwiki/web/EditAction.java
===================================================================
--- 
xwiki-platform/core/branches/xwiki-core-1.1/src/main/java/com/xpn/xwiki/web/EditAction.java
 2007-09-09 19:06:12 UTC (rev 4855)
+++ 
xwiki-platform/core/branches/xwiki-core-1.1/src/main/java/com/xpn/xwiki/web/EditAction.java
 2007-09-09 21:50:24 UTC (rev 4856)
@@ -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/branches/xwiki-core-1.1/src/main/java/com/xpn/xwiki/web/SaveAction.java
===================================================================
--- 
xwiki-platform/core/branches/xwiki-core-1.1/src/main/java/com/xpn/xwiki/web/SaveAction.java
 2007-09-09 19:06:12 UTC (rev 4855)
+++ 
xwiki-platform/core/branches/xwiki-core-1.1/src/main/java/com/xpn/xwiki/web/SaveAction.java
 2007-09-09 21:50:24 UTC (rev 4856)
@@ -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

Reply via email to