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.

18,126 thoughts on “Integration testing transactions and optimistic locking with Spring and JUnit

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

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

  3. Здорова народ Близкий человек уже несколько дней в запое Жена в истерике Нужна срочная помощь на дому Короче врачи приехали и поставили систему — вывод из запоя в люберцах круглосуточно Приехали через 40 минут В общем телефон и цены тут — срочный вывод из запоя в люберцах https://anonimno.vyvod-iz-zapoya-na-domu-moskva-jst.ru Не ждите пока станет хуже Перешлите тем кто в такой же ситуации

  4. Люди подскажите Близкий человек уже несколько дней в запое Дети напуганы Таблетки не помогают Короче только это реально спасло — откапаться на дому эффективно Приехали через 40 минут В общем жмите чтобы сохранить — нарколог вывод из запоя мытищи нарколог вывод из запоя мытищи Звоните прямо сейчас Перешлите тем кто в такой же ситуации

  5. Люди подскажите Отец не выходит из штопора Дети напуганы В больницу тащить страшно Короче врачи приехали и поставили систему — вывод из запоя цены щёлково доступные Приехали через 40 минут В общем телефон и цены тут — вывод из запоя в щелково на дому https://kodirovanie.vyvod-iz-zapoya-na-domu-moskva-snp.ru Звоните прямо сейчас Перешлите тем кто в такой же ситуации

  6. #if Кракен диспут как открыть и правила Всем здорова Сегодня кракен маркетплейс активно обсуждается на форумах и в Telegram. Он стал символом даркнет-торговли и вызывает интерес у тысяч пользователей. Настоящий кракен маркетплейс работает только через Tor и onion-домены. Форум кракен маркет даёт инструкции. кракен сайт как зайти на кракен через тор ссылка на сайт кракен в тор браузере Проверенные ссылки для входа на маркетплейс КРАКЕН: • Для пользователей из г. Кемерово доступно рабочее зеркало: кракен телеграм маркетплейс — kratg.cc • Запасная ссылка для остальных регионов: в какой игре кракен — krakengame.cc Пишите если возникнут проблемы с доступом или входом на КРАКЕН. Проверял лично все актуальные зеркала работают стабильно в 2026 году. #else Кракен тор браузер вход безопасный Здарова бандиты Фраза кракен площадка используется для описания всей экосистемы ресурса. Она объединяет магазины форумы и систему входа. Настоящая кракен площадка работает только через Tor и onion-домены поэтому все сайты в обычном интернете — подделки.Запрос площадка кракен ссылка онлайн встречается у новичков которые думают что можно попасть внутрь через поисковики. На самом деле настоящая площадка кракен ссылка онлайн существует только в формате onion-домена и открывается исключительно в Tor.Фраза площадка кракена где все магазины подчёркивает что на одной платформе собраны десятки разделов. Пользователи находят нужные предложения внутри площадки. Настоящая площадка кракена где все магазины доступна только через проверенные onion-ссылки.Многие новички вводят запрос кракен зайти на площадку не понимая как работает система. Чтобы попасть внутрь нужно установить Tor и использовать onion-адрес. Настоящий способ кракен зайти на площадку исключает использование обычных браузеров.Фраза кракен площадка ссылка используется для обозначения рабочего onion-домена. Настоящая кракен площадка ссылка публикуется администрацией и дублируется на форумах. Это единственный способ получить безопасный доступ.Сегодня популярна формулировка кракен площадка торговая ведь именно там пользователи обсуждают ассортимент. Настоящая кракен площадка торговая доступна только через Tor и всегда сопровождается onion-ссылкой. Всё остальное — подделки.Сегодня кракен площадка воспринимается как главная точка доступа к сервисам. Она включает магазины поддержку и зеркала. Настоящая кракен площадка подтверждается сообществом и работает только через Tor.Многие новички ищут площадка кракен ссылка онлайн в поисковиках но не находят результата. Настоящая площадка кракен ссылка онлайн доступна исключительно через onion-домен. Это гарантия подлинности и анонимности.Фраза площадка кракена где все магазины подчёркивает удобство ресурса: всё собрано в одном месте. Но настоящий доступ возможен только через Tor. Настоящая площадка кракена где все магазины публикуется официальными источниками.Запрос кракен зайти на площадку всегда возникает у новичков. Настоящий способ прост: установить Tor найти onion-ссылку и проверить её подлинность. Только так можно безопасно войти и не попасть на подделку.Сегодня кракен площадка воспринимается как единая система с разными разделами. Она объединяет магазины форумы и поддержку. Настоящая кракен площадка работает только через Tor и onion-домены всё остальное — подделки.Фраза площадка кракен ссылка онлайн часто сбивает новичков. Они думают что можно войти через обычный браузер. На деле настоящая площадка кракен ссылка онлайн существует лишь в формате onion-домена доступного через Tor.Запрос площадка кракена где все магазины показывает интерес к ассортименту. Внутри действительно собраны десятки магазинов. Настоящая площадка кракена где все магазины открывается только в Tor что гарантирует безопасность.Многие ищут кракен зайти на площадку не понимая принципов работы даркнета. Ответ прост: нужен Tor и актуальный onion-домен. Настоящий способ кракен зайти на площадку всегда связан с официальными источниками.Фраза кракен площадка ссылка означает рабочий адрес. Настоящая кракен площадка ссылка публикуется в Telegram-каналах и подтверждается сообществом. Это единственный безопасный вариант.Сегодня выражение кракен площадка торговая стало синонимом основного раздела ресурса. Там обсуждаются товары и рейтинги. Настоящая кракен площадка торговая доступна только через Tor и onion-домены.Многие пользователи говорят про кракен площадка подразумевая полный ресурс. Он доступен только в сети Tor. Настоящая кракен площадка регулярно обновляет адреса и дублируется в официальных каналах.Фраза площадка кракен ссылка онлайн используется для поиска рабочего onion-домена. Но в поисковиках таких ссылок нет. Настоящая площадка кракен ссылка онлайн публикуется только в Telegram и на форумах.Запрос площадка кракена где все магазины часто встречается у новичков. Они хотят найти весь ассортимент в одном месте. Настоящая площадка кракена где все магазины подтверждается администрацией и открывается только через Tor.Фраза кракен зайти на площадку означает простой процесс: скачать Tor найти onion-домен и войти. Настоящий способ кракен зайти на площадку исключает использование сторонних сайтов которые обычно являются фейками.Сегодня кракен площадка стала символом даркнет-экосистемы. Она объединяет разные разделы и гарантирует пользователям доступ к сервисам. Настоящая кракен площадка работает только через onion-домены и Tor.Многие новички ищут площадка кракен ссылка онлайн в поисковиках но это ошибка. Настоящая площадка кракен ссылка онлайн никогда не отображается в Google или Яндекс. Она доступна лишь через официальные источники и открывается в Tor.Фраза площадка кракена где все магазины подчёркивает что весь ассортимент собран в одном месте. Но попасть туда можно только через onion-домен. Настоящая площадка кракена где все магазины публикуется администрацией.Вопрос кракен зайти на площадку решается просто: установка Tor-браузера и ввод onion-ссылки. Настоящий способ кракен зайти на площадку исключает риск попасть на подделку. Всё остальное ведёт к мошенникам.Фраза кракен площадка ссылка используется для поиска рабочего адреса. Настоящая кракен площадка ссылка публикуется в Telegram и подтверждается сообществом. Это единственный способ безопасного входа.Сегодня термин кракен площадка торговая используется для описания раздела с магазинами. Настоящая кракен площадка торговая доступна исключительно через Tor. Все копии в открытом интернете — обман.Кракен площадка стала местом где пользователи объединяют все сервисы ресурса. Она работает через onion-домены и защищена Tor. Настоящая кракен площадка подтверждается официальными источниками.Фраза площадка кракен ссылка онлайн популярна среди тех кто ищет быстрый доступ. Но реальный адрес никогда не публикуется в открытой сети. Настоящая площадка кракен ссылка онлайн есть только в Telegram.Запрос площадка кракена где все магазины говорит о том что пользователи хотят видеть весь ассортимент в одном месте. Настоящая площадка кракена где все магазины существует только в Tor и подтверждается сообществом.Фраза кракен зайти на площадку стала одной из самых частых среди новичков. Настоящий способ прост: использовать Tor-браузер и onion-ссылку опубликованную официально. Это исключает любые риски. Зайдите в кракен даркнет маркет вход через рабочую ссылку. кракен зеркала телеграм кракен наркошоп переходник кракен поддержка телеграм Проверенные ссылки для входа на маркетплейс КРАКЕН: • Для пользователей из г. Владимир доступно рабочее зеркало: поддержка кракен тг — kratg.cc • Запасная ссылка для остальных регионов: в какой игре кракен — krakengame.cc Оставляйте комментарии если возникнут проблемы с доступом или входом на КРАКЕН. Проверял лично все актуальные зеркала работают стабильно в 2026 году.

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

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>