code: public synchronized void mark(int limit)
          throws IllegalArgumentException
      {
          if (limit>_buf.length)
          {
              byte[] new_buf=new byte[limit];
              System.arraycopy(_buf,_pos,new_buf,_pos,_avail-_pos);
              _buf=new_buf;
              if (_byteBuffer!=null)
                  _byteBuffer.setBuffer(_buf);
          }
          _mark=_pos;
      }
docs: /* ------------------------------------------------------------