Program: 152744
Project: 152744
Buggy source:
@Override public DataFacade<Map<String,List<Lesson>>> getLessons(ViewType view,DateTime startDate,DateTime endDate){
  final String id=getNextID();
  final String method=JSONGetMethods.getTimetable;
  final JSONObject request=new JSONObject();
  final JSONObject params=new JSONObject();
  DataFacade<Map<String,List<Lesson>>> data=new DataFacade<Map<String,List<Lesson>>>();
  Map<String,List<Lesson>> lessonMap=new HashMap<String,List<Lesson>>();
  try {
    params.put("String_Node_Str",view.getId());
    params.put("String_Node_Str",viewTypeMapping.get(view.getClass()));
    String startYear="String_Node_Str" + startDate.getYear();
    String startMonth="String_Node_Str" + startDate.getMonth();
    String startDay="String_Node_Str" + startDate.getDay();
    if (startMonth.length() < 2) {
      startMonth="String_Node_Str" + startMonth;
    }
    if (startDay.length() < 2) {
      startDay="String_Node_Str" + startDay;
    }
    String endYear="String_Node_Str" + endDate.getYear();
    String endMonth="String_Node_Str" + endDate.getMonth();
    String endDay="String_Node_Str" + startDate.getDay();
    if (endMonth.length() < 2) {
      endMonth="String_Node_Str" + endMonth;
    }
    if (endDay.length() < 2) {
      endDay="String_Node_Str" + endDay;
    }
    params.put("String_Node_Str",startYear + startMonth + startDay);
    params.put("String_Node_Str",endYear + endMonth + endDay);
    request.put("String_Node_Str",jsonrpcVersion);
    request.put("String_Node_Str",method);
    request.put("String_Node_Str",id);
    request.put("String_Node_Str",params);
    JSONObject response=getJSONData(request);
    JSONArray result=response.getJSONArray("String_Node_Str");
    lessonMap=jsonParser.jsonToLessonMap(result);
    lessonProcessor.addEmptyDaysToLessonMap(lessonMap,startDate,endDate);
    data.setData(lessonMap);
  }
 catch (  JSONException e) {
    ErrorMessage errorMessage=new ErrorMessage();
    errorMessage.setErrorCode(ErrorCodes.JSON_EXCEPTION);
    errorMessage.setException(e);
    data.setErrorMessage(errorMessage);
  }
catch (  IOException e) {
    ErrorMessage errorMessage=new ErrorMessage();
    errorMessage.setErrorCode(ErrorCodes.IO_EXCEPTION);
    errorMessage.setException(e);
    data.setErrorMessage(errorMessage);
  }
  return data;
}

Fixed version (ground truth):
@Override public DataFacade<Map<String,List<Lesson>>> getLessons(ViewType view,DateTime startDate,DateTime endDate){
  final String id=getNextID();
  final String method=JSONGetMethods.getTimetable;
  final JSONObject request=new JSONObject();
  final JSONObject params=new JSONObject();
  DataFacade<Map<String,List<Lesson>>> data=new DataFacade<Map<String,List<Lesson>>>();
  Map<String,List<Lesson>> lessonMap=new HashMap<String,List<Lesson>>();
  try {
    params.put("String_Node_Str",view.getId());
    params.put("String_Node_Str",viewTypeMapping.get(view.getClass()));
    String startYear="String_Node_Str" + startDate.getYear();
    String startMonth="String_Node_Str" + startDate.getMonth();
    String startDay="String_Node_Str" + startDate.getDay();
    if (startMonth.length() < 2) {
      startMonth="String_Node_Str" + startMonth;
    }
    if (startDay.length() < 2) {
      startDay="String_Node_Str" + startDay;
    }
    String endYear="String_Node_Str" + endDate.getYear();
    String endMonth="String_Node_Str" + endDate.getMonth();
    String endDay="String_Node_Str" + endDate.getDay();
    if (endMonth.length() < 2) {
      endMonth="String_Node_Str" + endMonth;
    }
    if (endDay.length() < 2) {
      endDay="String_Node_Str" + endDay;
    }
    params.put("String_Node_Str",startYear + startMonth + startDay);
    params.put("String_Node_Str",endYear + endMonth + endDay);
    request.put("String_Node_Str",jsonrpcVersion);
    request.put("String_Node_Str",method);
    request.put("String_Node_Str",id);
    request.put("String_Node_Str",params);
    JSONObject response=getJSONData(request);
    JSONArray result=response.getJSONArray("String_Node_Str");
    lessonMap=jsonParser.jsonToLessonMap(result);
    lessonProcessor.addEmptyDaysToLessonMap(lessonMap,startDate,endDate);
    data.setData(lessonMap);
  }
 catch (  JSONException e) {
    ErrorMessage errorMessage=new ErrorMessage();
    errorMessage.setErrorCode(ErrorCodes.JSON_EXCEPTION);
    errorMessage.setException(e);
    data.setErrorMessage(errorMessage);
  }
catch (  IOException e) {
    ErrorMessage errorMessage=new ErrorMessage();
    errorMessage.setErrorCode(ErrorCodes.IO_EXCEPTION);
    errorMessage.setException(e);
    data.setErrorMessage(errorMessage);
  }
  return data;
}