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,377 thoughts on “Integration testing transactions and optimistic locking with Spring and JUnit

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

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

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

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

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

  6. Но алкоголь оказался сильнее и мой брат просто ушёл в запой. Дни сливались в один бесконечный кошмар. Мы искали выход читали отзывы звонили в разные места. лечение алкоголизма в клинике — то что спасло брата. Каждый день он работал над собой под контролем специалистов. Мы снова узнали в нём брата которого любили. Всё прошло анонимно без учёта. Цена оказалась адекватной. Сейчас брат не пьёт уже больше года. лечение алкоголизма в спб https://zapoy.narkologicheskaya-klinika-sankt-peterburg14.ru Это может спасти жизнь для Санкт-Петербурга. Если вы столкнулись с похожей ситуацией — не ждите. Начните путь к выздоровлению уже сегодня — ваш близкий заслуживает второго шанса

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

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

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

  10. Она разрушает семьи карьеры личности. Она перестала следить за собой потеряла работу отдалилась от детей. Но всё было бесполезно — она срывалась снова и снова. Где помогают а не просто «ставят на учёт». круглосуточная помощь в Санкт-Петербурге — то что реально помогло сестре. Она работала с психологом каждый день. Она стала спокойнее начала улыбаться. Никто из знакомых не узнал о её лечении. Мы заплатили за полный курс. Сейчас сестра не пьёт уже больше года. лечение алкоголизма в спб лечение алкоголизма в спб Сохраните поделитесь не потеряйте для нашего города. Помощь есть и она рядом. Путь к выздоровлению начинается с первого шага — сделайте его сегодня

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

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

  13. И ты понимаешь что без серьёзного вмешательства не обойтись. Мой брат пил уже несколько месяцев. И каждый раз становилось только хуже. Перечитали кучу отзывов обзвонили несколько центров. лечение алкоголизма в стационаре — это было лучшим решением которое мы приняли. Его положили в палату где он был под контролем 24/7. Через месяц он уже выглядел по-другому. Анонимность — полная. Всё честно и прозрачно. Я знаю что это благодаря стационару. сколько стоит прокапаться от алкоголя в стационаре https://zapoy.narkologicheskij-staczionar-moskva-qtx.ru Сохраните поделитесь не потеряйте для районов. Промедление может стоить жизни. Выход всегда есть

  14. Когда уговоры не работают а скандалы только ухудшают ситуацию — единственный выход — профессиональная помощь. Мой брат начал с «лёгких» наркотиков. Но он срывался снова и снова. Но решили попробовать ведь другого выхода не было. реабилитация алкоголиков и наркозависимых — здесь возвращают человека в семью и в общество. Брат прошёл полный курс реабилитации. Мы благодарны врачам и персоналу за их труд. реабилитация алкоголиков нижний новгород https://reabilitaczionnyj-czentr-nizhniy-novgorod.ru Сохраните поделитесь не потеряйте для нашего города. Если вы столкнулись с зависимостью в своей семье — не бойтесь обращаться за помощью. Сделайте его сегодня

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

  16. Пришло время перемен — что надо объединить комнаты. Надеялись на быстрый ремонт — что нужны чертежи и расчёты. Поспрашивали знакомых — и поняли что это отдельная наука. Обратились к спецам — перепланировка квартир в столице. И в Мосжилинспекцию подали — без лишней беготни. Цены адекватные. Ремонт радует глаз. согласование перепланировки квартиры москва согласование перепланировки квартиры москва Сохраните поделитесь не потеряйте для нашего города. Если планируете перепланировку — не тяните. Доверьтесь тем кто знает все нюансы

  17. Когда ты видишь как твой близкий человек буквально угасает на глазах и ничего не можешь с этим сделать — это страшнее любой физической боли. Так было с моим отцом — он пил всё больше и больше пока мы не перестали узнавать его. Он перестал выходить из дома забросил любимое хобби перестал разговаривать с нами по душам. Мы жили в постоянном страхе: что будет завтра?. Мы перепробовали всё что только могли придумать — и кодирование и народные средства и уговоры. Но алкоголь каждый раз оказывался сильнее и мы снова скатывались на дно. В какой-то момент мы поняли что нужно что-то менять кардинально. И мы нашли решение — стационар где отцу могли бы помочь профессионалы. круглосуточное лечение в клинике — это то что вернуло отца к нормальной жизни. Его положили в палату где за ним наблюдали 24 часа в сутки. Врачи провели полную детоксикацию организма назначили курс психотерапии. Он начал посещать групповые занятия где общался с другими пациентами переживающими то же самое. Мы видели как он меняется день ото дня и это давало нам надежду. Через месяц он вышел из клиники — трезвым осознанным с новыми планами на жизнь. Теперь он снова работает общается с внуками улыбается а мы наконец-то перестали бояться за его жизнь. Вся процедура прошла анонимно — никаких учётов никаких отметок в карте никаких лишних вопросов от соседей или коллег. Цена оказалась абсолютно оправданной — мы заплатили за результат а не за обещания. Никаких скрытых платежей всё честно и по-человечески. цена на вывод из запоя в стационаре https://alkogolizm.narkologicheskij-staczionar-moskva-eby.ru Сохраните поделитесь с теми кому это может быть полезно для области. Если ваша семья столкнулась с похожей бедой — не опускайте руки. Профессиональная помощь существует и она действительно работает. Не бойтесь сделать этот шаг — он может вернуть вам близкого человека. Удачи вам и вашему родному человеку на пути к выздоровлению

  18. Но когда ты видишь как человек разрушается на глазах. Сначала это казалось способом пережить неудачу. Я уговаривала его лечиться но он только злился. Это было нелегко но это был единственный выход. круглосуточная помощь в Санкт-Петербурге — то что вернуло мужа к жизни. Он посещал групповые занятия общался с другими пациентами. Через два месяца он вернулся домой совершенно другим человеком. И это помогло сохранить его репутацию. Цена была адекватной и мы не пожалели ни копейки. И я знаю что это благодаря клинике. центр наркологической помощи https://zapoy.narkologicheskaya-klinika-sankt-peterburg014.ru Там все контакты и условия для Санкт-Петербурга. Промедление может стоить слишком дорого. Верните близкого человека к жизни — начните с одного звонка

  19. Мой брат ушёл в запой и не мог остановиться. Каждый день мы ждали что он одумается. В отчаянии мы начали искать профессиональную помощь. Реабилитационный центр для наркозависимых — здесь он прошёл полный курс восстановления. Огромное спасибо врачам и психологам. реабилитационный центр для алкоголиков нижний новгород https://zapoy.reabilitaczionnyj-czentr-nizhniy-novgorod.ru По ссылке — подробная информация для НН. Если вы столкнулись с зависимостью в своей семье — не ждите. Помощь есть и она рядом

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

  21. Я понял: ещё немного — и я потеряю его навсегда. Я был в отчаянии не знал что делать. Позвонил объяснил ситуацию и мне сказали: «Приедем через час». Вывод из запоя — это было единственное что помогло. Через пару часов он открыл глаза и улыбнулся. Брат уснул спокойным сном. срочный вывод из запоя на дому https://vyvod-iz-zapoya-v-irkutske.ru По ссылке — подробная информация для Иркутска. Если ваш близкий в запое — не ждите. Вывод из запоя — это реальность и она работает

  22. Я осознал: это не просто период это болезнь. И не могли ничего с этим сделать. И мы поняли: нужна профессиональная помощь. Тогда мы начали искать клинику. круглосуточная помощь в СПб — это был наш шанс и мы им воспользовались. Его госпитализировали врачи провели полное обследование. Он снова начал говорить о жизни строить планы. Мы сказали соседям и коллегам что он был в санатории. Всё было честно и прозрачно. Мы снова вместе и я благодарен врачам. клиника лечения зависимостей клиника лечения зависимостей Там все контакты и условия для северной столицы. Промедление может стоить слишком дорого. Верните близкого человека к жизни — начните с одного звонка

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

  24. Когда у бабушки начались проблемы с памятью и поведением. Мы были в отчаянии не знали что делать. Соседка рассказала что есть психиатры которые приезжают на дом. выезд врача-психиатра в Москве — это вернуло спокойствие в дом. Врач приехал через час пообщался с бабушкой провёл осмотр. Бабушка стала спокойнее ночи нормализовались. Рекомендую всем кто столкнулся с подобной ситуацией. психиатр на дом для пожилого человека москва https://psikhiatr-na-dom-v-moskve-pks.ru По ссылке — подробная информация для МСК. Не мучайте близких и себя — вызовите психиатра на дом.

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

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>