public Map<TopicPartitionReplica, KafkaFuture<Void>> values() {
        return futures;
    }
Return a map from {@link TopicPartitionReplica} to {@link KafkaFuture} which holds the status of individual
replica movement.

To check the result of individual replica movement, call {@link KafkaFuture#get()} from the value contained
in the returned map. If there is no error, it will return silently; if not, an {@link Exception} will be thrown
like the following:

<ul>
  <li>{@link CancellationException}: The task was canceled.</li>
  <li>{@link InterruptedException}: Interrupted while joining I/O thread.</li>
  <li>{@link ExecutionException}: Execution failed with the following causes:</li>
  <ul>
    <li>{@link ClusterAuthorizationException}: Authorization failed. (CLUSTER_AUTHORIZATION_FAILED, 31)</li>
    <li>{@link InvalidTopicException}: The specified topic name is too long. (INVALID_TOPIC_EXCEPTION, 17)</li>
    <li>{@link LogDirNotFoundException}: The specified log directory is not found in the broker. (LOG_DIR_NOT_FOUND, 57)</li>
    <li>{@link ReplicaNotAvailableException}: The replica does not exist on the broker. (REPLICA_NOT_AVAILABLE, 9)</li>
    <li>{@link KafkaStorageException}: Disk error occurred. (KAFKA_STORAGE_ERROR, 56)</li>
    <li>{@link UnknownServerException}: Unknown. (UNKNOWN_SERVER_ERROR, -1)</li>
  </ul>
</ul>
clients/src/main/java/org/apache/kafka/clients/admin/AlterReplicaLogDirsResult.java