/** Executes range(s) damage and cleans range queue. */
    public synchronized void run() {
      if (component != null) {
        TextUI mapper = component.getUI();
        if (mapper != null && lastDoc == component.getDocument()) {
          // the Document should be the same to properly
          // display highlights
          int len = p0.size();
          for (int i = 0; i < len; i++) {
            mapper.damageRange(component, p0.get(i).getOffset(), p1.get(i).getOffset());
          }
        }
      }
      p0.clear();
      p1.clear();

      // release reference
      lastDoc = null;
    }