private void SimulateFailure(int onIteration)
 {
     if (_iterations == onIteration &&
         _taskIdsToFail.FirstOrDefault(e => _taskId.StartsWith(e)) != null &&
         _taskIdsToFail.FirstOrDefault(e => _taskId.Equals(e + _maxRetryInRecovery)) == null &&
         _retryIndex < _totalNumberOfForcedFailures)
     {
         Logger.Log(Level.Warning,
                    "Simulating {0} failure for taskId {1}",
                    FailureType.IsEvaluatorFailure(_failureType) ? "evaluator" : "task",
                    _taskId);
         if (FailureType.IsEvaluatorFailure(_failureType))
         {
             // simulate evaluator failure
             Environment.Exit(1);
         }
         else
         {
             // simulate task failure
             throw new ArgumentNullException("Simulating task failure");
         }
     }
 }