예제 #1
0
파일: Job.java 프로젝트: hancy2013/hydra
 public boolean setState(JobState state, boolean force) {
   JobState curr = getState();
   if (force
       || (isEnabled() && curr.canTransition(state))
       || (!isEnabled() && (state == JobState.IDLE))
       || (!isEnabled() && (state == JobState.ERROR))) {
     // Note dependence on ordering!
     this.state = state.ordinal();
     return true;
   } else if (state != curr) {
     log.warn(
         "[job.setstate] {}job {} cannot transition {} -> {}",
         (disabled) ? "disabled " : "",
         getId(),
         curr,
         state);
     for (StackTraceElement elt : Thread.currentThread().getStackTrace()) {
       log.warn(elt.toString());
     }
     return false;
   }
   return true;
 }