code: public void update(long done, long total, int item) {
  
          if (m_exceptionTrhown) {
              return;
          }
  
          m_bytesRead = done;
          m_contentLength = total;
          m_item = item;
  
          // If an other request has set an exception, it is thrown so the commons-fileupload's
          // parser stops and the connection is closed.
          if (isCanceled()) {
              m_exceptionTrhown = true;
              throw m_exception;
          }
  
          // Just a way to slow down the upload process and see the progress bar in fast networks.
          if ((m_delay > 0) && (done < total)) {
              try {
                  Thread.sleep(m_delay);
              } catch (Exception e) {
                  m_exception = new RuntimeException(e);
              }
          }
          if (getPercent() >= 100) {
              stopWatcher();
          }
      }
docs: Updates the listeners status information and does the following steps:
  <ul>
  <li> returns if there was already thrown an exception before
  <li> sets the local variables to the current upload state
  <li> throws an RuntimeException if it was set in the meanwhile (by another request e.g. user has canceled)
  <li> slows down the upload process if it's configured
  <li> stops the watcher if the upload has reached more than 100 percent
  </ul>
  
  @see org.apache.commons.fileupload.ProgressListener#update(long, long, int)