code: protected void init() {
          // create a synchronisation task which makes sure that the change requested by
          // the internal future has at one time been synchronized to the remote
          synchronisationFuture = GlobalCachedExecutorService.submit(() -> {
              dataProvider.addDataObserver(notifyChangeObserver);
              try {
                  dataProvider.waitForData();
                  T result = internalFuture.get();
                  waitForSynchronization(result);
              } catch (CouldNotPerformException ex) {
                  ExceptionPrinter.printHistory("Could not sync with internal future!", ex, logger);
              } finally {
                  dataProvider.removeDataObserver(notifyChangeObserver);
              }
              return null;
          });
      }
docs: Start the internal synchronization task.