code: public void flush()
          throws IOException
      {
          try
          {
              if (!_commited)
              {
                  _commited=true;
                  if (_commitObserver!=null)
                      _commitObserver.outputNotify(this,OutputObserver.__COMMITING,null);
              }
              
              wrapBuffer();
              
              // Add headers
              if (_httpMessageWriter.size()>0)
              {
                  prewrite(_httpMessageWriter.getBuf(),0,_httpMessageWriter.size());
                  _httpMessageWriter.resetWriter();
              }
              
              if (size()>0)
                  writeTo(_out);
          }
          catch (IOException e)
          {
              throw new EOFException(e);
          }
          finally
          {
              reset(_preReserve);
          }
      }
docs: This implementation calls the commitObserver on the first flush since
  construction or reset.