Why should we call delegate.flush if super.flush fails?