code: @Override
      public T get() throws InterruptedException, ExecutionException {
          // when get returns without an exception the synchronisation is complete
          // and else the exception will be thrown
          if (isInitialized()) {
              synchronisationFuture.get();
          }
          return internalFuture.get();
      }
docs: {@inheritDoc}
  @return {@inheritDoc}
  @throws InterruptedException {@inheritDoc}
  @throws ExecutionException {@inheritDoc}