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