Уже несколько дней разбираюсь, какого хера наши селф-тесты не всегда проходят. Доковырялся до факта, что если в базу записать прямо локально в коде, а потом локально же прочитать, всё отлично, а если же читать не локально, а через запрос по rabbitMQ (а читаем потом, в моём конкретном случае, в том же сервере и в том же потоке (или нитке?), то записи находит через раз. А если и писать "через запрос", то и записывает в лучшем случае раз из 10. При этом все запросы приходят (у меня все логи записаны).
Теперь, исключительно истины ради, написал класс Health, в котором метод check(String checkName), который вызывает нужный чек. В чеке, разумеется, всё то же чтение той же базы. Как только агента, которому посылаем запрос, заставил выполнять чек перед собственно работой (то же самое чтение) - все тесты проходят. Стописцот раз. А убрать чек - и не проходят.
Для смеху добавлю - база postgres, если это что-то вообще значит.
Не думаю, что мне нужны советы по работе с хибернейтом, но если кто-то просветлён или вдруг постигло озарение, то было бы нехило.
П.С. Ещё обнаружил, что когда убираю задержки в тесте, между куском, который пишет и куском, который читает, то всё "хорошо". Дорогая редакция!!!
П.П.С. Дык небось драйвер-то опять находит какой-нибудь альтернативный "localhost", с ним и беседует вместо моей машинки. И все дела.
(В порядке психологической компенсации, я, кажется, понял, почему хаскель должен быть булев - берём топос, в нём топологию двойного отрицания, и если двойное отрицание оказывается монадой, то топос булев; и я могу доказать, что если всякая монада аппликативна, то двойное отрицание будет монадой. Примерно так.)