- syncEndpoints(dataBefore, Delete);
- syncEndpoints(dataAfter, Create);
- result = Futures.immediateFuture(Optional.empty());
+ final ListenableFuture<Optional<Status>> deletionResult = syncEndpoints(dataBefore, Delete);
+ creationResult = Futures.transform(deletionResult, new AsyncFunction<Optional<Status>, Optional<Status>>() {
+ @Nonnull
+ @Override
+ public ListenableFuture<Optional<Status>> apply(@Nonnull Optional<Status> deletionResult) throws Exception {
+ if (deletionResult.isPresent()) {
+ // Wait till task is done. Result is not used, delete case has no status
+ deletionResult.get();
+ }
+ return syncEndpoints(dataAfter, Create);
+ }
+ });