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

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

  2. Постоянное употребление алкоголя в больших дозах вызывает физическую зависимость поэтому становится трудно отказаться от алкоголя без медицинской помощи. Систематическое пьянство нарушает обмена веществ отрицательно влияет на сердце сосуды мозг печень желудок и нервную систему. Продолжительное употребление алкоголя вызывает опасные последствия для здоровья из-за сильной алкогольной интоксикации а также наносит вред многим другим факторам влияющим на качество жизни. У людей со стажем алкоголизма 5 10 15 и более лет повышается вероятность тяжелого похмельного синдрома психических расстройств обострения хронических заболеваний и рецидива запоя. Получить больше информации – вывод из запоя с выездом Кемерово

  3. So youre moving — Ive been there not that long back and I wont lie no walk in the park. You grab a few boxes then suddenly its overwhelming. Friends all had varied experiences but I wasnt about to leave it to chance. Anyway: when youre searching for reliable nevada moving services check around first. Simple reason: nevada based movers know the terrain — when accuracy matters most. My approach — made several calls — and without a doubt it prevented major headaches. This link is helpful that cleared everything up. nevada movers nevada movers That compilation saved me countless hours. No tricky pricing — totally upfront. Picked a crew from that list and flawless from start to finish. Invest time in this. Insist on a clear contract. Quality service is invaluable. Wishing you a calm and easy transition

  4. Перед назначением процедур нарколог проводит первичное обследование. Врач определяет степень опьянения проверяет общее состояние собирает сведения о принимаемых препаратах и хронических заболеваниях. При подготовке программы могут использоваться анализы крови ЭКГ тестирование и медицинское освидетельствование. Такой подход позволяет создать четкое представление о состоянии пациента и снизить риск осложнений. Узнать больше – https://v.narkologicheskaya-klinika-sankt-peterburg14.ru/

  5. Специалисты регулярно помогают при интоксикации запоях абстиненции и сложных состояниях зависимости. Подробнее – вывод из запоя цена Санкт-Петербург

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

  7. Перед назначением процедур нарколог проводит первичное обследование. Врач определяет степень опьянения проверяет общее состояние собирает сведения о принимаемых препаратах и хронических заболеваниях. При подготовке программы могут использоваться анализы крови ЭКГ тестирование и медицинское освидетельствование. Такой подход позволяет создать четкое представление о состоянии пациента и снизить риск осложнений. Подробнее – платная наркологическая клиника Санкт-Петербург

  8. no deposit bonus casino united states, usa roulette rules and new casino site uk 2021, or uk
    poker sites

    My website … prayer for gambling husband; Zenaida,

  9. Packing up — quite the adventure. Went down that road not too far back and take it from me a serious undertaking. Start with the easy items then its a mountain of things. Everybodys got a different story but Im not one for guessing. Anyway: when youre seeking movers in nevada really compare. Think about it: seasoned crews handle the desert climate — especially when moving across counties. My process — asked for itemized quotes — and I mean every word I dodged plenty of headaches. Take a look at this that finally helped me connect the dots. nevada movers https://movers-in-nevada-dhc.com That page over there was incredibly straightforward. What you see is what you get — zero hidden costs. Locked it in via that page and it worked out perfectly. Be careful with your choice. Ask about licensing. Quality help is unforgettable. Wishing you a hassle-free transition

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

  11. Зависимость развивается постепенно поэтому родственники и сам человек не всегда сразу воспринимают происходящее как заболевание. Важно оценивать не только частоту употребления алкоголя или наркотиков но и изменения поведения физической формы сна работоспособности и отношений с близкими. Консультация нарколога нужна если зависимый регулярно уходит в запой не может самостоятельно отказаться от спиртного или психоактивных веществ испытывает выраженный похмельный или абстинентный синдром становится агрессивным тревожным либо эмоционально нестабильным. Получить больше информации – http://n.narkologicheskaya-klinika-sankt-peterburg14.ru

  12. Помощь может включать консультацию детоксикацию стационар и дальнейшее сопровождение по показаниям. Дополнительная информация – https://5.narkologicheskaya-klinika-moskva11.ru

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

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

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

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

  17. При многодневном запое продукты распада алкоголя создают нагрузку на печень сердце мозг нервную систему и другие внутренние органы. У пациента нарушаются сон питание водно-солевой баланс появляются тревога тошнота головная боль слабость и признаки абстинентного синдрома. Вывод из запоя помогает стабилизировать физическое самочувствие но лечение алкоголизма не заканчивается одной процедурой. Полноценное лечение зависимости предусматривает детоксикацию работу с врачом психотерапию мотивацию и реабилитацию. Дополнительная информация – скорая вывод из запоя Санкт-Петербург

  18. Для поездки можно открыть раздел «Контакты»: карта Яндекс помогает найти место построить маршрут и понять что находится рядом. Москва — большой город поэтому время в пути зависит от района. При необходимости выезжаем по адресам в пределах столицы и в Подмосковье; условия выезда в выходных и праздничных днях следует проверить у оператора. Если пациенту тяжело ехать самостоятельно специалист объяснит когда допустима помощь в домашних условиях а когда требуется стационар. Служба связи работает ежедневно но доступность конкретного врача и формат выезда нужно уточнять перед обращением. Узнать больше – narkologicheskaya-bolnica-moskvy

  19. Обратиться за медицинской помощью рекомендуется если зависимый продолжает пить несколько дней подряд не может снизить дозы спиртного испытывает выраженное похмелье или его самочувствие быстро ухудшается. Наркологическая помощь особенно нужна людям с хроническими заболеваниями сердца сосудистой системы печени и других внутренних органов. Врач учитывает возраст количество выпитого длительность запоя сочетание алкоголя с лекарственными препаратами и наличие психических нарушений. Подробнее – http://www.v.vyvod-iz-zapoya-v-krasnoyarske17.ru

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

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

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>