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.

19,066 thoughts on “Integration testing transactions and optimistic locking with Spring and JUnit

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

  2. Вывод из запоя на дому позволяет провести лечение без поездки в медицинский центр если состояние пациента соответствует домашнему формату. Нарколог приезжает на дому с лекарственными препаратами и оборудованием проводит первичную диагностику и выбирает схему лечения. Лечение на дому особенно удобно людям которым психологически спокойнее находиться в знакомой обстановке. Изучить вопрос подробнее – https://v.vivod-iz-zapoya-v-sankt-peterburge16.ru/

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

  4. Решение о стационарном лечении принимает врач после осмотра. Нарколог оценивает клиническую картину и объясняет почему госпитализация в конкретном случае позволяет снизить риск осложнений. Если противопоказаний к домашнему лечению нет необходимые процедуры могут проводиться непосредственно по месту нахождения больного. Изучить вопрос подробнее – http://3.vyvod-iz-zapoya-reutov4.ru

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

  6. Лечение зависимости требует последовательной работы с физическими психологическими и социальными факторами. Именно поэтому наркологическая клиника «Детокс» использует комплексное лечение которое может включать медикаментозное восстановление работу с психотерапевтом консультации психолога и психиатра реабилитационный курс и профилактику рецидивов. Программа подбирается индивидуально: один человек обращается после нескольких дней запоя другому требуется лечение хронического алкоголизма третий нуждается в помощи при опиоидной амфетаминовой или другой наркотической зависимости. Универсальная схема в таких случаях не используется. Получить больше информации – http://1.narkologicheskaya-klinika-balashiha5.ru

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

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

  9. Беда пришла — человек в запое уже неделю. Дома уже не справиться — только стационар поможет в Нижнем Новгороде. Нашли хороший стационар — интенсивная терапия. Круглосуточный мониторинг. Детоксикация организма — профессионально. Без лишних бумаг. Уход профессиональный. вывод из запоя в клинике https://narkolog.vyvod-iz-zapoya-v-staczionare-nizhnij-novgorod-srv.ru Все условия работы для НН. Я сам лежал — без обмана. Состояние полностью нормализуется. Откладывать нельзя. Кому надо в Нижнем Новгороде — советую. Выход есть всегда

  10. Случился срыв — знакомый совсем спился в нашем городе. Ничего не помогает — а помочь нужно срочно. Повезло найти специалистов — капельница от запоя в Екатеринбурге. Специалист уже через час по всему городу. Капельницы и растворы. Ставят капельницу — безопасно. Анонимно и конфиденциально. Стоимость адекватная в Екатеринбурге. сколько стоит поставить капельницу в екатеринбурге https://alkogolizm.kapelnicza-ot-zapoya-ekaterinburg-vbx.ru На сайте подробности для Екб. Проверил на себе — всё четко. После капельницы — как новый человек. Чем раньше тем лучше. Кто на Урале — сохраните номер. Не шутите с организмом

  11. statistics effects of gambling on health – Jennifer – gambling
    in canada, advanced roulette uk and free spins on card registration usa, or biggest pokie win in united
    states

  12. Беда пришла — человек в запое уже несколько дней. Уговоры бесполезны — а состояние ухудшается. Хорошо что есть выход — вывод из запоя на дому в северной столице. Оперативно выезжают. Оборудование и препараты. Ставят капельницу — эффективно. Без постановки на учёт. Цены адекватные. вывести из запоя цена https://detoks.vyvod-iz-zapoya-na-domu-sankt-peterburg.ru Вся информация по ссылке для Санкт-Петербурга. Проверил на себе — профессионалы. Самочувствие отличное. Чем раньше тем лучше. Кто в северной столице — сохраните номер. Здоровье — это главное

  13. Абстинентный синдром обычно возникает после прекращения длительного приема алкоголя. Состояние может протекать по-разному: у одного больного преобладают тревожные проявления и бессонница у другого — тремор тошнота и проблемы со стороны внутренних органов. Перед началом терапии врач оценивает весь комплекс симптомов а не отдельную жалобу. Изучить вопрос подробнее – нарколог вывод из запоя Красноярск

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

  15. Беда пришла — родственник пьёт без остановки. На дому не помогают — нужна срочная госпитализация в Нижнем Новгороде. Хорошо что есть специализированная клиника — вывод из запоя в стационаре. Полный контроль состояния. Капельницы и препараты — надёжно. Без лишних бумаг. Уход профессиональный. круглосуточный стационар выведение из запоя https://alkogolizm.vyvod-iz-zapoya-v-staczionare-nizhnij-novgorod-elm.ru Там контакты и цены для столицы Приволжья. Родственника положили — всё честно. Человек приходит в себя. Не тяните время. Кто в области — обращайтесь. Поправляйтесь

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

  17. Случилась беда — с утра просто ад. Никакие таблетки не помогают — а похмелье жесткое. Сам искал в интернете — помогают профессионалы. Называется это — капельница от похмелья. Приезжают быстро. Капельницы и витамины. Очищают кровь — самочувствие отличное. Никто не узнает. Всё честно. цена капельницы нарколога https://narkolog.kapelnicza-ot-pokhmelya-ekaterinburg.ru Там контакты и цены. Проверил на себе — без обмана. Организм приходит в норму. Больше так не буду. Сохраните номер. Не мучайтесь. Берегите себя

  18. Критическая ситуация — родственник пьёт без остановки. Таблетки бесполезны — нужна срочная госпитализация в нашем городе. Друзья порекомендовали — помощь в клинике. Медперсонал круглосуточно на месте. Инфузионная терапия — под контролем врачей. Никто не узнает. Отношение внимательное. выход из запоя в стационаре https://alkogolizm.vyvod-iz-zapoya-v-staczionare-nizhnij-novgorod-xft.ru Там контакты и цены для Нижнего Новгорода. Я сам лежал — без обмана. После лечения сразу легче. Откладывать нельзя. Кто в НН — советую. Держитесь

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

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

  21. Если человек чувствует себя резко хуже родственникам не следует делать домашние эксперименты с лекарствами. Необходимо вызвать врача или экстренную службу. Своевременная помощь позволяет быстрее определить оптимальную тактику и решить нужна ли госпитализация. Получить больше информации – vrach-vyvod-iz-zapoya

  22. Тяжёлый случай — близкий совсем не выходит из состояния. На дому не справиться — только стационар спасёт в столице Приволжья. Хорошо что есть специализированная клиника — лечение в стационаре. Полный контроль состояния. Инфузионная терапия — профессионально. Никто не узнает. Палаты хорошие. лечение запоя в стационаре https://alkogolizm.vyvod-iz-zapoya-v-staczionare-nizhnij-novgorod-xft.ru Там контакты и цены для Нижнего Новгорода. Родственника положили — помогли реально. Результат очевиден. Не тяните время. Кто в области — рекомендую. Держитесь

  23. Давно хотел — получить израильский паспорт. Очереди в консульстве — казалось бесконечным. Я не знал с чего начать. Родственники порекомендовали — помощь в получении гражданства Израиля. Специалисты по репатриации сделали процесс прозрачным. Проверили каждую бумагу — без головной боли. Паспорт был у меня через месяц. Без серых схем. У меня есть дом в Израиле. Кто боится бюрократии — узнайте подробности. гражданство израиля в москве https://grazhdanstvo-izrailya-pro.ru Там всё подробно и понятно кто думает о переезде в Израиль. Удачи вам на этом пути

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

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

  26. Беда — близкий в запое уже давно. Скорая не вариант — требуется госпитализация. Хорошо что есть хорошая клиника. Есть круглосуточное лечение. Медперсонал всегда на месте. Детоксикация — надёжно. Анонимно и конфиденциально. Отношение внимательное. цена вывода из запоя в стационаре https://narkolog.vyvod-iz-zapoya-v-stacionare-samara12.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>