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.

21,638 thoughts on “Integration testing transactions and optimistic locking with Spring and JUnit

  1. Но иногда жизнь преподносит сюрпризы которые разрушают всё. А через неделю просто перестал узнавать нас. Он не ел не спал просто лежал. Анонимно и без лишних вопросов. выезд врача-нарколога в Москве — который показал что выход есть всегда. Через пару часов он открыл глаза и заговорил. Мы остались с ним наедине но уже без страха. Никто не узнал о том что случилось. Всё честно и по-человечески. Он снова стал собой. вызов нарколога на дом в москве вызов нарколога на дом в москве Пригодится если случится беда для районов. Звоните не бойтесь. Вы не одни

  2. Мы все надеемся что беда обойдёт нас стороной. Он пил уже больше двух недель. Мы были в полном тупике. Я позвонил не веря в успех. анонимная помощь круглосуточно — когда ты перестаёшь быть один на один с бедой. Убрал интоксикацию нормализовал пульс. Мы плакали от облегчения от счастья от того что всё закончилось. Мы расплатились и он уехал так же тихо как и приехал. Цену назвали сразу без скрытых комиссий. Он снова начал ходить на рыбалку стал улыбаться. консультация нарколога на дому консультация нарколога на дому По ссылке — подробная информация для районов. Помощь рядом она реальная. Берегите себя и близких

  3. И ты не знаешь как собрать его заново. Мы потеряли его в этом тумане. Вторник — уже не пошёл на работу. Но он не мог даже сесть. Кто-то из соседей — капельница от похмелья. Просто сделал то что должен был. Восстановил сердечный ритм. Проснулся с ясной головой. Никто не знает кто мы и где живём. Цена — приятно удивила. Мы снова улыбаемся вместе. вызов нарколога на дом капельница вызов нарколога на дом капельница Сохраните не потеряйте для Екатеринбурга. Помощь существует она рядом. Берегите себя

  4. Но жизнь — непредсказуемая штука. Мы думали он остановится сам. Кожа стала серой глаза запали. Скорая сказала: «Это не к нам». Случайно наткнулись на сайт — капельница от похмелья в районах. Врач приехал через час с небольшим. Снял острую интоксикацию. Через 3 — попросил чай. Никто не пришёл с проверкой. Без доплат и сюрпризов. Прошло 8 месяцев — он не пьёт. капельница на дому от похмелья капельница на дому от похмелья Там все контакты и описание для районов. Всё обязательно наладится. Берегите себя и близких

  5. Когда кажется что хуже уже не будет. Именно так мы чувствовали себя когда наш отец ушёл в запой. Скорая говорила: «Только если сам придёт». Просто случайный разговор в аптеке — капельница от запоя. Врач приехал через 50 минут. Никто не узнал о нашей беде. И это было честно. Спасибо тем кто не отказал. прокапать от алкоголя воронеж прокапать от алкоголя воронеж Пригодится для районов. Звоните не бойтесь

  6. Но жизнь бывает жестокой. Мой брат ушёл в запой и это было страшно. Скорая не помогала. И приехали анонимная помощь в Москве — это было реальное спасение. Через пару часов брат открыл глаза. Всё было анонимно. Оплатили после. И это — самое важное. нарколог на дом срочно https://zapoy.narkolog-na-dom-moskva-qwe.ru Пригодится если случится беда для районов. Звоните не бойтесь. Берегите себя и близких

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

  8. Но иногда жизнь преподносит сюрпризы которые разрушают всё. Он перестал отвечать на звонки не выходил из дома. Он не ел не спал просто лежал. Сказали что они работают круглосуточно. Нарколог на дом — который дал нам второй шанс. Врач приехал осмотрел брата. Я не мог поверить что это случилось так быстро. И это было главное. Всё честно и по-человечески. Он снова стал собой. анонимный врач нарколог на дом анонимный врач нарколог на дом Пригодится если случится беда для нашего города. Помощь рядом она реальная. Всё наладится

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

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

  11. Я никогда не думал что буду это писать. Человек которого ты любишь вдруг перестаёт быть собой. Глаза стеклянные руки трясутся. Позвонили по совету знакомых — выезд нарколога в нашем городе. Без лишних разговоров. Восстановили давление. Просто помощь и всё. Всё честно. Улыбался пил чай. Спасибо этой службе. поставить капельницу от запоя на дому цена поставить капельницу от запоя на дому цена Пусть будет в закладках для Санкт-Петербурга. Сделайте шаг уже сегодня. Всё наладится

  12. Но если это спасёт хоть одного человека — буду считать что не зря. Но остановить уже не могли. Каждый звонок мог стать последним. Обычная медицина бессильна. Знакомые дали номер — выезд нарколога в Самаре. Врач приехал через час. Снял интоксикацию. Через несколько часов он уже сидел и пил чай. Без огласки. Сказали сразу до выезда. Уже прошло полгода — он не пьёт. выведение из запоя на дому анонимно выведение из запоя на дому анонимно Пригодится если случится беда для области. Всё обязательно наладится. Выход есть всегда

  13. Пишу и сам не верю что такое пережили. Перестал есть пить отвечать. Алкогольные психозы начинались уже под утро. Нашёл в интернете — выезд врача-нарколога. Врач приехал через 50 минут. Нормализовал давление и сон. За 3 часа он уже пил чай и смеялся. Врач ничего не записывает. Никаких скрытых платежей. Теперь мы знаем куда звонить. нарколог на дом капельница спб нарколог на дом капельница спб По ссылке — все подробности для северной столицы. Помощь всегда рядом. Берегите себя и близких

  14. Алкоголь забрал его за пару месяцев. Он пил каждый день с утра до вечера. Мы обращались в больницы но везде отказывали. В отчаянии я нашёл в интернете контакты врача вызов на дом круглосуточно — это был звонок который спас отца. Через пару часов отец открыл глаза и улыбнулся. Я не мог поверить своим глазам. Никто из соседей даже не узнал. Оплатили после процедуры. И я знаю что это благодаря тому врачу. вызов нарколога на дом круглосуточно недорого вызов нарколога на дом круглосуточно недорого По ссылке — подробная информация для районов. Помощь рядом она реальная. Берегите себя и близких

  15. Мы все надеемся что беда обойдёт нас стороной. Он пил уже больше двух недель. Но он не мог встать с кровати. Я позвонил не веря в успех. выезд врача-нарколога в Москве — это был тот самый случай когда телефонный звонок меняет всё. Через пару часов брат открыл глаза и попросил пить. Мы плакали от облегчения от счастья от того что всё закончилось. Никто из соседей даже не узнал что у нас кто-то был. Всё честно и прозрачно. Мы снова общаемся как раньше как в детстве. вызов врача нарколога на дом москва вызов врача нарколога на дом москва Сохраните поделитесь не потеряйте для области. Помощь рядом она реальная. Берегите себя и близких

  16. Но иногда жизнь преподносит сюрпризы которые разрушают всё. Это началось внезапно после развода с женой. Мы сидели и смотрели как он угасает. Сказали что они работают круглосуточно. Нарколог на дом — который дал нам второй шанс. Врач приехал осмотрел брата. Мы держали его за руки и молчали. Никто не узнал о том что случилось. Всё честно и по-человечески. Он снова стал собой. частный нарколог на дом анонимно https://zapoy.narkolog-na-dom-moskva-gjy.ru Там все контакты и условия для области. Помощь рядом она реальная. Вы не одни

  17. Но решил что это может спасти чью-то жизнь. Мы боялись что он не выживет. Нам повезло что мы нашли этот номер. Быстрое эффективное безопасное — лечение на дому в северной столице. Врач приехал через 40 минут. Снял интоксикацию. Мы не верили что такое возможно. Никто не звонил из диспансера. Цена — фиксированная назвали заранее. Этот номер всегда в телефоне. капельница от алкоголя спб капельница от алкоголя спб Пригодится если случится беда для Питера. Всё обязательно будет хорошо. Выход есть всегда

  18. Он никогда не жаловался всегда помогал. Но я не могла сдаться. И нашла решение когда уже не оставалось надежды. выезд врача круглосуточно — это вернуло его к жизни. Врач приехал через 40 минут. Всё анонимно без учёта. Никаких доплат. Он снова улыбается работает живёт. неотложная наркологическая помощь на дому https://kapelnica.narkolog-na-dom-moskva-abc.ru Пригодится если случится беда для районов. Если вы сейчас в такой же ситуации — не ждите. Всё наладится

  19. Однажды утром я понял: брат умирает. Но с каждым днём становилось только хуже. Мы боялись оставлять его одного. Скорая сказала: «Это не к нам». Друг дал номер — помощь при запое в области. Профессионально и спокойно. Восстановил электролитный баланс. Через 2 часа брат сел на кровати. Без записей в амбулаторной карте. Цена — названа заранее. Работает строит планы. капельницы на дому екатеринбург капельницы на дому екатеринбург Сохраните не потеряйте для Екатеринбурга. Всё обязательно наладится. Берегите себя и близких

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

  21. Но иногда жизнь преподносит сюрпризы которые разрушают всё. Он перестал отвечать на звонки не выходил из дома. И мы не знали как ему помочь. Сказали что они работают круглосуточно. срочная анонимная помощь — который дал нам второй шанс. Через пару часов он открыл глаза и заговорил. Я не мог поверить что это случилось так быстро. И это было главное. Никаких скрытых платежей. И я знаю что это благодаря той самой капельнице и тому врачу. вызов нарколога на дом круглосуточно вызов нарколога на дом круглосуточно Пригодится если случится беда для Москвы. Если вы сейчас в такой же ситуации — не ждите. Берегите себя и близких

  22. Это хуже любой боли. Алкоголь забрал его полностью. Но ничего не работало. Что нужна изоляция. больница с анонимным отделением в районах. Здесь возвращают к жизни. Никаких шаблонов — подход к каждому. Без последствий для работы и семьи. Врачи — профессионалы с душой. Не дороже чем у других. Мы не ошиблись с выбором. анонимная наркологическая клиника анонимная наркологическая клиника Это может спасти жизнь для области. Выход есть и он рядом. Всё наладится

  23. Online casino users frequently compare slot selections bonus programs withdrawal conditions and general platform usability making goo spin a possible option to research alongside other gambling and gaming websites.

  24. Но если это спасёт хоть одного человека — буду считать что не зря. Мой брат здоровый и весёлый вдруг ушёл в запой. День за днём он гас. Наркологи говорят: «Только стационар». Посоветовали на работе — детоксикация на дому. Принял вызов сразу. Восстановил сознание. Через несколько часов он уже сидел и пил чай. Анонимно без учёта. Оплата после процедуры. Уже прошло полгода — он не пьёт. вывод из запоя вызов на дом https://narkolog.vyvod-iz-zapoya-na-domu-samara-fjc.ru Пригодится если случится беда для районов. Главное — решиться и позвонить. Берегите себя и близких

  25. Если хоть одному человеку поможет — значит не зря. Мы столкнулись с этим когда уже не было сил. Кто-то дал телефон одной службы. Оказалось что есть решение — капельница от запоя в Питере. Врач приехал через 40 минут. Вернул ясность сознания. Через 2 часа он уже сидел пил чай. Всё анонимно без учёта. Можно платить после. Теперь я знаю куда звонить в критической ситуации. сколько стоит прокапаться дома https://kodirovanie.kapelnicza-ot-zapoya-sankt-peterburg-jsi.ru Там и телефон и цены и условия для Санкт-Петербурга. Помощь приходит к тем кто звонит. Выход есть всегда

  26. Но когда начался запой он просто сломался. Мы думали что это конец. Читала форумы и сайты. анонимная помощь в Москве — это дало нам второй шанс. Сразу осмотрел папу. Всё анонимно без учёта. Оплатили после. Он снова улыбается работает живёт. наркологическая клиника помощь на дому https://kapelnica.narkolog-na-dom-moskva-abc.ru Пригодится если случится беда для нашего города. Каждый день промедления — это риск. Берегите себя и близких

  27. Мой отец всегда сильный и надёжный человек просто сломался. Перестал есть плохо спал начал терять вес. Но он просто не мог говорить об этом. В отчаянии я нашёл в интернете контакты врача Нарколог на дом — который вернул его к жизни. Врач приехал через час осмотрел отца. Врач оставил свои контакты и уехал. Только мы врач и отец. Цену сказали сразу по телефону. Он снова улыбается гуляет общается. нарколог круглосуточно москва https://zapoy.narkolog-na-dom-moskva-uxm.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>