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

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

  2. Когда его глаза были мутными а руки тряслись. А он не хотел он просто лежал и молчал. Случайно наткнулся на сайт где предлагали вывод из запоя на дому. выезд нарколога в Красноярске — это вернуло брата к жизни. Через пару часов он открыл глаза и улыбнулся. Мы расплатились и врач уехал. вызвать врача для вывода из запоя на дому https://vyvod-iz-zapoya-v-krasnoyarske.ru По ссылке — подробная информация для Красноярска. Звоните помогайте спасайте. Вывод из запоя — это реальность и она работает

  3. Но запой затянулся на недели и он перестал выходить из дома. Он не ел не спал не говорил. Мне ответили: «Приедем через час». выезд нарколога в Москве — это дало нам второй шанс. Через пару часов он открыл глаза и улыбнулся. Анонимно без учёта без лишних вопросов. врач нарколог вывод из запоя врач нарколог вывод из запоя Сохраните поделитесь не потеряйте для Москвы. Если ваш близкий в запое — не ждите. Вывод из запоя — это реальность и она работает

  4. Чрезмерное употребление алкоголя приводит к отравлению организма негативно сказываясь на работе внутренних органов уровне жидкости и общем самочувствии. Длительные запои сопровождаются тяжёлыми последствиями включая нарушения сердечной деятельности сбои в работе печени скачки давления и психоэмоциональные расстройства. Углубиться в тему – http://kapelnica-ot-zapoya-krasnoyarsk6.ru/kapelnicza-ot-zapoya-czena-krasnoyarsk/

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

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

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

  8. Наиболее уязвимыми оказываются несколько систем организма. Печень вынуждена перерабатывать большое количество токсинов почки работают с повышенной нагрузкой а нервная система реагирует нарушением сна тревожностью и нестабильностью давления. Именно поэтому детоксикационная терапия направлена не только на выведение вредных веществ но и на поддержку ключевых органов. Ознакомиться с деталями – https://health-kapelnica-msk.ru/kapelniczy-dlya-podzheludochnoj-zhelezy

  9. Мы не сразу поняли что это болезнь. И мы просто не узнавали его. Что это уже не просто «плохой период» а зависимость. Где возвращают человека к жизни. Наркологическая клиника — то что действительно помогло брату. Его госпитализировали врачи провели полное обследование. Мы снова узнавали в нём брата которого любили. Всё прошло анонимно — никто не узнал. Никаких скрытых платежей. Мы снова вместе и счастливы. лечение алкоголизма в санкт петербурге лечение алкоголизма в санкт петербурге Это может спасти жизнь для северной столицы. Промедление может стоить слишком дорого. Верните близкого человека к жизни — начните с одного звонка

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

  11. Наркологическая помощь нужна не только для облегчения похмелья. Врач должен понять насколько далеко зашла болезнь есть ли признаки сформированной зависимости и сможет ли пациент продолжать лечение алкоголизма. Чем раньше начат системный процесс тем выше шансы на устойчивое выздоровление. Дополнительная информация – vyvod-iz-zapoya-na-domu-v-balashihe

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

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

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

  15. Экстренная наркологическая помощь особенно актуальна при выраженном похмелье длительном запойном эпизоде или невозможности самостоятельно отказаться от спиртного. Врач учитывает возраст анамнез характер употребления концентрацию алкоголя принимаемые лекарства и признаки возможных осложнений. Капельница на дому назначается исключительно специалистом: самостоятельно ставить иглу смешивать препараты или увеличивать объем инфузий опасно. Подробнее – kapelnica-ot-zapoya-na-domu-kruglosutochno

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

  17. Когда я открыл свой небольшой магазин первое о чём задумался — безопасность. Друзья-предприниматели посоветовали пультовую охрану. Установили датчики подключили к пульту. ночная охрана офиса — это лучший вариант для малого и среднего бизнеса. Оборудование установили за один день никаких проблем с подключением. пультовая охрана объектов цена пультовая охрана объектов цена Там все контакты и условия для Московской области. Это просто надёжно и стоит недорого

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

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

  20. Когда он перестал узнавать родных а ночи превратились в кошмар. Он боялся больниц не хотел ехать ни в какую. И действительно приехал. Спокойный внимательный без лишней суеты. Психиатр на дом — это было идеальное решение. Объяснил что делать дальше и как справляться с приступами. Цена оказалась приемлемой особенно учитывая что мы сэкономили на вызове скорой и поездках в больницу. Теперь дедушка спокойнее ночи стали нормальными. психиатр на дом психиатр на дом По ссылке — подробная информация для Москвы. Это просто безопасно и действительно работает.

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

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

  23. Мы просто смотрели как он умирает. Мы уже перестали верить что сможем его вытащить. Мне ответили: «Приедем через час». срочная детоксикация — это было единственное что помогло. Через пару часов он открыл глаза и улыбнулся. Брат уснул спокойным сном. доктор нарколог вывод из запоя доктор нарколог вывод из запоя Сохраните поделитесь не потеряйте для Москвы. Если ваш близкий в запое — не ждите. Вывод из запоя — это реальность и она работает

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

  25. Сразу после вызова нарколог прибывает на дом для проведения тщательного осмотра. Врач измеряет жизненно важные показатели такие как пульс артериальное давление и температура а также собирает краткий анамнез для определения степени алкогольной интоксикации. Эти данные служат основой для разработки индивидуальной стратегии лечения. Исследовать вопрос подробнее – капельница от запоя круглосуточно

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

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

  28. Мы уже думали звонить в морг. Но кто-то из общих знакомых дал телефон врача. Через 2 часа он уже сидел и пил чай. срочная детоксикация — это дало нам второго шанса. Анонимно без учёта. сколько стоит вывод из запоя на дому https://vyvod-iz-zapoya-v-irkutske-gcb.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>