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.

20,249 thoughts on “Integration testing transactions and optimistic locking with Spring and JUnit

  1. Затеяли ремонт — что надо объединить комнаты. Планировали сделать за месяц — что Москва не прощает самодеятельность. Начали разбираться — что можно нарваться на штраф. Попали к толковым ребятам — согласование перепланировки в нашем городе. И в Мосжилинспекцию подали — без лишней беготни. Цены адекватные. Всё по документам. проект перепланировки квартиры проект перепланировки квартиры Пригодится если соберётесь переделывать для МСК. Бюрократия не ждёт. Доверьтесь тем кто знает все нюансы

  2. Тяжёлая ситуация — знакомый совсем потерял себя. Ничего не работает — а помочь нужно срочно. Повезло найти контакты — выезд нарколога в Воронеже. Оперативно выезжают. Капельницы и растворы. Очищают организм — профессионально. Без постановки на учёт. Всё честно. вызов нарколога на дом анонимно https://alkogolizm.narkolog-na-dom-voronezh-11.ru Там контакты и цены для столицы Черноземья. Я сам вызывал — без обмана. После процедуры сразу легче. Не откладывайте. Кто в ВРН — записывайте. Не шутите с организмом

  3. Когда захотелось простора и света — первая мысль была: «Снесу стену и сделаю открытое пространство». Что стены просто так не сносятся. Друзья сказали: «Нужен проект». Где реально помогают — проект перепланировки квартиры. Нарисовали несколько вариантов. Никаких задержек. Можно спать спокойно. проектное бюро перепланировка квартиры проектное бюро перепланировка квартиры Сохраните поделитесь не потеряйте для МСК. Если не хотите мучиться с документами — доверьтесь профессионалам. Начните с правильного проекта — и ремонт принесёт только радость

  4. В жизни всякое бывает — запой длится уже неделю. Поили каплями — ноль эффекта. А ведь можно было сразу — круглосуточная наркологическая служба в областном центре. Работают без выходных. Снимут интоксикацию — без лишней огласки. Никаких справок в поликлинику. Назовут до приезда. Лично проверено — всё четко и без воды. наркологическая круглосуточная помощь https://zapoy.narkologicheskaya-pomoshh-nizhnij-novgorod.ru Переходите там всё написано в Нижнем Новгороде. Сохраните в закладки. Быть готовым. Поправляйтесь

  5. Беда — родственник пьёт без остановки. Ничего не помогает — а риск огромный. Повезло найти контакты — нарколог на дом в ВРН. Специалист через час. Капельницы и растворы. Очищают организм — безопасно. Полная анонимность. Не завышают. наркология на дом https://zapoy.narkolog-na-dom-voronezh18.ru Вся информация по ссылке для Воронежа. Проверил на себе — профессионалы. Организм приходит в норму. Не терпите. Кто в области — сохраните номер. Не шутите с организмом

  6. Срыв случился — близкий не выходит из состояния. Ничего не работает — а помочь нужно срочно. Узнал куда звонить — вызов врача на дом в Воронеже. Врачи приезжают быстро. Капельницы и растворы. Очищают организм — быстро. Никто не узнает. Стоимость приемлемая. врач нарколог выезд врач нарколог выезд Там контакты и цены для столицы Черноземья. Уже пользовался — профессионалы. После процедуры сразу легче. Главное — не медлить. Кто в ВРН — держите под рукой. Всех благ

  7. Знаете есть вещи которые не проходят сами. Что уговоры сработают — становилось хуже. Когда уже не знаешь что делать — профессиональная помощь. Нам посоветовали — анонимный стационар в Нижнем Новгороде. Говорят по-человечески. Подход который возвращает к жизни. Никаких побочных эффектов. Без учёта в наркодиспансере. Думали это очередной «развод». Спасибо этим врачам. наркологическая клиника в нижнем новгороде наркологическая клиника в нижнем новгороде Там все контакты и описание для нашего города. Держите в телефоне. Здоровье дороже всего. Всё обязательно будет хорошо

  8. Никогда не думал что буду писать такое. Когда отец не узнаёт близких — это страшно. Ждали что само пройдёт — а стало только хуже. Что вернуло его к жизни — круглосуточная помощь клиники в области. Позвонили — и через 40 минут врач уже в коридоре. Сняли интоксикацию за один сеанс — без паники. Никаких выписок и учётов. Цену назвали сразу. Глаза живые руки не трясутся. Мы сами не верили. нарколог наркологическая помощь нижний новгород нарколог наркологическая помощь нижний новгород Заходите читайте сохраняйте для области. Сохраните в контакты. Пусть будет на всякий случай. Помощь рядом

  9. Проблема — родственник пьёт без остановки. Таблетки бесполезны — нужна госпитализация в нашем городе. Нашли хороший стационар — помощь в клинике. Врачи круглосуточно наблюдают. Инфузионная терапия — профессионально. Без постановки на учёт. Отношение внимательное. вывод из запоя стационарно вывод из запоя стационарно Там контакты и цены для столицы Приволжья. Родственника положили — без обмана. Состояние полностью нормализуется. Откладывать нельзя. Кто в области — рекомендую. Выход есть всегда

  10. Столкнулись с ужасом — срыв за срывом. Поили таблетками — бесполезно. Что реально помогает — лечение в клинике в области. Здесь работают профи. Очищают организм — с заботой. Анонимно — это главное. Условия — как дома. Оправданно. Отец лежал месяц — без срывов уже полгода. наркологическая помощь анонимно наркологическая помощь анонимно По ссылке вся информация для нашего города. Помощь рядом

  11. Проблема накрыла — знакомый совсем потерял себя. Скорая не приезжает — а риск растёт. Хорошо что есть специалисты — выезд нарколога в нашем городе. Врачи приезжают быстро. Полный комплект. Вводят лекарства — быстро. Никто не узнает. Стоимость приемлемая. наркологическая помощь на дому https://zapoy.narkolog-na-dom-voronezh-14.ru Все условия для столицы Черноземья. Уже пользовался — без обмана. Самочувствие отличное. Чем раньше тем лучше. Кто в области — держите под рукой. Не шутите с организмом

  12. Близкий пропадает в запое. Родные на пределе. Таблетки не помогают — а врача нужен срочно. Прочитали на местном форуме — круглосуточная помощь на месте. Врач приехал через 40 минут. Дали успокоительное — очень аккуратно. Без наркологического учета. Назвали до выезда. Пульс пришел в норму. У нас двое так восстановились — помогают всегда. запой нарколог дом https://narkolog.vyvod-iz-zapoya-na-domu-samara-fgh.ru По ссылке все контакты про районы. Пусть будет. Главное — номер под рукой. Вы справитесь

  13. Затеяли перестройку — куча бюрократических преград. Надеялись на быстрый исход — что перепланировка — это вам не шутки. Искать в интернете — и нашли команду которая реально помогает. Перепланировка квартир — мы даже не заметили как всё прошло. И перепланировку узаконили. Однозначно рекомендую. помощь в согласовании перепланировки https://zakazat.pereplanirovka-kvartir-jtc.ru Там все контакты и условия для столицы. Если не хотите головной боли с документами — обратитесь к профи. Зачем рисковать когда есть те кто знают все нюансы?

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

  15. Вывод из запоя решает задачу острой стабилизации но лечение алкоголизма на этом не заканчивается. Если запои повторяются необходимо работать с тягой психическими и социальными причинами проблемы. Комплексная программа может включать лечение зависимости кодирование психотерапию наблюдение нарколога и реабилитацию. Такой подход дает больше возможностей сохранить трезвость и постепенно восстановиться. Дополнительная информация – вывод из запоя дешево в Красноярске

  16. Поверьте я знаю о чём говорю. Когда человек в запое — это ломает. И даже бабок вызывали — ноль. Пока не вызвали — выезд нарколога в Питере. Врач оперативно. Сняли интоксикацию — сказал «спасибо». Только помощь. Дешевле стационара. Сохраните этот контакт. капельница от запоя в санкт петербурге https://kapelnicza-ot-zapoya-sankt-peterburg-jsi.ru Там и телефон и условия для Санкт-Петербурга. Не ждите пока станет поздно. Всё будет хорошо

  17. Проблема — близкий не выходит из состояния. Скорая не приезжает — а время уходит. Узнал куда звонить — вывод из запоя на дому в нашем городе. Оперативно выезжают. С собой всё необходимое. Ставят капельницу — безопасно. Никто не узнает. Цены адекватные. капельница от запоя на дому https://alkogolizm.vyvod-iz-zapoya-na-domu-sankt-peterburg-vkx.ru Все условия для нашего города. Я сам вызывал — помогли быстро. После процедуры сразу легче. Главное — не медлить. Кому надо в Питере — записывайте. Берегите себя

  18. Никто не застрахован — запой длится уже неделю. Уговаривали и ругали — ноль эффекта. Теперь знаю точно — круглосуточная наркологическая служба в НН. Врачи приезжают быстро. Поставят капельницу — без лишней огласки. Никаких «красных крестов» в карте. Цены — адекватные. Не первый раз вызываем — всё четко и без воды. служба наркологической помощи https://zapoy.narkologicheskaya-pomoshh-nizhnij-novgorod.ru Переходите там всё написано в нашем городе. Отправьте близким. Лучше иметь номер заранее. Главное — не сдаваться

  19. Беда — знакомый совсем потерял себя. Ничего не помогает — а риск огромный. Узнал куда звонить — срочная помощь на месте в Воронеже. Не заставляют ждать. Полный комплект. Очищают организм — безопасно. Никто не узнает. Цены адекватные. нарколог на дом анонимно воронеж https://zapoy.narkolog-na-dom-voronezh18.ru На сайте подробности для нашего города. Звонил им — помогли быстро. Организм приходит в норму. Чем раньше тем лучше. Кто в нашем городе — пригодится. Здоровье — это главное

  20. Когда захотелось простора и света — первая мысль была: «Снесу стену и сделаю открытое пространство». Оказалось что всё не так просто. Друзья сказали: «Нужен проект». Где быстро и без лишней бюрократии — проектное бюро в Москве. Ребята приехали замерили выслушали. Никаких задержек. Теперь у меня на руках готовый проект. нужен проект перепланировки https://zakazat.proekt-pereplanirovki-kvartiry-mfs.ru Там все контакты и условия для нашего города. Они сделают проект быстро качественно и помогут согласовать всё с инстанциями. Начните с правильного проекта — и ремонт принесёт только радость

  21. Неприятность — родственник потерял контроль. Состояние тяжелое а сил почти нет. Соседи порекомендовали — капельница на дом. Бригада оперативно. Нормализуют давление и пульс — по протоколу. Конфиденциально. Все заранее называют. И главное — результат уже через пару часов. Сам так выходил — безопасно и надежно. вывод из запоя врач на дом https://alkogolizm.vyvod-iz-zapoya-na-domu-samara-cde.ru Вся подробная информация для губернии. Сохраните номер. Здоровье близких — дороже. Всё наладится

  22. Затеяли перестройку — непонятно с чего начать. Хотели сэкономить — что незаконные работы грозят штрафами. Читать отзывы звонить сравнивать — которая берёт на себя все хлопоты. Перепланировка квартир — мы даже не заметили как всё прошло. И документы на руки выдали. Однозначно рекомендую. перепланировка здания согласование https://zakazat.pereplanirovka-kvartir-jtc.ru По ссылке — подробная информация для нашего города. Они всё сделают быстро грамотно и без лишней суеты. Зачем рисковать когда есть те кто знают все нюансы?

  23. При оценке состояния врач обращает внимание на несколько групп нарушений. Самостоятельно определить степень отравления бывает сложно поэтому диагностика и осмотр нарколога позволяют быстрее выбрать безопасный метод выведения из запоя. Дополнительная информация – https://v.vyvod-iz-zapoya-v-krasnoyarske17.ru/

  24. Срыв случился — родственник пьёт без остановки. Уговоры бесполезны — а помочь нужно срочно. Повезло найти контакты — нарколог на дом в нашем городе. Врачи приезжают быстро. Полный комплект. Очищают организм — быстро. Полная анонимность. Всё честно. дежурный нарколог дежурный нарколог Там контакты и цены для нашего города. Я сам вызывал — всё четко. После процедуры сразу легче. Главное — не медлить. Кто в ВРН — пригодится. Берегите себя

  25. Попали в переплет — срывы стали системой. Думали само пройдет — теряем время. К счастью наткнулись на эту службу — капельница от запоя на месте. Реагируют моментально. Восстанавливают водный баланс — чисто. Без постановки на учет. Все прозрачно. Дышит ровно давление в норме. Соседям так выводили — обращайтесь только сюда. вывод из запоя на дому круглосуточно https://alkogolizm-x9w.vyvod-iz-zapoya-na-domu-samara-cde.ru Там и адреса нет — приезжают сами. Кто в области — не потеряйте. Здоровье — на первом месте. Всё наладится

  26. Проблема накрыла с головой. Состояние ухудшается. Скорую боимся вызывать — а соседи уже заметили. Хорошо что есть служба — вывод из запоя на дому. Не стали ждать до утра. Сняли острую интоксикацию — с контролем давления. Без оформления бумаг. Прайс фиксированный. Через 3 часа — человек жив дышит говорит. Мне так отца вытаскивали — знают своё дело. вывод из запоя телефон вывод из запоя телефон Вся информация в одном месте про Самару. Сохраните в телефоне. Не теряйте его. Вы справитесь

  27. Все попытки помочь проваливались. Мы думали что он умрёт. Народные средства — тем более. Единственное что нас спасло — вывод из запоя на дому. Принял вызов сразу. Через 2 часа он уже говорил. Никто не узнал о случившемся. Мы заплатили после результата. Вот уже месяц он не пьёт. вывести из запоя недорого на дому https://alkogolizm.vyvod-iz-zapoya-na-domu-samara-rtw.ru Пригодится если случится беда для области. Каждый день промедления — риск. Вы справитесь

  28. Проблема — отец совсем потерял контроль. Дома не справиться — нужна клиника в нашем городе. Хорошо что есть клиника — интенсивная терапия. Круглосуточный мониторинг. Очищение крови — безопасно и эффективно. Анонимно и конфиденциально. Уход профессиональный. запой вывод клиника запой вывод клиника Вся информация по ссылке для столицы Приволжья. Уже пользовались — без обмана. Состояние полностью нормализуется. Не тяните время. Кто в НН — не бойтесь. Всё будет хорошо

  29. Когда человек теряет себя. Сначала вроде контролируешь — уже не встаёшь. Мой брат чуть не умер — сам не выберется. Что действительно работает — неотложная наркологическая служба в Нижнем Новгороде. Врач буквально через 40 минут. Восстановили сердце и давление — без криков и шока. Без справок в наркодиспансер. Заплатили после. После процедуры — человек пришёл в себя. У нас так отца подняли. экстренная наркологическая помощь https://alkogolizm.narkologicheskaya-pomoshh-nizhnij-novgorod.ru На сайте всё подробно для Нижнего Новгорода. Держите в телефоне. Не ищите в панике. Не отчаивайтесь

  30. Чтобы заказать выезд достаточно сделать звонок по телефону и сообщить дежурному специалисту основные данные: район Красноярска примерную длительность запоя возраст больного известные болезни и текущее самочувствие. Это позволяет получить помощь максимально быстро и анонимно что особенно важно в критической ситуации. При необходимости можно оставить заявку через форму обратной связи: специалист свяжется уточнит адрес и поможет выбрать оптимальный формат оказания медицинской помощи. Изучить вопрос подробнее – врач вывод из запоя

  31. Это не просто привычка. Провалы в памяти агрессия апатия. Думали что уже не вытащим. Единственное что реально помогло — наркологическая клиника в области. Психотерапевты которые знают подход. Готовы принять в любой день. Психологическая поддержка. Никаких справок на работу. Отношение человеческое. Гибкая система оплаты. У нас так лечился брат. наркологический центр https://alkogolizm.narkologicheskaya-klinika-v-nizhnem-novgorode16.ru По ссылке — подробное описание для нашего города. Сохраните в закладки. Помощь рядом. Выход есть

  32. У нас такое было. Когда просыпаешься и не понимаешь где ты — это ломает. Мы перепробовали всё — зря потраченное время. Пока не вызвали — капельница от запоя в нашем городе. Приехали через час. Осмотрели поставили капельницу — сказал «спасибо». Без учётов. Назвали сразу. Запишите номер. капельница от похмелья на дому капельница от похмелья на дому Там и телефон и условия для Питера. Здоровье — это главное. Вы справитесь

  33. Если вам нужен вывод из запоя на дому круглосуточно наши специалисты готовы прийти на помощь в любое время суток. Выездная наркологическая служба оперативно приедет по указанному адресу имея при себе все необходимое оборудование и медикаменты в том числе для оказания неотложной помощи. Перед вызовом желательно сообщить консультанту возраст пациента сколько лет существует проблема алкоголизма продолжительность текущего запоя заболевания и лекарства которые принимались в последние сутки. Дополнительная информация – наркология вывод из запоя в Кемерово

  34. С каждым может случиться — неделя превращается в кошмар. Уговаривали и ругали — нервы на пределе. Выход есть всегда — срочная помощь нарколога в областном центре. Врачи приезжают быстро. Осмотрят оценят состояние — профессионально. Никаких справок в поликлинику. Не дороже стационара. Знакомые обращались — рекомендую смело. экстренная наркологическая помощь https://zapoy.narkologicheskaya-pomoshh-nizhnij-novgorod.ru По ссылке — контакты в области. Держите под рукой. Когда случается беда — каждая минута на счету. Вы справитесь

  35. Но реальность оказалась куда суровее. Первый раз попытался сделать всё сам. Чтобы сделали быстро недорого и с гарантией согласования. согласование перепланировки с проектом — ребята приехали на замер в тот же день. Никаких «левых» решений. И я точно знаю что никаких проблем с узакониванием не будет. разработать проект перепланировки https://kvartiry.soglasovanie-pereplanirovki-xkd.ru Там все контакты и условия для МСК. Они сделают проект согласуют и дадут гарантию что всё пройдёт. Ремонт начинается с проекта — и это главное правило

  36. Критическая ситуация — человек в запое уже несколько дней. Таблетки не помогают — а помочь нужно срочно. Хорошо что есть специалисты — срочная помощь на месте в Воронеже. Врачи приезжают быстро. С собой всё необходимое. Очищают организм — профессионально. Никто не узнает. Всё честно. нарколог на дом круглосуточно цены https://zapoy.narkolog-na-dom-voronezh19.ru Вся информация по ссылке для Воронежа. Я сам вызывал — всё четко. Самочувствие отличное. Не откладывайте. Кто в ВРН — пригодится. Здоровье — это главное

  37. Беда — знакомый совсем потерял себя. Ничего не помогает — а время уходит. Узнал куда звонить — вызов врача на дом в Воронеже. Врачи приезжают быстро. Капельницы и растворы. Нормализуют состояние — безопасно. Никто не узнает. Цены адекватные. вызов нарколога на дом https://zapoy.narkolog-na-dom-voronezh18.ru Все условия для ВРН. Проверил на себе — без обмана. Организм приходит в норму. Чем раньше тем лучше. Кто в ВРН — держите под рукой. Берегите себя

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

  39. Когда захотелось простора и света — первая мысль была: «Снесу стену и сделаю открытое пространство». Оказалось что всё не так просто. Друзья сказали: «Нужен проект». Стал искать где заказать — проектное бюро в Москве. Ребята приехали замерили выслушали. Профессионально и грамотно. Можно спать спокойно. проект план перепланировки https://zakazat.proekt-pereplanirovki-kvartiry-mfs.ru Сохраните поделитесь не потеряйте для МСК. Они сделают проект быстро качественно и помогут согласовать всё с инстанциями. Начните с правильного проекта — и ремонт принесёт только радость

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>