docs: public void finish() {
          if (com.ibm.ejs.ras.TraceComponent.isAnyTracingEnabled()&&logger.isLoggable (Level.FINE))  //306998.15
              logger.entering(CLASS_NAME,"finish","["+this+"]");
  
          if (!isCommitted()) {
              commit();
          }
  
          // flush the OutputStream and Writer
          try {
              flushBuffer(false);
              _rawOut.close();
          }
          catch (IOException e) {
              // Don't want to report errors on early browser closes
              if (com.ibm.ejs.ras.TraceComponent.isAnyTracingEnabled()&&logger.isLoggable (Level.FINE)) {  //306998.15
                  logger.logp(Level.FINE, CLASS_NAME,"finish", "Servlet.Exception:.Error.while.finishing.response", e);
              }
          }
          finally {
              _rawOut.reset();
              // PK29451 - remove call to clearHeaders(). Implementation of clearHeaders() was empty,
              // which this method relies on, but has been implemented in PK29451 to make reset() work.
              // _response.clearHeaders();
              
              cleanupFromFinish();
              // LIBERTY _bufferedOut.reset();
              _bufferedWriter.reset();
              // LIBERTY this._responseBuffer = null;
          }
  
          resetState();
  
          if (com.ibm.ejs.ras.TraceComponent.isAnyTracingEnabled()&&logger.isLoggable (Level.FINE))  //306998.15
              logger.exiting(CLASS_NAME,"finish");
      }