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);
          }
        }
      }
    }
  }
Exemplo n.º 2
0
  /** Add given Job to list of kept jobs. */
  private void add(JobInfo info) {
    boolean fire = false;

    synchronized (keptjobinfos) {
      if (!keptjobinfos.contains(info)) {
        keptjobinfos.add(info);

        long now = System.currentTimeMillis();
        finishedTime.put(info, new Long(now));

        Object parent = info.getParent();
        if (parent != null && !keptjobinfos.contains(parent)) {
          keptjobinfos.add(parent);
          finishedTime.put(parent, new Long(now));
        }

        fire = true;
      }
    }

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