r1487 - in xwiki/trunk/core/src/main/java/com/xpn/xwiki: . doc store

Jeremi Joslin jeremi at users.forge.objectweb.org
Thu Nov 2 01:32:11 CET 2006


Author: jeremi
Date: 2006-11-02 01:27:05 +0100 (Thu, 02 Nov 2006)
New Revision: 1487

Modified:
   xwiki/trunk/core/src/main/java/com/xpn/xwiki/XWiki.java
   xwiki/trunk/core/src/main/java/com/xpn/xwiki/doc/XWikiDocument.java
   xwiki/trunk/core/src/main/java/com/xpn/xwiki/store/XWikiHibernateStore.java
Log:
[GELC]
* fix the save (the object where not saved with the right Document ID after a rename)
* remove the destination file first if it exist

Modified: xwiki/trunk/core/src/main/java/com/xpn/xwiki/XWiki.java
===================================================================
--- xwiki/trunk/core/src/main/java/com/xpn/xwiki/XWiki.java	2006-11-01 18:00:17 UTC (rev 1486)
+++ xwiki/trunk/core/src/main/java/com/xpn/xwiki/XWiki.java	2006-11-02 00:27:05 UTC (rev 1487)
@@ -3927,6 +3927,16 @@
     }
 
     public XWikiDocument renamePage(XWikiDocument doc, String newFullName, XWikiContext context) throws XWikiException {
+        if (context.getWiki().exists(newFullName, context)){
+            XWikiDocument delDoc = context.getWiki().getDocument(newFullName, context);
+            if (checkAccess("delete", delDoc, context))
+                context.getWiki().deleteDocument(delDoc, context);
+            else
+                throw new XWikiException(XWikiException.MODULE_XWIKI_ACCESS,
+                            XWikiException.ERROR_XWIKI_ACCESS_DENIED,
+                            "delete the destination document is denied");
+
+        }
         XWikiDocument renamedDoc = doc.copyDocument(newFullName, context);
         saveDocument(renamedDoc, context);
         renamedDoc.saveAllAttachments(context);

Modified: xwiki/trunk/core/src/main/java/com/xpn/xwiki/doc/XWikiDocument.java
===================================================================
--- xwiki/trunk/core/src/main/java/com/xpn/xwiki/doc/XWikiDocument.java	2006-11-01 18:00:17 UTC (rev 1486)
+++ xwiki/trunk/core/src/main/java/com/xpn/xwiki/doc/XWikiDocument.java	2006-11-02 00:27:05 UTC (rev 1487)
@@ -1365,6 +1365,7 @@
         doc.setxWikiClassXML(getxWikiClassXML());
         doc.clonexWikiObjects(this);
         doc.copyAttachments(this);
+        doc.elements = elements;
         return doc;
     }
 

Modified: xwiki/trunk/core/src/main/java/com/xpn/xwiki/store/XWikiHibernateStore.java
===================================================================
--- xwiki/trunk/core/src/main/java/com/xpn/xwiki/store/XWikiHibernateStore.java	2006-11-01 18:00:17 UTC (rev 1486)
+++ xwiki/trunk/core/src/main/java/com/xpn/xwiki/store/XWikiHibernateStore.java	2006-11-02 00:27:05 UTC (rev 1487)
@@ -289,8 +289,10 @@
                     Vector objects = (Vector) it.next();
                     for (int i=0;i<objects.size();i++) {
                         BaseCollection obj = (BaseCollection)objects.get(i);
-                        if (obj!=null)
+                        if (obj!=null){
+                            obj.setName(doc.getFullName());
                             saveXWikiCollection(obj, context, false);
+                        }
                     }
                 }
             }
@@ -548,7 +550,6 @@
         try {
             if (object==null)
                 return;
-
             // We need a slightly different behavior here
             boolean stats = (object instanceof XWikiStats);
 





More information about the Xwiki-notifications mailing list