docs: public void write(@Sensitive String str, int off, int len) throws IOException {
          if (len < 0) { throw new IndexOutOfBoundsException(); }
          synchronized (lock) {
              if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
              { // 306998.15
                  Tr.debug(tc, "write(String) total: " + total + " len: " + len + " limit: " + limit + " buf.length: " + buf.length + " count: " + count);
              }
              if (!_hasWritten && obs != null)
              {
                  _hasWritten = true;
                  obs.alertFirstWrite();
              }
  
              if (limit > -1)
              {
                  if (total + len > limit)
                  {
                      len = (int)(limit - total);
                      except = new WriteBeyondContentLengthException();
                  }
              }
  
              if (len >= buf.length)
              {
                  if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
                  { // 306998.15
                      Tr.debug(tc, "write(String), len >= buf.length");
                  }
                  response.setFlushMode(false);
                  flushChars();
                  total += len;
                  writeOut(str, off, len);
                  // out.flush(); moved to writeOut 277717 SVT:Mixed information shown on
                  // the Admin Console WAS.webcontainer
                  response.setFlushMode(true);
                  check();
                  return;
              }
              int avail = buf.length - count;
              if (len > avail)
              {
                  if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
                  { // 306998.15
                      Tr.debug(tc, "write(String), len >= avail");
                  }
                  response.setFlushMode(false);
                  flushChars();
                  response.setFlushMode(true);
              }
              str.getChars(off, off+len, buf, count);
              count += len;
              total += len;
              check();
          }
      }