code: private final void _close(boolean forceClosing)
          throws IOException
      {
          byte[] buf = mOutBuffer;
          if (buf != null) {
              mOutBuffer = null;
              if (mOutPtr > 0) {
                  mOut.write(buf, 0, mOutPtr);
                  mOutPtr = 0;
              }
              if (mConfig != null) {
                  mConfig.freeFullBBuffer(buf);
              }
          }
  
          if (forceClosing) {
              mOut.close();
          }
          
          /* Let's 'flush' orphan surrogate, no matter what; but only
           * after cleanly closing everything else.
           */
          int code = mSurrogate;
          if (code > 0) {
              mSurrogate = 0;
              throwIllegal(code);
          }
      }
docs: /*
  //////////////////////////////////////////////////////////
  Internal methods
  //////////////////////////////////////////////////////////