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.

12,071 thoughts on “Integration testing transactions and optimistic locking with Spring and JUnit

  1. Good way of telling, and fastidious piece of writing to take data about my presentation subject matter, which i am going
    to deliver in university.

  2. I needed to thank you for this very good read!! I absolutely loved every bit
    of it. I have got you saved as a favorite to look at new stuff you post…

  3. درود، خودم امروز در حال جستجو در اینترنت با این وبسایت آشنا شدم و راستش رو بخواید تحت تاثیر قرار گرفتم.
    محتواش کاربردی بود و به ندرت همچین سایتی پیدا کنم.
    احساس می‌کنم برای افراد مختلف مفید باشه.
    برای کسایی که دنبال محتوای مفید هستن
    حتما سر بزنن. در کل تجربه خوبیبود و احتمالا دوباره استفاده می‌کنم

    کلاً

    برای کسایی که دنبال

    بازی‌های شانس

    تمایل دارن

    این شبکه

    کاملا میتونه

    کاربردی دربیاد

    یه نکته مهم اینه که

    دامنه‌هایی مثل

    enfejaronline محبوب

    و

    سرویس sibbet

    محبوبیت دارن

    در نهایت

    ارزش وقت گذاشتن داشت

    و

    بدون تردید

    میام دوباره

    .

    my hоmepage; سایت علمی فناوری

  4. Wonderful goods from you, man. I have be mindful your stuff previous to
    and you are simply too wonderful. I actually like what you have
    bought here, really like what you’re saying and
    the best way through which you are saying it. You’re making it enjoyable and you still take
    care of to stay it wise. I can not wait to read far more from you.
    That is really a wonderful site.

  5. Почему пользователи выбирают площадку KRAKEN?

    Маркетплейс KRAKEN заслужил доверие многочисленной
    аудитории благодаря сочетанию ключевых факторов.
    Во-первых, это широкий и разнообразный ассортимент, представленный сотнями
    продавцов. Во-вторых, интуитивно понятный интерфейс KRAKEN, который упрощает навигацию, поиск товаров и управление заказами даже для новых пользователей.
    В-третьих, продуманная система безопасных транзакций, включающая
    механизмы разрешения споров (диспутов)
    и возможность использования условного депонирования, что минимизирует риски для обеих сторон сделки.
    На KRAKEN функциональность сочетается с
    внимательным отношением к безопасности клиентов,
    что делает процесс покупок более предсказуемым, защищенным и, как следствие, популярным среди пользователей, ценящих анонимность и надежность.

  6. This design is incredible! You obviously know how to keep a
    reader amused. Between your wit and your videos, I was almost moved to
    start my own blog (well, almost…HaHa!) Fantastic job.
    I really enjoyed what you had to say, and more than that, how you presented it.
    Too cool!

  7. Just wish to say your article is as astonishing.
    The clarity for your post is simply great and that i could suppose you are an expert in this
    subject. Fine along with your permission allow me to grasp your feed
    to keep up to date with drawing close post. Thanks 1,000,000 and
    please carry on the rewarding work.

  8. درود، بنده مدتی قبل اتفاقی در فضای وب با
    این وبسایت رسیدم و صادقانه برام جالب بود.

    نوشته‌هاش کاربردی بود و کمتر همچین منبعی پیدا
    کنم. احساس می‌کنم برای کاربرای
    زیادی مفید باشه. برای کسایی که دنبال محتوای مفید
    هستن پیشنهاد می‌کنم حتما
    یه نگاهی بندازن. در کل خوشم اومد و
    قطعا دوباره استفادهمی‌کنم

    در جمع‌بندی کلی

    برای کسایی که دنبال

    پلتفرم‌های شرطی

    فعالیت دارن

    این سرویس آنلاین

    به نظر گزینه باشه

    ارزشامتحان داشته باشه

    جالب‌تر اینکه

    پلتفرم‌هایی مثل

    еnfejaronline شناخته شده

    و

    sibbet جدید

    تونستن کاربرا جذب کنن

    در کل

    ارزش داشت

    و

    در آینده

    بازدید می‌کنم

    .

    Hеre is my wweb site: سایت فناوری ایرانی,
    slaed.ir,

  9. Excellent weblog here! Additionally your website a lot up very fast!
    What host are you using? Can I get your associate hyperlink in your host?
    I want my site loaded up as quickly as yours lol

  10. درود فراوان، خودم امروز اتفاقی تو اینترنت به این صفحه پیداش کردم و راستش رو بخواید تحت
    تاثیر قرار گرفتم. نوشته‌هاش جذاب بود و کمتر همچین منبعی پیدا کنم.
    به نظرم برای افراد مختلف کاربردی باشه.
    برای کسایی که دنبال یه سایت خوب هستن حتما
    برن ببینن. به طور کلی راضی‌کننده بود و
    احتمالا باز هم سر می‌زنم

    در کل داستان

    برای افرادی که

    بازی انفجار آنلاین

    وقت صرف می‌کنن

    این مجموعه آنلاین

    به نظرم می‌تونه

    ارزش امتحان داشته باشه

    از سوی دیگر

    سایت‌هایی مثل

    enfеjar online

    و

    sibbet اصلی

    شناخته شده هستن

    به طور کلی

    خوب بود

    و

    بدون شک

    نگاهش می‌کنم

    .

    My web site سایت معتبر رسمی

  11. در یک نگاه کلی

    برای افرادی که

    بازی‌های شانس

    دنبالشن

    این سرویس آنلاین

    می‌تونه انتخاب مناسبی باشه

    به درد بخوره

    در ضمن

    برندهای شناخته‌شده‌ای مثل

    enfejaronline حرفه‌ای

    و

    sibƄet معروف

    فعالیت گسترده‌ای دارن

    در کل داستان

    تجربه مثبتی داشتم

    و

    بدون شک

    دوباره نگاهش می‌کنم

    my page – سایت بازی معتبر

  12. درود فراوان، من دیروز در حال جستجو در اینترنت به این سایت آشنا شدم و راستش رو
    بخواید نظرم رو جلب کرد. مطالبش خیلی کامل بود و به ندرت
    همچین سایتی پیدا کنم. به نظرم برای کاربرای زیادی مفیدباشه.
    برایکسایی که دنبال اطلاعات کامل هستن بد
    نیست یه نگاهی بندازن. به طور کلی راضی‌کننده بود و احتمالا دوباره
    استفاده می‌کنم

    در جمع‌بندی نهایی

    برای اون دسته علاقه‌مندها

    سرگرمی‌هایپولی

    درگیر هستن

    این سرویس

    می‌تونه گزینه جذابی باشه

    گزینه قابل اعتمادی باشه

    چیزی که جلب توجه می‌کنه اینه که

    سرویس‌هایی مثل

    еnfejaronline برتر

    و

    sibbet شناخته شده

    نشون دادن این فضا چقدر گسترده‌ست

    در پایان کار

    ارزشمند بود

    و

    بی‌تردید

    میام بررسیش کنم

    .

    Feel free to surf to my page … پایگاه خبری
    رسمی – https://unity-tech.ir -

  13. سلام و عرض ادب، من مدتی قبل اتفاقی آنلاین به این صفحه پیداش کردم
    و صادقانه خیلی خوشم اومد.
    مطالبش به‌دردبخور بود و کمتر همچین وبسایتی ببینم.
    فکر کنم برای کاربرای زیادی ارزش دیدن داره.
    اگر به دنبال محتوای مفید هستن حتما
    یه نگاهی بندازن. در کل خوشم اومد و قطعا باز هم سر
    می‌زنم

    نتیجه‌گیری اینکه

    برای اون گروه از کاربرا که

    پیش‌بینیورزشی

    میخوان تست کنن

    این سرویس

    به خوبی می‌تونه

    گزینه مناسب محسوب بشه

    یه نکته مهم اینه که

    وبسایت‌هایی مثل

    وبسایت enfejarօnline

    و

    سرویس sibbet

    کاربرای زیادی دارن

    به طور کلی

    مناسب بود

    و

    احتمالا

    بازم سر میزنم

    .

    Heгe is my site; سایت نرم افزار – https://sedaiemoshaver.ir,

  14. Just want to say your article is as surprising. The clearness in your post is just excellent and i
    can assume you are an expert on this subject. Fine with your permission let
    me to grab your RSS feed to keep up to date with forthcoming post.
    Thanks a million and please continue the enjoyable work.

  15. در نهایت امر

    برایعلاقه‌مندان به

    فضای شرط‌بندی آنلاین

    کارمی‌کنن

    این مرجع قابل توجه

    به نظرم می‌تونه

    گزینه ارزشمندی باشه

    از طرف دیگه

    پلتفرم‌هایی مثل

    enfejаronline جدید

    و

    پلتفرم sibbet

    شناخته شده هستن

    در آخر کار

    جذاب بود

    و

    قطعا

    میام بررسیشکنم

    Feel free to visit my blog: وب سایت دانشگاهی

  16. درود فراوان، بنده چند وقت پیش اتفاقی در اینترنت با این وبسایت آشنا شدم و
    صادقانه خیلی خوشم اومد. نوشته‌هاش خیلی
    کامل بود و به ندرت همچین منبعی پیدا
    کنم. فکر کنم برای افراد مختلف
    ارزش دیدن داره. برای کسایی که دنبال محتوای مفید هستن حتما یه نگاهی
    بندازن. به طور کلی راضی‌کننده بود و احتمالا بازدیدش می‌کنم

    در یک نگاه کلی

    برای افرادی که تمایل دارن

    فعالیت‌های شرطی

    تمایل دارن

    این وب

    می‌تونه گزینه جذابی باشه

    کار راه بنداز باشه

    از طرف دیگه

    پلتفرم‌هایی مثل

    enfejaronlіne رسمی

    و

    sibbet محبوب

    در بین کاربران شناخته شدن

    جمع‌بندی اینکه

    ارزشمند بود

    و

    قطعا دوباره

    میام بررسیشکنم

    .

    Also visit my homepage :: رسانه رسمی

  17. به طور کلی

    برای کسایی که دنبال

    بازی انفجار آنلاین

    درگیر هستن

    این سرویس آنلاین

    به نظر گزینه باشه

    انتخاب خوبی باشه

    یه نکته مهم اینه که

    وبسایت‌هایی مثل

    enfejaronlіne اصلی

    و

    شبکه sіbbet

    توسعه پیدا کردن

    در آخر کار

    قابل قبول بود

    و

    حتما دوباره

    مراجعه می‌کنم

    Here is my site; مرجع قابل اعتماد

  18. A couple of days ago I stopped by to evaluate a casino
    site. To begin with I just wanted to understand how everything was set up, without any special
    expectations. In the end the site left a good first impression: everything was done quite simply and neatly,
    and also it’s worth noting a decent game selection. Another
    thing seemed convenient, that the necessary categories can be
    found without difficulty, which leaves a good impression. Separately I noticed convenient deposit and withdrawal methods,
    which also can be considered a plus. Of course this
    doesn’t mean that everything here is perfect, but it feels like the basic things were implemented properly.
    At the same time it’s important keep a sensible approach, since comfort depends
    on a reasonable approach. If someone is interested in checking it out, in that
    case you can explore the platform yourself.
    If you look at a surface-level introduction, then overall everything looks quite decent.
    Link: Vegazone online

  19. درود فراوان، من دیروز در حال جستجو آنلاین
    با این وبسایت رسیدم و واقعا تحت تاثیر قرار گرفتم.
    اطلاعاتش کاربردی بود وکمتر همچین وبسایتی پیدا کنم.
    فکر کنم برای خیلی‌ها کاربردی باشه.
    برای کسایی که دنبال یه سایت خوب هستن بد نیست یه نگاهی
    بندازن. در مجموع راضی‌کننده بود و احتمالا باز هم سر می‌زنم

    به شکل خلاصه

    برای کسایی که دنبال

    بازی‌های کازینویی

    دنبالشن

    این فضای آنلاین

    فکر کنم بتونه

    جزو بهترین‌ها باشه

    از این جهت هم

    سرویس‌هایی مثل

    enfejаronlіne فعال

    و

    sibƅet قوی

    کاربرای زیادی دارن

    به طور کلی

    خوشم اومد

    و

    در آینده نزدیک

    بازم میام

    .

    Aⅼso visxіt my page – مرجع پزشکی

  20. I have been browsing on-line greater than three hours nowadays, yet
    I never discovered any attention-grabbing article like yours.

    It’s pretty worth enough for me. In my opinion, if all site
    owners and bloggers made just right content material as you
    did, the web can be a lot more helpful than ever before.

  21. In 2026, WhatsApp marketing at scale demands more than raw
    accounts — it requires whatsapp hash channels.
    These specially formatted sessions let automation tools send bulk messages without
    QR code logins, dramatically reducing detection risks.
    The whatsapp wart extractor is the industry-standard whatsapp hash channel creator that converts any
    WhatsApp account into ready-to-use hash channels in seconds.

    This guide explains everything: the whatsapp hash channel 6 segment format, step-by-step conversion, how
    to buy whatsapp hash channels safely, and proven whatsapp hash channels anti ban tactics that
    keep accounts alive for months.

  22. Hey! Quick question that’s entirely off topic.
    Do you know how to make your site mobile friendly?
    My blog looks weird when viewing from my apple iphone. I’m trying to find a theme or plugin that
    might be able to correct this problem. If you have any recommendations, please share.
    With thanks!

  23. Good day! Do you know if they make any plugins to safeguard against hackers?

    I’m kinda paranoid about losing everything I’ve worked hard
    on. Any recommendations?

  24. درود، بنده اخیرا اتفاقی آنلاین به این
    سایت رسیدم و راستش رو بخواید تحتتاثیر قرار گرفتم.

    مطالبش جذاب بود و کمتر همچین وبسایتی ببینم.
    به نظرم برای خیلی‌ها کاربردی باشه.
    اگه دنبال محتوای مفید هستن حتما سر بزنن.

    به طور کلی خوشم اومد و احتمالا باز هم سر
    می‌زنم

    بطور خلاصه

    برای کاربران علاقه‌مند به

    سایت‌های شرطی

    قصد فعالیت دارن

    این شبکه

    کاملا میتونه

    قابل توجه باشه

    در ضمن

    پروژه‌هایی مثل

    enfеjarοnline خوب

    و

    sibbet معتبر

    نشون دادن این فضا چقدر گسترده‌ست

    در نهایت

    رضایت داشتم

    و

    در ادامه

    بهش برمی‌گردم

    .

    Feel free tо visit my blog post: بررسی امکانات یک سایت حرفه‌ای بازی انفجار (Https://Jetscript.ir/)

  25. Pretty great post. I just stumbled upon your weblog and wished to mention that I have truly enjoyed browsing your weblog posts.
    In any case I will be subscribing in your rss feed and I’m hoping you write again soon!

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>