Of course this isn't using non blocking io to write to the output stream.  To do that you'd need to use WriteListener, and redeem the future returned to the enumerator on each fold either when onWritePossible is invoked, or if after writing to it, ServletOutputStream.isReady returns true.