ls -l $NEXT_ROOT/Library/Frameworks/JavaFoundation.framework/Resources/Java
итого 1336
-rw-r--r-- 1 501 80 683353 апр. 24 2008 javafoundation.jar
-rw-r--r-- 1 root root 683353 нояб. 22 08:11 javafoundation.pre2012.jar
Что означает перезапустить? если систему полностью, то не перезапускал, а webobjects остановил, применил патч, запустил.
Я конечно не знаю как написана программа, но не понимаю,(не читал, но осуждаю :) ) как изменение часового пояса и переход на летнее/зимнее время влияет на уменьшение даты на сутки.
Если система работает в Якутии, может тоже выставить Якутское время?
ls показывает, что у вас почему-то не обновился javafoundation.jar — его дата модификации 2008 год, а размер ровно такой же, как у резервной копии.
Попробуйте удалить javafoundation.pre2012.jar и снова установить патч. И выложить сюда все сообщения, которые он выводит.
Перезапустить РУЖЭЛЬ означает зайти в WOMonitor, остановить РУЖЭЛЬ и запустить снова. Рестарт сервиса webobjects тут не помогает — приложение РУЖЭЛЬ выполняется отдельно от этого сервиса.
В яве все даты, на самом деле, это таймстампы. И в этом таймстампе время установлено на 00:00 в текущем поясе. Для дат, полученных их поля базы данных типа "дата", в таймстампе на самом деле хранится 20:00 предыдущего дня по Гринвичу (для Москвы).
Проблема возникла из-за того, что преобразование из БД в таймстамп выполняется библиотекой Явы, а форматирование при выводе на экран — библиотекой WebObjects. Так встроено, я не могу это поменять, но в некоторых местах я явным образом преобразую дату в строку библиотекой Явы. Ява обновилась и знает, что Москва живёт в поясе +4 без переходов на летнее время, а WebObjects не обновлялся уже давно, и считает, что Москва живёт в поясе +3 с переходом на летнее время. Летом всё было хорошо — обе библиотеки жили в поясе +4, а с конца октября получилось, что дата преобразуется по поясу +4 в 20:00 предыдущего дня по гринвичу, а при выводе на экран этот таймстамп интерпретируется по поясу +3 — в 23:00 предыдущего дня. Соответственно, при выводе даты без времени мы видим дату на 1 день раньше, чем должно быть.
Предлагаемый патч обновляет информацию о часовых поясах в библиотеке WebObjects, чтобы она соответствовала действительности.
В Якутии всё работает, потому что у них выставлен не региональный часовой пояс (в котором изменился расклад с летним временем), а универсальный — с привязкой к GMT и без переходов.