Added retries to delete commands and in case of error the process continues with...
authorChristos Stathis <chstath@ebs.gr>
Mon, 25 Jun 2012 15:52:36 +0000 (18:52 +0300)
committerChristos Stathis <chstath@ebs.gr>
Mon, 25 Jun 2012 15:52:36 +0000 (18:52 +0300)
src/gr/grnet/pithos/web/client/DeleteFileDialog.java
src/gr/grnet/pithos/web/client/Pithos.java
src/gr/grnet/pithos/web/client/rest/DeleteRequest.java

index c91c986..7834fa2 100644 (file)
@@ -152,6 +152,7 @@ public class DeleteFileDialog extends DialogBox {
                     }\r
                     else\r
                         app.displayError("System error unable to delete file: "+t.getMessage());\r
+                    deleteFile(iter);\r
                 }\r
 \r
                                @Override\r
index ca7b3e4..08a886e 100644 (file)
@@ -879,6 +879,7 @@ public class Pithos implements EntryPoint, ResizeHandler {
                         GWT.log("", t);
                                                setError(t);
                         displayError("System error unable to delete folder: " + t.getMessage());
+                        deleteObject(folder, i + 1, array, callback);
                     }
 
                                @Override
@@ -1429,10 +1430,7 @@ public class Pithos implements EntryPoint, ResizeHandler {
                        
                        @Override
                        protected void onUnauthorized(Response response) {
-                               if (retries >= MAX_RETRIES)
-                                       sessionExpired();
-               else //retry
-                       Scheduler.get().scheduleDeferred(this);
+                               sessionExpired();
                        }
                        
                        @Override
@@ -1442,18 +1440,12 @@ public class Pithos implements EntryPoint, ResizeHandler {
                        
                        @Override
                        public void onError(Throwable t) {
-               if (retries >= MAX_RETRIES) {
-                       GWT.log("Error deleting trash", t);
-                                       setError(t);
-                       if (t instanceof RestException)
-                           displayError("Error deleting trash: " + ((RestException) t).getHttpStatusText());
-                       else
-                           displayError("System error deleting trash: " + t.getMessage());
-               }
-               else {//retry
-                       GWT.log("Retry " + retries);
-                       Scheduler.get().scheduleDeferred(this);
-               }
+                GWT.log("Error deleting trash", t);
+                               setError(t);
+                if (t instanceof RestException)
+                    displayError("Error deleting trash: " + ((RestException) t).getHttpStatusText());
+                else
+                    displayError("System error deleting trash: " + t.getMessage());
                        }
                };
                delete.setHeader("X-Auth-Token", getToken());
index b217b37..b6b71ee 100644 (file)
@@ -40,6 +40,7 @@ import gr.grnet.pithos.web.client.foldertree.Resource;
 import java.util.HashMap;
 import java.util.Map;
 
+import com.google.gwt.core.client.Scheduler;
 import com.google.gwt.core.client.Scheduler.ScheduledCommand;
 import com.google.gwt.http.client.Request;
 import com.google.gwt.http.client.RequestBuilder;
@@ -94,14 +95,21 @@ public abstract class DeleteRequest implements ScheduledCommand {
 
                 @Override
                 public void onError(Request request, Throwable throwable) {
-                    DeleteRequest.this.onError(throwable);
+                       if (retries >= MAX_RETRIES)
+                               DeleteRequest.this.onError(throwable);
+                       else
+                               Scheduler.get().scheduleDeferred(DeleteRequest.this);
                 }
 
                                @Override
                                public void onUnauthorized(Response response) {
-                                       DeleteRequest.this.onUnauthorized(response);
+                       if (retries >= MAX_RETRIES)
+                               DeleteRequest.this.onUnauthorized(response);
+                       else
+                               Scheduler.get().scheduleDeferred(DeleteRequest.this);
                                }
             });
+            retries++;
         }
         catch (RequestException e) {
         }