From b73a903ee676170f5300856858ed04dfbdf85c5a Mon Sep 17 00:00:00 2001 From: Christos Stathis Date: Mon, 25 Jun 2012 18:52:36 +0300 Subject: [PATCH] Added retries to delete commands and in case of error the process continues with the next object to be deleted --- .../grnet/pithos/web/client/DeleteFileDialog.java | 1 + src/gr/grnet/pithos/web/client/Pithos.java | 24 +++++++------------- .../pithos/web/client/rest/DeleteRequest.java | 12 ++++++++-- 3 files changed, 19 insertions(+), 18 deletions(-) diff --git a/src/gr/grnet/pithos/web/client/DeleteFileDialog.java b/src/gr/grnet/pithos/web/client/DeleteFileDialog.java index c91c986..7834fa2 100644 --- a/src/gr/grnet/pithos/web/client/DeleteFileDialog.java +++ b/src/gr/grnet/pithos/web/client/DeleteFileDialog.java @@ -152,6 +152,7 @@ public class DeleteFileDialog extends DialogBox { } else app.displayError("System error unable to delete file: "+t.getMessage()); + deleteFile(iter); } @Override diff --git a/src/gr/grnet/pithos/web/client/Pithos.java b/src/gr/grnet/pithos/web/client/Pithos.java index ca7b3e4..08a886e 100644 --- a/src/gr/grnet/pithos/web/client/Pithos.java +++ b/src/gr/grnet/pithos/web/client/Pithos.java @@ -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()); diff --git a/src/gr/grnet/pithos/web/client/rest/DeleteRequest.java b/src/gr/grnet/pithos/web/client/rest/DeleteRequest.java index b217b37..b6b71ee 100644 --- a/src/gr/grnet/pithos/web/client/rest/DeleteRequest.java +++ b/src/gr/grnet/pithos/web/client/rest/DeleteRequest.java @@ -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) { } -- 1.7.10.4