Author: vmassol
Date: 2007-11-25 08:15:33 +0100 (Sun, 25 Nov 2007)
New Revision: 6068

Modified:
   
xwiki-platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/web/DeleteAction.java
Log:
XWIKI-1890: Calling the delete action in a XWiki URL when the document has 
already been deleted generates an exception



Modified: 
xwiki-platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/web/DeleteAction.java
===================================================================
--- 
xwiki-platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/web/DeleteAction.java
      2007-11-25 06:25:21 UTC (rev 6067)
+++ 
xwiki-platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/web/DeleteAction.java
      2007-11-25 07:15:33 UTC (rev 6068)
@@ -46,10 +46,10 @@
         XWikiDocument doc = context.getDoc();
         boolean redirected = false;
 
-        if (doc.isNew()) {
-            // delete from recycle bin
-            if (xwiki.hasRecycleBin(context)) {
-                String sindex = request.getParameter("id");
+        // If the document doesn't exist then delete it form the recycle bin.
+        if (doc.isNew() && xwiki.hasRecycleBin(context)) {
+            String sindex = request.getParameter("id");
+            if (sindex != null) {
                 long index = Long.parseLong(sindex);
                 XWikiDeletedDocument dd = xwiki.getRecycleBinStore()
                     .getDeletedDocument(doc, index, context, true);
@@ -57,11 +57,16 @@
                 if (!ddapi.canDelete()) {
                     throw new 
XWikiException(XWikiException.MODULE_XWIKI_ACCESS, 
                         XWikiException.ERROR_XWIKI_ACCESS_DENIED,
-                        "You can't delete from recycle bin before certain time 
will passed");
+                        "You can't delete from recycle bin before some time 
has passed");
                 }
                 xwiki.getRecycleBinStore().deleteFromRecycleBin(doc, index, 
context, true);
                 sendRedirect(response, doc.getURL("view", context));
                 redirected = true;
+            } else {
+                // No index parameter passed, redirect the user to the view 
template so that he gets the document
+                // don't exist dialog box.
+                sendRedirect(response, doc.getURL("view", context));
+                redirected = true;
             }
         } else {
             // delete to recycle bin

_______________________________________________
notifications mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/notifications

Reply via email to