code: public synchronized ArrayList<ReduceTaskStatistics> 
                                  getReduceTaskList (Enum reduceTaskSortKey, KeyDataType dataType) {
      
      /* 
       * If reduceTaskSortKey is null then use the task id as a key.
       */
      if (reduceTaskSortKey == null) {
        reduceTaskSortKey = ReduceTaskKeys.TASK_ID;
      }
      
      if (this._sortedReduceTaskListsByKey.get(reduceTaskSortKey) == null) {
        ArrayList<ReduceTaskStatistics> newList = (ArrayList<ReduceTaskStatistics>)this._reduceTaskList.clone();
        this._sortedReduceTaskListsByKey.put(reduceTaskSortKey, this.sortReduceTasksByKey(newList, reduceTaskSortKey, dataType));
      } 
      
      return this._sortedReduceTaskListsByKey.get(reduceTaskSortKey);  
    }
docs: /*
  @return reduceTaskList : ArrayList of ReduceTaskStatistics
  @param reduceTaskSortKey : Specific counter key used for sorting the task list
  @param dataType : indicates the data type of the counter key used for sorting
  If sort key is null then, by default reduce tasks are sorted using task ids.