Integration testing transactions and optimistic locking with Spring and JUnit

I did some badness today.

I wanted an integration test to check to see if my @Transactional method actually did rollback on an optimistic lock failure. It’s a pretty business critical method so I wanted to be sure that the whole @Transactional and @Version annotation voodoo actually works.

The approach I took was to inject, what I called a “slowRepository” into the object with the @Transactional method. The slowRepository is just a mockito mock of the object which “answers” (using “thenAnswer”) to the “findBy…” with some custom code.

The idea is that at some point during the @Transactional method the slowRepository is called and the “answer” code is invoked. In the test, the answer code follows along the lines of:

1. Grab the data it requires from the (not slow) repository (the repository the slowRepository is mocking)
2. Switch back the slowRepository for the not slow repository
3. Invoke the @Transactional method again on a separate thread
4. Sleep for a bit
5. Wake up and return the data from step 1

The @Transactional call on the separate thread completes and commits before slowRepository wakes up. When it does, slowRepository returns stale data and the @Transactional method then fails accordingly.

The problem I encountered was using the setters for my @Autowired dependencies on the bean with the @Transactional method. I needed to use the setters so that I could switch in and out the slowRepository, but couldn’t because Spring AOP proxies are implementations of an interface, not subclasses (by default – yes I realise you can get Spring to proxy the target class using CGLIB). I found this blog post which explains how to get at the target object behind a Spring proxy. I converted it to Scala:

…which is pretty ninja.

