r1476 - in xwiki/trunk/core/src/main/java/com/xpn/xwiki: . api doc objects/classes store
Jeremi Joslin
jeremi at users.forge.objectweb.org
Thu Oct 26 22:56:30 CEST 2006
Author: jeremi
Date: 2006-10-26 22:56:29 +0200 (Thu, 26 Oct 2006)
New Revision: 1476
Modified:
xwiki/trunk/core/src/main/java/com/xpn/xwiki/XWiki.java
xwiki/trunk/core/src/main/java/com/xpn/xwiki/api/Document.java
xwiki/trunk/core/src/main/java/com/xpn/xwiki/doc/XWikiAttachmentContent.java
xwiki/trunk/core/src/main/java/com/xpn/xwiki/objects/classes/DBTreeListClass.java
xwiki/trunk/core/src/main/java/com/xpn/xwiki/store/XWikiHibernateAttachmentStore.java
xwiki/trunk/core/src/main/java/com/xpn/xwiki/store/XWikiHibernateStore.java
Log:
fix the rename function and the delete (problems with attachments)
Modified: xwiki/trunk/core/src/main/java/com/xpn/xwiki/XWiki.java
===================================================================
--- xwiki/trunk/core/src/main/java/com/xpn/xwiki/XWiki.java 2006-10-26 16:34:04 UTC (rev 1475)
+++ xwiki/trunk/core/src/main/java/com/xpn/xwiki/XWiki.java 2006-10-26 20:56:29 UTC (rev 1476)
@@ -3931,8 +3931,8 @@
public XWikiDocument renamePage(XWikiDocument doc, String newFullName, XWikiContext context) throws XWikiException {
XWikiDocument renamedDoc = doc.copyDocument(newFullName, context);
saveDocument(renamedDoc, context);
+ renamedDoc.saveAllAttachments(context);
deleteDocument(doc, context);
- refreshLinks(context);
return renamedDoc;
}
Modified: xwiki/trunk/core/src/main/java/com/xpn/xwiki/api/Document.java
===================================================================
--- xwiki/trunk/core/src/main/java/com/xpn/xwiki/api/Document.java 2006-10-26 16:34:04 UTC (rev 1475)
+++ xwiki/trunk/core/src/main/java/com/xpn/xwiki/api/Document.java 2006-10-26 20:56:29 UTC (rev 1476)
@@ -1222,11 +1222,14 @@
if ((data != null) && (data.length > 0)){
String fname = fileupload.getFileName(name, context);
XWikiAttachment attachment = addAttachment(fname, data);
+ getDoc().saveAttachmentContent(attachment, context);
+ getDoc().getAttachmentList().add(attachment);
attachments.add(attachment);
nb++;
}
}
- getDoc().saveAttachmentsContent(attachments, context);
+ if (nb > 0)
+ context.getWiki().saveDocument(getDoc(), context);
return nb;
}
@@ -1242,8 +1245,13 @@
i = fileName.indexOf("/");
String filename = fileName.substring(i + 1);
filename = context.getWiki().clearName(filename, context);
- XWikiAttachment attachment = new XWikiAttachment();
- getDoc().getAttachmentList().add(attachment);
+
+ XWikiAttachment attachment = getDoc().getAttachment(filename);
+ if (attachment==null) {
+ attachment = new XWikiAttachment();
+ olddoc.getAttachmentList().add(attachment);
+ }
+
attachment.setContent(data);
attachment.setFilename(filename);
attachment.setAuthor(context.getUser());
Modified: xwiki/trunk/core/src/main/java/com/xpn/xwiki/doc/XWikiAttachmentContent.java
===================================================================
--- xwiki/trunk/core/src/main/java/com/xpn/xwiki/doc/XWikiAttachmentContent.java 2006-10-26 16:34:04 UTC (rev 1475)
+++ xwiki/trunk/core/src/main/java/com/xpn/xwiki/doc/XWikiAttachmentContent.java 2006-10-26 20:56:29 UTC (rev 1476)
@@ -19,78 +19,78 @@
*
* @author sgaide
*/
-
-package com.xpn.xwiki.doc;
-
-
-
-public class XWikiAttachmentContent {
-
- private XWikiAttachment attachment;
- private byte[] content;
-
- private boolean isContentDirty = false;
-
- public XWikiAttachmentContent(XWikiAttachment attachment) {
- this();
- setAttachment(attachment);
- }
-
- public XWikiAttachmentContent() {
- content = new byte[0];
- }
-
- public long getId() {
- return attachment.getId();
- }
-
- public void setId(long id) {
- }
-
- public Object clone() {
- XWikiAttachmentContent attachmentcontent = null;
- try {
- attachmentcontent = (XWikiAttachmentContent) getClass().newInstance();
- } catch (Exception e) {
- // This should not happen
- }
-
- attachmentcontent.setAttachment(getAttachment());
- attachmentcontent.setContent(getContent());
- return attachmentcontent;
- }
-
- public byte[] getContent() {
- if (content==null)
- return new byte[0];
- else
- return content;
- }
-
- public void setContent(byte[] content) {
- if (content==null)
- this.content = null;
- else {
- if (!content.equals(this.content))
- setContentDirty(true);
- this.content = content;
- attachment.setFilesize(content.length);
- }
- }
-
- public XWikiAttachment getAttachment() {
- return attachment;
- }
-
- public void setAttachment(XWikiAttachment attachment) {
- this.attachment = attachment;
- }
-
- public boolean isContentDirty() {
- return isContentDirty;
- }
-
- public void setContentDirty(boolean contentDirty) {
- isContentDirty = contentDirty;
- }
-}
+
+package com.xpn.xwiki.doc;
+
+
+
+public class XWikiAttachmentContent {
+
+ private XWikiAttachment attachment;
+ private byte[] content;
+
+ private boolean isContentDirty = false;
+
+ public XWikiAttachmentContent(XWikiAttachment attachment) {
+ this();
+ setAttachment(attachment);
+ }
+
+ public XWikiAttachmentContent() {
+ content = new byte[0];
+ }
+
+ public long getId() {
+ return attachment.getId();
+ }
+
+ public void setId(long id) {
+ }
+
+ public Object clone() {
+ XWikiAttachmentContent attachmentcontent = null;
+ try {
+ attachmentcontent = (XWikiAttachmentContent) getClass().newInstance();
+ } catch (Exception e) {
+ // This should not happen
+ }
+
+ attachmentcontent.setAttachment(getAttachment());
+ attachmentcontent.setContent(getContent());
+ return attachmentcontent;
+ }
+
+ public byte[] getContent() {
+ if (content==null)
+ return new byte[0];
+ else
+ return content;
+ }
+
+ public void setContent(byte[] content) {
+ if (content==null)
+ this.content = null;
+ else {
+ if (!content.equals(this.content))
+ setContentDirty(true);
+ this.content = content;
+ attachment.setFilesize(content.length);
+ }
+ }
+
+ public XWikiAttachment getAttachment() {
+ return attachment;
+ }
+
+ public void setAttachment(XWikiAttachment attachment) {
+ this.attachment = attachment;
+ }
+
+ public boolean isContentDirty() {
+ return isContentDirty;
+ }
+
+ public void setContentDirty(boolean contentDirty) {
+ isContentDirty = contentDirty;
+ }
+}
Modified: xwiki/trunk/core/src/main/java/com/xpn/xwiki/objects/classes/DBTreeListClass.java
===================================================================
--- xwiki/trunk/core/src/main/java/com/xpn/xwiki/objects/classes/DBTreeListClass.java 2006-10-26 16:34:04 UTC (rev 1475)
+++ xwiki/trunk/core/src/main/java/com/xpn/xwiki/objects/classes/DBTreeListClass.java 2006-10-26 20:56:29 UTC (rev 1476)
@@ -27,7 +27,6 @@
import com.xpn.xwiki.objects.ListProperty;
import com.xpn.xwiki.objects.DBStringListProperty;
import com.xpn.xwiki.XWikiContext;
-import com.sun.org.apache.bcel.internal.generic.Select;
import java.util.*;
Modified: xwiki/trunk/core/src/main/java/com/xpn/xwiki/store/XWikiHibernateAttachmentStore.java
===================================================================
--- xwiki/trunk/core/src/main/java/com/xpn/xwiki/store/XWikiHibernateAttachmentStore.java 2006-10-26 16:34:04 UTC (rev 1475)
+++ xwiki/trunk/core/src/main/java/com/xpn/xwiki/store/XWikiHibernateAttachmentStore.java 2006-10-26 20:56:29 UTC (rev 1476)
@@ -121,7 +121,7 @@
saveAttachmentContent(att, false, context, false);
}
if (bParentUpdate){
- context.getWiki().getStore().saveXWikiDoc(doc, context, true);
+ context.getWiki().getStore().saveXWikiDoc(doc, context, false);
}
}
catch (Exception e) {
@@ -243,7 +243,7 @@
log.warn("Error deleting attachment content " + attachment.getFilename() + " of doc " + attachment.getDoc().getFullName());
}
try {
- loadAttachmentContent(attachment, context, false);
+ loadAttachmentArchive(attachment, context, false);
} catch(XWikiException e){
if (log.isWarnEnabled())
log.warn("Error loading attachment archive when deleting attachment " + attachment.getFilename() + " of doc " + attachment.getDoc().getFullName());
@@ -299,4 +299,4 @@
} catch (Exception e) {}
}
}
-}
+}
\ No newline at end of file
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-10-26 16:34:04 UTC (rev 1475)
+++ xwiki/trunk/core/src/main/java/com/xpn/xwiki/store/XWikiHibernateStore.java 2006-10-26 20:56:29 UTC (rev 1476)
@@ -488,7 +488,7 @@
List attachlist = doc.getAttachmentList();
for (int i=0;i<attachlist.size();i++) {
XWikiAttachment attachment = (XWikiAttachment) attachlist.get(i);
- context.getWiki().getAttachmentStore().deleteXWikiAttachment(attachment, false, context, true);
+ context.getWiki().getAttachmentStore().deleteXWikiAttachment(attachment, false, context, false);
}
// deleting XWikiLinks
@@ -1231,6 +1231,7 @@
List list = doc.getAttachmentList();
for (int i=0;i<list.size();i++) {
XWikiAttachment attachment = (XWikiAttachment) list.get(i);
+ attachment.setDoc(doc);
saveAttachment(attachment, false, context, false);
}
More information about the Xwiki-notifications
mailing list