code: private static byte[] readInputStream(byte[] buf, InputStream s) throws IOException {
              try {
                  buf = ensureCapacity(buf, s.available());
                  int r = s.read(buf);
                  int bp = 0;
                  while (r != -1) {
                      bp += r;
                      buf = ensureCapacity(buf, bp);
                      r = s.read(buf, bp, buf.length - bp);
                  }
                  return buf;
              } finally {
                  try {
                      s.close();
                  } catch (IOException e) {
                      /* Ignore any errors, as this stream may have already
                       * thrown a related exception which is the one that
                       * should be reported.
                       */
                  }
              }
          }
docs: where