Obter o último dia do mês

Para obter a última data do mês, escrevi esta função

/**
 * @param month integer value of month
 * @param year integer value of month
 * @return last day of month in MM/dd/YYYY format
 */
private static String getDate(int month, int year) {
    Calendar calendar = Calendar.getInstance();
    // passing month-1 because 0-->jan, 1-->feb... 11-->dec
    calendar.set(year, month - 1, 1);
    calendar.set(Calendar.DATE, calendar.getActualMaximum(Calendar.DATE));
    Date date = calendar.getTime();
    DateFormat DATE_FORMAT = new SimpleDateFormat("MM/dd/YYYY");
    return DATE_FORMAT.format(date);
}

para todas as entradas, está funcionando bem, com uma exceção quando o mês é dezembro, ou seja, getDate (12, 2012) retorna 31/12/2013, mas deve retornar 31/12/2012. Por favor, explique também o comportamento e a solução.

questionAnswers(9)

yourAnswerToTheQuestion