22,827 thoughts on “Integration testing transactions and optimistic locking with Spring and JUnit

  1. Неделю не появлялся не отвечал на звонки. Мне ответили: «Выезжаем через час». Через 2 часа он уже сидел и пил чай. выезд нарколога в Москве — это вернуло его к жизни. Анонимно без учёта. врач выводящий из запоя https://vyvod-iz-zapoya-v-moskve-rwt.ru Сохраните поделитесь не потеряйте для столицы. Звоните помогайте спасайте. Вывод из запоя — это реальность и она работает

  2. Мы долго не хотели признавать что это болезнь. Мой брат всегда был уверенным в себе человеком. Мы пробовали искать выход читали форумы звонили в разные клиники. лечение алкоголизма в клинике — то что вернуло брата к жизни. Его госпитализировали врачи провели полное обследование. Мы снова узнавали в нём того брата которого любили. Никто из соседей и коллег не узнал. Всё было честно и прозрачно. Мы снова вместе и счастливы. запой спб запой спб Там все контакты и условия для нашего города. Промедление может стоить слишком дорого. Сделайте первый шаг к выздоровлению уже сегодня — он может изменить всё

  3. Врач учитывает симптомы риски анамнез и семейную ситуацию чтобы предложить подходящую программу. Ознакомиться с деталями – https://1.vyvod-iz-zapoya-moskva011.ru/

  4. Подготовка может занять от нескольких минут на консультацию до более длительного периода если необходимо полное восстановление после тяжелой выпивки. Решение о проведении процедуры принимает врач после оценки текущего состояния. Такой порядок снижает риск осложнений и помогает подобрать безопасное лечение алкоголизма. Подробнее – kodirovanie-moskva

  5. И бороться с ней в одиночку почти невозможно. Сначала это казалось способом справиться с болью. Но всё было бесполезно — она срывалась снова и снова. Где помогают а не просто «ставят на учёт». Наркологическая клиника — то что вернуло её к нормальной жизни. Назначили курс капельниц психотерапию и реабилитацию. Нашла новую работу восстановила отношения с детьми. Всё прошло анонимно. Мы заплатили за полный курс. Она работает общается с детьми строит планы. стационарное лечение алкоголизма санкт петербург https://alkogolizm.narkologicheskaya-klinika-sankt-peterburg14.ru По ссылке — подробная информация для Санкт-Петербурга. Звоните узнавайте действуйте. Путь к выздоровлению начинается с первого шага — сделайте его сегодня

  6. Когда он лежал бледный с трясущимися руками и не мог встать. А он не хотел он просто лежал и молчал. Врач приехал осмотрел брата поставил капельницу. капельница на дому — это дало нам второй шанс. Цена оказалась ниже чем я думал. прокапаться на дому от алкоголя цена прокапаться на дому от алкоголя цена Там все контакты и цены для МСК. Если ваш близкий в запое — не ждите. Капельница от запоя — это реальная помощь которая работает

  7. Заявку можно оставить в любое время специалист быстро сориентирует по дальнейшим действиям. Получить больше информации – вызвать нарколога капельница от запоя

  8. Когда его глаза были мутными а руки тряслись. А он не хотел он просто лежал и молчал. Позвонил объяснил ситуацию и мне сказали: «Приедем через час». выезд нарколога в Красноярске — это дало нам второй шанс. Поставил капельницу ввёл нужные препараты. Анонимно без учёта без лишних вопросов. помощь при запое на дому https://vyvod-iz-zapoya-v-krasnoyarske.ru Там все контакты и цены для нашего города. Если ваш близкий в запое — не ждите. Вывод из запоя — это реальность и она работает

  9. Я понял: ещё немного — и я потеряю его навсегда. Я был в отчаянии не знал что делать. Случайно наткнулся на сайт где предлагали вывод из запоя на дому. выезд нарколога в Москве — это дало нам второй шанс. Поставил капельницу ввёл нужные препараты. Анонимно без учёта без лишних вопросов. запой нарколог на дом https://vyvod-iz-zapoya-v-moskve-bvc.ru Там все контакты и цены для столицы. Каждый час на счету. Вывод из запоя — это реальность и она работает

  10. Запой сопровождается повторным приемом спиртного в течение нескольких дней и выраженной абстиненцией при попытке остановиться. Если человек употребляет алкоголь постоянно новая доза временно облегчает похмелье но усиливает токсическую нагрузку на организм. Врач оценивает тяжесть состояния и решает допустимо ли лечение дома. Чем дольше продолжается запой тем выше риск нарушений работы сердца печени сосудов головного мозга и других внутренних органов. Получить больше информации – 1.vyvod-iz-zapoya-balashiha5.ru/

  11. Мы поняли: нужна помощь психиатра но везти его в клинику было невозможно. Тогда я нашёл выход — вызвать врача на дом. Позвонил в службу где работают психиатры с выездом на дом. консультация на дому — это вернуло спокойствие в дом. Дал рекомендации нам родственникам. Анонимно без лишней бюрократии. Мы снова можем дышать спокойно. консультация психиатра на дому https://psikhiatr-na-dom-v-moskve-dzf.ru Там все контакты и условия для нашего города. Это просто безопасно и действительно работает.

  12. Пришло время перемен — что хочется больше пространства. Хотели всё сами — что нужны чертежи и расчёты. Стали изучать вопрос — что лучше довериться профессионалам. Обратились к спецам — проектирование и узаконивание в нашем городе. И в Мосжилинспекцию подали — всё под ключ. Цены адекватные. Всё по документам. согласование перепланировки квартиры цена https://moskva.pereplanirovka-kvartir-byn.ru Сохраните поделитесь не потеряйте для столицы. Бюрократия не ждёт. И наслаждайтесь обновлённой квартирой

  13. Никто в нашей семье не думал что мы столкнёмся с этим. Мой брат всегда был душой компании. Мы поняли что без профессиональной помощи не обойтись. Мы позвонили поговорили с врачом. лечение алкоголизма в стационаре — то что вернуло брата к жизни. И через месяц мы увидели результат. Он вышел из клиники совершенно другим человеком. Никто не узнал о его лечении. Цена была адекватной особенно по сравнению с тем что мы могли потерять. Он работает занимается спортом строит планы. наркологическая клиника в москве цена https://alkogolizm.narkologicheskij-staczionar-moskva-guj.ru Это может пригодиться в трудный момент для районов. Промедление может стоить слишком дорого. Не бойтесь просить о помощи — это первый шаг к выздоровлению

  14. Мы уже думали звонить в морг. Я позвонил объяснил ситуацию. Не верил что такое возможно. срочная детоксикация — это спасло человека. Анонимно без учёта. вывод из запоя с выездом на дом https://vyvod-iz-zapoya-v-krasnoyarske-lno.ru Сохраните поделитесь не потеряйте для нашего города. Если ваш близкий в запое — не ждите. Вывод из запоя — это реальность и она работает

  15. Когда она перестала узнавать внуков а по ночам вставала и бродила по квартире. Мы были в отчаянии не знали что делать. Соседка рассказала что есть психиатры которые приезжают на дом. консультация на дому — это было именно то что нам нужно. Объяснил как общаться с ней и как предотвращать кризисы. Мы снова можем спать и не бояться за неё. Рекомендую всем кто столкнулся с подобной ситуацией. вызов психиатрической помощи на дом вызов психиатрической помощи на дом Сохраните поделитесь не потеряйте для Москвы. Это просто безопасно и действительно помогает.

  16. Казалось что он просто не может остановиться. А потом просто ушёл в запой и перестал выходить из дома. И мы уже почти сдались когда нам посоветовали одну клинику в Санкт-Петербурге. круглосуточный стационар в СПб — то что спасло нашу семью. Его госпитализировали врачи провели полное обследование. Это было невероятное облегчение. Мы сказали что он был в санатории. Никаких скрытых платежей. И я знаю что это благодаря клинике. платная наркологическая помощь https://alkogolizm.narkologicheskaya-klinika-v-spb14.ru Это может спасти жизнь для Санкт-Петербурга. Звоните узнавайте действуйте. Сделайте первый шаг к выздоровлению уже сегодня — он может изменить всё

  17. После первичной диагностики начинается активная фаза медикаментозного вмешательства. Препараты вводятся капельничным методом для быстрого снижения уровня токсинов в крови нормализации обменных процессов и стабилизации работы внутренних органов таких как печень почки и сердце. Получить дополнительные сведения – нарколог капельница на дом мариуполь

  18. Принимаем заявки круглосуточно уточняем состояние и подбираем безопасный формат помощи. Дополнительная информация – kodirovanie-ot-alkogolizma-metody

  19. Но зависимость оказывается сильнее. Но очень быстро переросло в ежедневный запой. Она перестала следить за собой бросила работу. Я позвонила мне всё подробно объяснили. Наркологический стационар — тем что действительно сработало. Детоксикация психотерапия работа с психологом. Это было невероятное облегчение для всей семьи. Только результат и покой в семье. Никаких скрытых платежей. Она работает общается с детьми строит планы. цена вывода из запоя в стационаре https://zapoy.narkologicheskij-staczionar-moskva-vkn.ru Сохраните поделитесь не потеряйте для районов. Позвоните узнайте подробности. Не бойтесь сделать первый шаг — он может изменить всё

  20. Я понял: нужно срочно вызывать врача. А он не хотел он просто лежал и молчал. Врач приехал осмотрел брата поставил капельницу. Капельница от запоя — это было единственное что помогло. Цена оказалась ниже чем я думал. капельница от запоя на дому круглосуточно капельница от запоя на дому круглосуточно Пригодится если случится беда для нашего города. Звоните помогайте спасайте. Капельница от запоя — это реальная помощь которая работает

  21. Что уговоры и скандалы помогут. Мы не узнавали его — он стал агрессивным апатичным. Где не просто «кодируют» а лечат комплексно. лечение алкоголизма в клинике — то что вернуло его к жизни. Каждый день он работал над собой под контролем специалистов. Это было настоящее чудо. Никто из соседей и коллег не узнал. Всё честно и прозрачно. И я знаю что это благодаря клинике. стационарное лечение алкоголизма санкт петербург https://zapoy.narkologicheskaya-klinika-sankt-peterburg14.ru По ссылке — подробная информация для Питера. Если вы столкнулись с похожей ситуацией — не ждите. Начните путь к выздоровлению уже сегодня — ваш близкий заслуживает второго шанса

  22. Алкоголизм — это болезнь которая не щадит никого. Моя сестра начала пить после развода. И каждый раз становилось только хуже. Читали отзывы звонили сравнивали условия. стационар для лечения зависимостей — то что вернуло её к нормальной жизни. Она работала с психологом каждый день. Она стала спокойнее начала улыбаться. Всё прошло анонимно. Всё было честно и прозрачно. Она работает общается с детьми строит планы. наркологическая помощь клиника https://alkogolizm.narkologicheskaya-klinika-sankt-peterburg14.ru Там все контакты и условия для нашего города. Помощь есть и она рядом. Путь к выздоровлению начинается с первого шага — сделайте его сегодня

  23. Когда я понял что мой брат больше не может справляться сам. И каждый раз всё глубже уходил в зависимость. Мы нашли наркологическую клинику в области где работают с такими случаями. центр наркологии — это вернуло брата к жизни. Он прошёл курс лечения и уже несколько месяцев держится. Это был последний шаг но он оказался правильным. наркологическая служба наркологическая служба Это может спасти жизнь для нашего города. Если ваш близкий не может справиться с зависимостью — наркологическая клиника может стать шансом на новую жизнь. Наркологическая клиника — это реальное решение проблемы

  24. Обращение в частную наркологическую клинику проводится анонимно. Информация о пациенте диагнозе проводимых процедурах и факте обращения защищена политикой конфиденциальности. Сотрудники соблюдают требования к обработке персональных данных и медицинской тайне. Получить первичную консультацию можно круглосуточно: консультант ответит на вопрос расскажет какие методы лечения применяются в конкретной ситуации объяснит цены и поможет выбрать между помощью на дому амбулаторным лечением и госпитализацией в стационар. Дополнительная информация – gosudarstvennaya-narkologicheskaya-klinika-moskva

  25. Пришло время перемен — а тут выяснилось что стены не те. Надеялись на быстрый ремонт — что без согласования нельзя. Почитали форумы — что одному не справиться. Обратились к спецам — перепланировка квартир в столице. И в Мосжилинспекцию подали — без нервов. Всё законно и красиво. Теперь можно спать спокойно. заказать перепланировку https://moskva.pereplanirovka-kvartir-byn.ru Сохраните поделитесь не потеряйте для Москвы. Сделайте ремонт правильно — без последствий. Доверьтесь тем кто знает все нюансы

  26. Он просто забирает человека и ты не можешь ничего сделать. Но после развода он начал пить всё больше и больше. Мы поняли что без профессиональной помощи не обойтись. Нам посоветовали стационар в Москве. Наркологический стационар — то что спасло нашу семью. И через месяц мы увидели результат. Он начал искать работу общаться с нами. Только помощь и поддержка. Цена была адекватной особенно по сравнению с тем что мы могли потерять. Он работает занимается спортом строит планы. цена на вывод из запоя в стационаре https://alkogolizm.narkologicheskij-staczionar-moskva-guj.ru Там все контакты и условия стационара для Москвы. Помощь есть и она рядом. Не бойтесь просить о помощи — это первый шаг к выздоровлению

  27. Мы не знали куда бежать и кого просить о помощи. Государственные больницы пугали условиями и отношением. Позвонил записался на консультацию приехал вместе с братом. частная клиника доктора Шурова — это было лучшее решение которое мы приняли. Отношение человеческое условия комфортные анонимность соблюдается. Мы снова можем общаться и строить планы. психиатрическая клиника доктора шурова психиатрическая клиника доктора шурова Сохраните поделитесь не потеряйте для нашего города. Обратитесь к профессионалам которые знают как помочь. Психиатрическая клиника — это не приговор а шанс на новую жизнь

  28. Обратиться к наркологу особенно важно если наблюдаются следующие нарушения и признаки: Узнать больше – 1.vyvod-iz-zapoya-reutov4.ru/

  29. Я понял: ещё немного — и я потеряю его навсегда. Я был в отчаянии не знал что делать. Позвонил объяснил ситуацию и мне сказали: «Приедем через час». срочная детоксикация — это было единственное что помогло. Врач приехал осмотрел его. Брат уснул спокойным сном. вывод из запоя вызвать нарколога вывод из запоя вызвать нарколога По ссылке — подробная информация для столицы. Если ваш близкий в запое — не ждите. Вывод из запоя — это реальность и она работает

  30. Основная цель капельничного лечения от запоя – оперативное выведение токсинов восстановление нормального обмена веществ и предотвращение дальнейших осложнений. Методика используемая специалистами включает не только медикаментозное вмешательство но и комплексный мониторинг состояния пациента что обеспечивает безопасность и результативность терапии даже в условиях экстренной необходимости. Выяснить больше – капельница от запоя цена в луганске

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>