diff --git a/azure-client-runtime/src/main/java/com/microsoft/azure/AzureClient.java b/azure-client-runtime/src/main/java/com/microsoft/azure/AzureClient.java index bdf77f711b..6969ed99fb 100644 --- a/azure-client-runtime/src/main/java/com/microsoft/azure/AzureClient.java +++ b/azure-client-runtime/src/main/java/com/microsoft/azure/AzureClient.java @@ -17,6 +17,7 @@ import rx.Single; import rx.exceptions.Exceptions; import rx.functions.Func1; +import rx.functions.Func2; import rx.schedulers.Schedulers; import java.io.IOException; @@ -248,6 +249,19 @@ public Observable call(Void aVoid) { } }); } + }).retryWhen(new Func1, Observable>() { + @Override + public Observable call(Observable observable) { + return observable.zipWith(Observable.range(1, 5), new Func2() { + @Override + public Integer call(Throwable throwable, Integer integer) { + if (throwable instanceof CloudException) { + throw Exceptions.propagate(throwable); + } + return integer; + } + }); + } }).takeUntil(new Func1, Boolean>() { @Override public Boolean call(PollingState tPollingState) { @@ -469,6 +483,19 @@ public Observable call(Void aVoid) { } }); } + }).retryWhen(new Func1, Observable>() { + @Override + public Observable call(Observable observable) { + return observable.zipWith(Observable.range(1, 5), new Func2() { + @Override + public Integer call(Throwable throwable, Integer integer) { + if (throwable instanceof CloudException) { + throw Exceptions.propagate(throwable); + } + return integer; + } + }); + } }).takeUntil(new Func1, Boolean>() { @Override public Boolean call(PollingState tPollingState) {