Ваадинская сетка "Метод сравнения нарушает свой общий контракт!" ошибка
Я использую Vaadin 7.7.3 с сеткой, которая представляет собой таблицу со списком пользователей. У меня есть несколько столбцов: имя, фамилия, адрес электронной почты, идентификатор пользователя,....
В некоторых случаях я выполняю сортировку, выполняя этот код:
sort(Sort.by(LASTNAME).then(FIRSTNAME).then(EMAIL));
На моей тестовой машине работает нормально. Но когда я тестирую его на рабочем сервере, запускает Comparison method violates its general contract!
, Я понимаю, что означает эта ошибка, по крайней мере, мне ясно, сортирую ли я список элементов.
Дополнительная информация:
Эти три поля определены как строки.
Если я запускаю код на своем локальном компьютере, он работает правильно, и исключение никогда не генерируется. Но в производстве, каждый раз, когда я сортирую эту сетку, запускается исключение.
Параметры сортировки базы данных одинаковы как на производственном, так и на локальном компьютере.
Одни и те же данные в обеих базах данных (используя mysqldump, я скопировал данные с производства на локальную машину и все еще работает нормально).
Что может вызвать эту проблему при сравнении строк?
Если данные в обоих приложениях одинаковы, может ли это исключение быть вызвано внешним источником? Что-то вроде конфигурации базы данных, параметров сортировки, версии JVM,...