Program: 198789
Project: 198789
Buggy source:
@SuppressWarnings("String_Node_Str") @Override public View getView(int position,View convertView,ViewGroup parent){
  SimpleMonthView v;
  HashMap<String,Integer> drawingParams=null;
  if (convertView != null) {
    v=(SimpleMonthView)convertView;
    drawingParams=(HashMap<String,Integer>)v.getTag();
  }
 else {
    v=new SimpleMonthView(mContext);
    AbsListView.LayoutParams params=new AbsListView.LayoutParams(AbsListView.LayoutParams.MATCH_PARENT,AbsListView.LayoutParams.MATCH_PARENT);
    v.setLayoutParams(params);
    v.setClickable(true);
    v.setOnDayClickListener(this);
    if (mCalendarTextColors != null) {
      v.setTextColor(mCalendarTextColors);
    }
  }
  if (drawingParams == null) {
    drawingParams=new HashMap<String,Integer>();
  }
 else {
    drawingParams.clear();
  }
  final int currentMonth=position + mController.getMinMonth();
  final int month=currentMonth % 12;
  final int year=currentMonth / 12 + mController.getMinYear();
  int selectedDay=-1;
  if (isSelectedDayInMonth(year,month)) {
    selectedDay=mSelectedDay.get(Calendar.DAY_OF_MONTH);
  }
  v.reuse();
  final int enabledDayRangeStart;
  if (mController.getMinMonth() == month && mController.getMinYear() == year) {
    enabledDayRangeStart=mController.getMinDay();
  }
 else {
    enabledDayRangeStart=1;
  }
  final int enabledDayRangeEnd;
  if (mController.getMaxMonth() == month && mController.getMaxYear() == year) {
    enabledDayRangeEnd=mController.getMaxDay();
  }
 else {
    enabledDayRangeEnd=31;
  }
  drawingParams.put(SimpleMonthView.VIEW_PARAMS_SELECTED_DAY,selectedDay);
  drawingParams.put(SimpleMonthView.VIEW_PARAMS_YEAR,year);
  drawingParams.put(SimpleMonthView.VIEW_PARAMS_MONTH,month);
  drawingParams.put(SimpleMonthView.VIEW_PARAMS_WEEK_START,mController.getFirstDayOfWeek());
  drawingParams.put(SimpleMonthView.VIEW_PARAMS_ENABLEDDAYRANGE_START,enabledDayRangeStart);
  drawingParams.put(SimpleMonthView.VIEW_PARAMS_ENABLEDDAYRANGE_END,enabledDayRangeEnd);
  v.setMonthParams(drawingParams);
  v.invalidate();
  return v;
}

Fixed version (ground truth):
@SuppressWarnings("String_Node_Str") @Override public View getView(int position,View convertView,ViewGroup parent){
  SimpleMonthView v;
  HashMap<String,Integer> drawingParams=null;
  if (convertView != null) {
    v=(SimpleMonthView)convertView;
    drawingParams=(HashMap<String,Integer>)v.getTag();
  }
 else {
    v=new SimpleMonthView(mContext);
    AbsListView.LayoutParams params=new AbsListView.LayoutParams(AbsListView.LayoutParams.MATCH_PARENT,AbsListView.LayoutParams.MATCH_PARENT);
    v.setLayoutParams(params);
    v.setClickable(true);
    v.setOnDayClickListener(this);
    if (mCalendarTextColors != null) {
      v.setTextColor(mCalendarTextColors);
    }
  }
  if (drawingParams == null) {
    drawingParams=new HashMap<String,Integer>();
  }
 else {
    drawingParams.clear();
  }
  final int currentMonth=position + mController.getMinMonth();
  final int month=currentMonth % 12;
  final int year=currentMonth / 12 + mController.getMinYear();
  int selectedDay=-1;
  if (isSelectedDayInMonth(year,month)) {
    selectedDay=mSelectedDay.get(Calendar.DAY_OF_MONTH);
  }
  v.reuse();
  final int enabledDayRangeStart;
  if (mController.getMinMonth() == month && mController.getMinYear() == year) {
    enabledDayRangeStart=mController.getMinDay();
  }
 else {
    enabledDayRangeStart=1;
  }
  final int enabledDayRangeEnd;
  if (mController.getMaxMonth() == month && mController.getMaxYear() == year) {
    enabledDayRangeEnd=mController.getMaxDay();
  }
 else {
    enabledDayRangeEnd=31;
  }
  v.setMonthParams(selectedDay,month,year,mController.getFirstDayOfWeek(),enabledDayRangeStart,enabledDayRangeEnd);
  v.invalidate();
  return v;
}