Using the Java API restoring snapshot

Hi

I'm using the Java API to restore a snapshot of several indexes in my cluster. I made the next call

  RestoreSnapshotResponse  res =
                client.admin().cluster().restoreSnapshot(
                        Requests.restoreSnapshotRequest(
                                repository, snapshotName
                        ).indices(indices).includeGlobalState(false).waitForCompletion(true)
                ).actionGet();

This code blocks until the restore has been done. I have some question about the RestoreSnapshotResponse object, because I can't find documentation about the Java API

  1. Is it possible that the restoreSnapshot return a null response?. I've read the source code of Elasticsearch and sometime this call can return null. But I don't know if this null is an error or only return null when the API is called with waitForCompletion(false)
  2. What exceptions can be launched by the restoreSnapshot? Is there any documentation I can read about the API call?
  3. Is it possible that RestoreSnapshotResponse.getRestoreInfo() returns a null reference? Or if RestoreSnapshotResponse is not null, RestoreSnapshotResponse.getRestoreInfo() returns a not null value?

If I understand the code in Elasticsearch if I called with waitForCompletion(true), those methods never return a null value.

Thanks for the help.
Carlos