powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Ошибка в java.util.Date при десериализации
6 сообщений из 6, страница 1 из 1
Ошибка в java.util.Date при десериализации
    #37903709
Чёрный Медведь
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ещё раз доброго времени суток!
Имеется следующий процесс:
1) Создание некорого экземпляра класса и заполнение его полей из БД.
2) Сериализация этого экземпляра и пересылка его по сети посредством ObjectOutputStream таким вот образом

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
    // создаём поток для сериализованного талона
    ObjectOutputStream outputStream = new ObjectOutputStream(urlConnection.getOutputStream());
    
    // коннектимся
    urlConnection.connect();
    // сериализуем талон и отправляем его на терминал
    outputStream.writeObject(ticket);
    outputStream.flush();
    outputStream.close();



3) На другом конце соединения читаем прибывший поток и десериализуем его.

Код: java
1.
2.
3.
    ObjectInputStream inputStream = new ObjectInputStream(baseRequest.getInputStream());
    // десериализуем талон
    Ticket ticket = (Ticket) inputStream.readObject();



Суть проблемы в том, что одно из полей типа Date на 1 день отличается от того же поля исходного объекта. Как так происходит? Заранее спасибо за конструктивную помощь.
...
Рейтинг: 0 / 0
Ошибка в java.util.Date при десериализации
    #37903722
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Часовые пояса разные?
...
Рейтинг: 0 / 0
Ошибка в java.util.Date при десериализации
    #37903724
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Откройте класс java.util.Date и посмотрите всё что касается метода normalize(). Не обойдите вниманием методы writeObject\readObject
...
Рейтинг: 0 / 0
Ошибка в java.util.Date при десериализации
    #37903776
Чёрный Медведь
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz, спасибо за наводку. По коду я понял примерно следующее:
1) Фактически при сериализации/десериализации Date используется long. Т.е. если поток по сети передался без ошибок, а так оно и есть, то причина моей проблемы явно где-то в другом месте.
2) Возвращаемое Normalize() значение зависит от TimeZone, но это не очень проясняет ситуацию, так как на разных машинах часовые пояса совпадают.

Если Вы знаете в чём проблема, пожалуйста, отпишитесь, т.к. у меня нет тонны свободного времени в данный период чтобы по исходникам найти решение. Заранее спасибо
...
Рейтинг: 0 / 0
Ошибка в java.util.Date при десериализации
    #37903783
Чёрный Медведь
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Или на тех машинах, где этот глюк проявился надо Timezone Updater Tool использовать?
...
Рейтинг: 0 / 0
Ошибка в java.util.Date при десериализации
    #37909408
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JDK/JRE до Java 6 update 20 включительно глючит с учётом сдвига на летнее время для некоторых часовых поясов.
Установка патчей на часовые пояса для системы и tzupdater для jdk/jre - обязательны при любом раскладе.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Ошибка в java.util.Date при десериализации
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]