When you try to create Docker client concurrently it's possible to get RuntimeException in getDefaultDockerCmdExecFactory method when one thread has already checked that iterator is not empty, and other calls serviceLoader.reload(). First thread reuses invalidated iterator and fails.