ОК, я наконец понял это.В JavaScript, включенном в calendar.js с RichFaces 3.3.1, есть ошибка.Функция parseDate () разбивает входную строку на части года, месяца и дня, используя регулярное выражение, которое она строит из шаблона даты и списка коротких месяцев (Jan | Feb | Mar ...).Тем не менее, он запускает RE в режиме без учета регистра.Например, часть месяца может вернуться как «MAR».Затем он вызывает функцию getMonthByLabel () для преобразования месяца в число, но сравнение строк выполняется с учетом регистра, поэтому мы получаем ошибку при анализе месяца, которая не вызывает общий сбой функции parseDate (),и все сходит с рельсов.
Похоже, это было исправлено RichFaces 3.3.3.Final, хотя.
3.3.1.GA:
Richfaces.Calendar.getMonthByLabel = function(monthLabel, monthNames) {
var i = 0;
while (i < monthNames.length)
if (monthNames[i] == monthLabel)
return i;
else
i++;
};
3.3.3.Final:
Richfaces.Calendar.getMonthByLabel = function (monthLabel, monthNames) {
var toLowerMonthLabel = monthLabel.toLowerCase();
var i = 0;
while (i < monthNames.length) {
if (monthNames[i].toLowerCase() == toLowerMonthLabel) {
return i;
}
i++;
}
};