Ваадинская сетка "Метод сравнения нарушает свой общий контракт!" ошибка

Я использую Vaadin 7.7.3 с сеткой, которая представляет собой таблицу со списком пользователей. У меня есть несколько столбцов: имя, фамилия, адрес электронной почты, идентификатор пользователя,....

В некоторых случаях я выполняю сортировку, выполняя этот код:

sort(Sort.by(LASTNAME).then(FIRSTNAME).then(EMAIL));

На моей тестовой машине работает нормально. Но когда я тестирую его на рабочем сервере, запускает Comparison method violates its general contract!, Я понимаю, что означает эта ошибка, по крайней мере, мне ясно, сортирую ли я список элементов.

Дополнительная информация:

  • Эти три поля определены как строки.

  • Если я запускаю код на своем локальном компьютере, он работает правильно, и исключение никогда не генерируется. Но в производстве, каждый раз, когда я сортирую эту сетку, запускается исключение.

  • Параметры сортировки базы данных одинаковы как на производственном, так и на локальном компьютере.

  • Одни и те же данные в обеих базах данных (используя mysqldump, я скопировал данные с производства на локальную машину и все еще работает нормально).

Что может вызвать эту проблему при сравнении строк?

Если данные в обоих приложениях одинаковы, может ли это исключение быть вызвано внешним источником? Что-то вроде конфигурации базы данных, параметров сортировки, версии JVM,...

0 ответов

Другие вопросы по тегам