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

  1. Медикаментозное кодирование препаратом назначается после обследования. В зависимости от выбранной схемы препарат может вводиться путем внутримышечной или внутривенной инъекции использоваться в форме таблеток или импланта. В некоторых программах применяется вшивание ампулы. Среди известных средств и коммерческих наименований встречаются препараты на основе дисульфирама Эспераль Торпедо Алгоминал Аквилонг и другие лекарственные решения. Конкретный препарат доза способ введения и длительность действия определяются только врачом. Получить больше информации – кодирование от алкоголизма

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

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

  4. Срыв случился — человек в запое уже несколько дней. Ничего не работает — а риск растёт. Хорошо что есть специалисты — выезд нарколога в Санкт-Петербурге. Не заставляют ждать. Капельницы и растворы. Ставят капельницу — безопасно. Никто не узнает. Не завышают. выведение из запоя в спб https://narkolog.vyvod-iz-zapoya-na-domu-sankt-peterburg-hnd.ru На сайте подробности для северной столицы. Я сам вызывал — помогли быстро. После процедуры сразу легче. Не откладывайте. Кто в Санкт-Петербурге — пригодится. Всех благ

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

  6. Критическая ситуация — отец совсем потерял себя. Таблетки бесполезны — только стационар поможет в нашем городе. Нашли хороший стационар — вывод из запоя в стационаре. Медперсонал на месте 24/7. Очищение крови — надёжно. Без постановки на учёт. Палаты хорошие. прокапаться в стационаре https://narkolog.vyvod-iz-zapoya-v-staczionare-nizhnij-novgorod-srv.ru Там контакты и цены для Нижнего Новгорода. Проверили на себе — помогли реально. Результат очевиден. Не тяните время. Кому надо в Нижнем Новгороде — обращайтесь. Держитесь

  7. Срыв случился — близкий не выходит из состояния. Скорая не приезжает — нужна клиника в столице Приволжья. Нашли хороший стационар — стационарное лечение. Медперсонал на месте 24/7. Капельницы и препараты — всё под контролем врачей. Анонимно и конфиденциально. Палаты хорошие. круглосуточный стационар вывод из запоя https://kapelnica.vyvod-iz-zapoya-v-staczionare-nizhnij-novgorod-xft.ru Вся информация по ссылке для нашего города. Родственника положили — всё честно. Результат очевиден. Чем раньше тем лучше. Кому надо в Нижнем Новгороде — не бойтесь. Всё будет хорошо

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  25. sms casino deposit australia, real usa online casino and casino
    how to choose a good online casino (Victor) jackpot usa 5f bonus, or best online casino for slots uk

  26. Беда пришла — человек в запое уже несколько дней. Таблетки не помогают — а состояние ухудшается. Узнал куда звонить — вывод из запоя на дому в нашем городе. Не заставляют ждать. Полный комплект. Ставят капельницу — эффективно. Анонимно и конфиденциально. Цены адекватные. выведение из запоя в стационаре санкт петербург https://alkogolizm.vyvod-iz-zapoya-na-domu-sankt-peterburg-xpr.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>