/** Constructor for ReduceTask */
 public TaskInProgress(
     JobID jobid,
     String jobFile,
     int numMaps,
     int partition,
     JobConf conf,
     JobInProgressTraits job,
     int numSlotsRequired) {
   this.jobFile = jobFile;
   this.numMaps = numMaps;
   this.partition = partition;
   this.job = job;
   this.conf = conf;
   this.maxSkipRecords = SkipBadRecords.getReducerMaxSkipGroups(conf);
   this.numSlotsRequired = numSlotsRequired;
   setMaxTaskAttempts();
   init(jobid);
 }
 /** Constructor for MapTask */
 public TaskInProgress(
     JobID jobid,
     String jobFile,
     RawSplit rawSplit,
     JobConf conf,
     JobInProgressTraits job,
     int partition,
     int numSlotsRequired) {
   this.jobFile = jobFile;
   this.rawSplit = rawSplit;
   this.job = job;
   this.conf = conf;
   this.partition = partition;
   this.maxSkipRecords = SkipBadRecords.getMapperMaxSkipRecords(conf);
   this.numSlotsRequired = numSlotsRequired;
   setMaxTaskAttempts();
   init(jobid);
 }
 /** Get whether to start skipping mode. */
 private boolean startSkipping() {
   if (maxSkipRecords > 0 && numTaskFailures >= SkipBadRecords.getAttemptsToStartSkipping(conf)) {
     return true;
   }
   return false;
 }