Avoid Futures.getUnchecked in DeleteAllKeysInList

This masks InterruptedException.  We should rework the logic in
execute to unwind the stack on errors; currently we only return from
the leaf method.
This commit is contained in:
Andrew Gaul 2012-09-19 15:54:31 -07:00 committed by Andrew Gaul
parent 28d766b9df
commit ad87c596d9
1 changed files with 6 additions and 2 deletions

View File

@ -22,6 +22,7 @@ import static org.jclouds.blobstore.options.ListContainerOptions.Builder.recursi
import static org.jclouds.concurrent.FutureIterables.awaitCompletion;
import java.util.Map;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Future;
@ -95,8 +96,11 @@ public class DeleteAllKeysInList implements ClearListStrategy, ClearContainerStr
for (int i = 0; i < maxErrors; ) {
// fetch partial directory listing
try {
listing = Futures.getUnchecked(connection.list(containerName, options));
} catch (RuntimeException ee) {
listing = connection.list(containerName, options).get();
} catch (InterruptedException ie) {
Thread.currentThread().interrupt();
break;
} catch (ExecutionException ee) {
++i;
if (i == maxErrors) {
throw Throwables.propagate(ee.getCause());