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