@@ -65,7 +65,10 @@ public StorageOptions options() {
6565
6666 /**
6767 * Deletes a bucket, even if non-empty. Objects in the bucket are listed and deleted until bucket
68- * deletion succeeds or {@code timeout} expires.
68+ * deletion succeeds or {@code timeout} expires. To allow for the timeout, this method uses a
69+ * separate thread to send the delete requests. Use
70+ * {@link #forceDelete(Storage storage, String bucket)} if spawning an additional thread is
71+ * undesirable, such as in the App Engine production runtime.
6972 *
7073 * @param storage the storage service to be used to issue requests
7174 * @param bucket the bucket to be deleted
@@ -88,6 +91,17 @@ public static Boolean forceDelete(Storage storage, String bucket, long timeout,
8891 }
8992 }
9093
94+ /**
95+ * Deletes a bucket, even if non-empty. This method blocks until the deletion completes or fails.
96+ *
97+ * @param storage the storage service to be used to issue requests
98+ * @param bucket the bucket to be deleted
99+ * @throws StorageException if an exception is encountered during bucket deletion
100+ */
101+ public static void forceDelete (Storage storage , String bucket ) {
102+ new DeleteBucketTask (storage , bucket ).call ();
103+ }
104+
91105 /**
92106 * Returns a bucket name generated using a random UUID.
93107 */
@@ -157,7 +171,7 @@ public DeleteBucketTask(Storage storage, String bucket) {
157171 }
158172
159173 @ Override
160- public Boolean call () throws Exception {
174+ public Boolean call () {
161175 while (true ) {
162176 for (BlobInfo info : storage .list (bucket ).values ()) {
163177 storage .delete (bucket , info .name ());
@@ -167,7 +181,12 @@ public Boolean call() throws Exception {
167181 return true ;
168182 } catch (StorageException e ) {
169183 if (e .code () == 409 ) {
170- Thread .sleep (500 );
184+ try {
185+ Thread .sleep (500 );
186+ } catch (InterruptedException interruptedException ) {
187+ Thread .currentThread ().interrupt ();
188+ throw e ;
189+ }
171190 } else {
172191 throw e ;
173192 }
0 commit comments