ошибка

Hibernate: Ошибка при сохранении объекта NonUniqueObjectException

NonUniqueObjectException: a different object with the same identifier value was already associated with the session

Данная ошибка проявляется в момент вызова saveOrUpdate() у hibernate template. Суть проблемы в том, что в один момент времени у нас есть два разных объекта с одинаковым идентификатором: один в сессии, а второй тот, что мы пытаемся сохранить.

Person p1 = (Person)getHibernateTemplate().get(Person.class, 1);

...

// здесь мы хотим сохранить Person с именем Alex
// и id = 1 (при том, что у нас уже есть объект p1 в сессии)
Person p2 = new Person();
p2.setId(1);
p2.setName("Alex");

hibernateTemplate.saveOrUpdate(p2); // NonUniqueObjectException

Unexpected inconsistency, run fsck manually

Сегодня после удаленного рестарта системы неожиданно сервер отказался подниматься... просто пал смертью храбрых. Добравшись до машины и подключив монитор, увидел в терминале следующее:

Checking root filesystem
/dev/VolGroup00/LogVol00: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY

Ну что поделать, раз просят запустить fsck, так и сделал. Он нашел какие-то ошибки, спросил меня, стоит ли их исправить и велел рестартовать систему. Но увы, машина опять не поднялась и все с той же ошибкой. Проблему решил более грамотный запуск fsck:

[root@localhost ~]# fsck -f -c -y -v /

Ошибка в Drupal: function is deprecated

Если вы недавно обновили на своем сервере PHP до версии 5.3, то на вашем сайте, который работает под CMS Drupal не исключено появление сообщений вида:

Function ereg() is deprecated in includes/file.inc on line 895

К сожалению, на момент написания статьи, drupal официально еще не поддерживал php 5.3. Чтобы обойти эту ошибку, а точнее убрать вывод сообщений, нужно всего ничего - отредактировать файл includes/common.inc, находящийся в вашей директории с друпалом и заменить в нем строку:

if ($errno & (E_ALL ^ E_NOTICE)) {

на

if ($errno & (E_ALL & ~E_NOTICE & ~E_DEPRECATED)) {

У меня этот код был на строке 580.