Good catch. It didn't used to be a ConcurrentLinkedQueue which is why the copy was done. Now that it is concurrent I agree the copy is not necessary, but tbh I think I prefer this code:

for (Runnable task: toDeployOnQuorum) {
  // do something
}
toDeployOnQuorum.clear();

To this code:

for (;;) {
    Runnable task = toDeployOnQuorum.poll();
    if (task == null) {
        break;
    } 
    // Do something   
}

It's simpler and clearer imho.