Exemplo n.º 1
0
  private void checkTasks(JobInfo info) {
    if (keep(info)) {
      TaskInfo tinfo = info.getTaskInfo();
      if (tinfo != null) {
        JobTreeElement[] toBeRemoved = null;
        boolean fire = false;
        JobTreeElement element = (JobTreeElement) tinfo.getParent();
        synchronized (keptjobinfos) {
          if (element == info && !keptjobinfos.contains(tinfo)) {
            toBeRemoved = findJobsToRemove(element);
            keptjobinfos.add(tinfo);
            finishedTime.put(tinfo, new Long(System.currentTimeMillis()));
          }
        }

        if (toBeRemoved != null) {
          for (int i = 0; i < toBeRemoved.length; i++) {
            remove(toBeRemoved[i]);
          }
        }

        if (fire) {
          Object l[] = getListeners();
          for (int i = 0; i < l.length; i++) {
            KeptJobsListener jv = (KeptJobsListener) l[i];
            jv.finished(info);
          }
        }
      }
    }
  }