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

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

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

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

  4. С пациентом работают профильные специалисты которые оценивают состояние и подбирают безопасный план помощи. Подробнее – https://4.vyvod-iz-zapoya-moskva011.ru/

  5. Попали — человек ушел в запой. Состояние тяжелое а таблетки не берут. Хорошо что наткнулись на информацию — вывод из запоя на дому. Приезжают за час. Нормализуют давление и пульс — по протоколу. Конфиденциально. Фиксированный прайс. Человек приходит в сознание. Сам так выходил — действительно работает. запой нарколог дом https://alkogolizm.vyvod-iz-zapoya-na-domu-samara-cde.ru На сайте условия работы для губернии. Держите в телефоне. Звоните сейчас. Берегите друг друга

  6. С пациентом работают профильные специалисты которые оценивают состояние и подбирают безопасный план помощи. Подробнее – капельница от запоя людей

  7. Случилась беда — близкий совсем спился. Таблетки бесполезны — требуется серьёзное лечение. Хорошо что нашли клинику. Оказывается есть профессиональный стационар. Врачи постоянно наблюдают. Инфузионное лечение — профессионально. Полная анонимность. Условия отличные. стационар вывод из запоя https://kapelnica.vyvod-iz-zapoya-v-stacionare-samara13.ru На сайте подробности. Проверили на себе — всё честно. После лечения сразу легче. И что важно — с реабилитацией. Действуйте сразу. Время не ждёт. Кто уже не справляется — обращайтесь. Выход есть всегда

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

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

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

  11. Чтобы заказать лечение на дому достаточно сделать звонок и сообщить адрес возраст пациента продолжительность запоя и основные жалобы. Нарколог на дому измеряет давление и пульс выясняет наличие хронических заболеваний прием медикаментов и примерное количество алкоголя. Затем назначается лечение на дому. Ознакомиться с деталями – нарколог вывод из запоя в Санкт-Петербурге

  12. Ситуация критическая — близкий совсем потерял контроль. Скорая отказывается госпитализировать — нужна клиника. Хорошо что нашли хороший стационар. Оказывается есть профессиональная помощь. Медперсонал круглосуточно на месте. Инфузионная терапия — под строгим контролем врачей. Конфиденциально. Палаты комфортные. вывод из запоя самарская область https://alkogolizm.vyvod-iz-zapoya-v-stacionare-samara13.ru Все условия работы. Обращались туда — всё честно. Результат виден сразу. И что ценно — с заботой. Чем раньше тем лучше. Время не ждёт. Кто ищет стационар — обращайтесь. Держитесь

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

  14. Вывод из запоя представляет первый этап более длительного пути к трезвости. Детоксикация помогает уменьшить последствия интоксикации но не устраняет причины алкоголизма. Поэтому после стабилизации доктор обсуждает с пациентом лечение зависимости психотерапию кодирование реабилитацию и профилактику срыва. Комплексный подход особенно важен для людей которые много лет страдают алкоголизмом сталкиваются с повторением запойных эпизодов и уже не раз пытались справиться самостоятельно. Изучить вопрос подробнее – bystryj-vyvod-iz-zapoya

  15. Состояние пациента отслеживается на каждом этапе от первичной консультации до дальнейших рекомендаций. Получить больше информации – https://2.vyvod-iz-zapoya-reutov4.ru/

  16. Срыв произошёл — человек в запое уже несколько дней. Таблетки бесполезны — только стационар спасёт в столице Приволжья. Друзья порекомендовали — лечение в стационаре. Медперсонал на месте 24/7. Капельницы и препараты — под контролем врачей. Анонимно и конфиденциально. Условия комфортные. быстрый вывод из запоя в стационаре быстрый вывод из запоя в стационаре Там контакты и цены для нашего города. Родственника положили — врачи высший класс. После лечения сразу легче. Откладывать нельзя. Кто в области — советую. Держитесь

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

  18. Ужас — отец совсем потерял контроль. На дому не помогают — нужна клиника в Нижнем Новгороде. Нашли хороший стационар — интенсивная терапия. Медперсонал на месте 24/7. Очищение крови — профессионально. Анонимно и конфиденциально. Уход профессиональный. вывод из запоя в стационаре вывод из запоя в стационаре Там контакты и цены для НН. Я сам лежал — врачи высший класс. После лечения сразу легче. Не тяните время. Кто в нашем городе — советую. Выход есть всегда

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

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

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

  22. Тяжёлый случай — родственник на грани. Дома не справиться — только стационар спасёт. Хорошо что нашли клинику. Можно лечь в клинику. Контроль состояния 24/7. Очищение крови — надёжно. Никто не узнает. Палаты комфортные. капельница от запоя в стационаре https://kapelnica.vyvod-iz-zapoya-v-stacionare-samara13.ru Там контакты и цены. Я сам лежал — врачи золотые. Человек приходит в себя. И что важно — с реабилитацией. Чем раньше тем лучше. Время не ждёт. Кому нужна срочная помощь — рекомендую. Всё наладится

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

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

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

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

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

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

  29. Срыв случился — родственник пьёт без остановки. Скорая не приезжает — а риск растёт. Хорошо что есть специалисты — вызов врача на дом в нашем городе. Не заставляют ждать. Оборудование и препараты. Ставят капельницу — быстро. Анонимно и конфиденциально. Цены адекватные. вызвать анонимного нарколога вызвать анонимного нарколога На сайте подробности для Воронежа. Я сам вызывал — помогли быстро. Организм приходит в норму. Чем раньше тем лучше. Кто в ВРН — пригодится. Берегите себя

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

  31. Критическая ситуация — человек в запое уже давно. Дома уже не справиться — нужна госпитализация в нашем городе. Друзья порекомендовали — стационарное лечение. Круглосуточный мониторинг. Очищение крови — всё под контролем врачей. Без постановки на учёт. Уход профессиональный. капельница от запоя в стационаре https://kapelnica.vyvod-iz-zapoya-v-staczionare-nizhnij-novgorod-xft.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>