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.
handicap wette bedeutung
Here is my web-site :: online wetten ohne oasis
плинко скачать apk и установить плинко скачать apk и установить
Т а г и л
melbet техподдержка киргизия melbet техподдержка киргизия
топ сео компаний топ сео компаний .
https://teletype.link/adversetlc996
https://telegra.ph/Drevolazy-01-08
net seo net seo .
https://telegra.ph/Kartinki-kirito-11-26
https://www.bitsdujour.com/profiles/rP8vnd
https://telegra.ph/Zakonrf-info-03-08
купить попперс Элиста
how to use 1win bet builder http://www.1win76138.help
https://site108406092.fo.team
попперс Краснодар
https://telegra.ph/Galkin-data-rozhdeniya-03-09
Всем, кто только начинает погружение в SEO, советую прочитать эту статью целиком, особенно раздел про внешние ПФ. Я сам долго не мог понять, почему конкуренты с не очень красивыми сайтами висят в топе Яндекса. А ответ прост: у них грамотно настроена накрутка поведенческих факторов в яндексе, которая обманывает алгоритмы и создает иллюзию популярности. Теперь хоть понимаю, куда копать и какие метрики отслеживать.
https://rentry.co/qczgiw4g
https://telegra.ph/Skachat-muzyku-mortal-kombat-11-12
https://telegra.ph/YUmor-fm-03-12
https://telegra.ph/Bezynercionnaya-katushka-11-15
https://lzkysb.zombeek.cz
https://paiza.io/projects/gQTKop65WKzF4wh-KPpjAg
https://site349735289.fo.team
neue online wettanbieter
Here is my blog – was Bedeuten quoten Bei Wetten (advancedtechnologyspc.com)
левитра Электросталь
сиалис дженерик купить в москве
купить попперс Якутск
seo оптимизация сайта омск seo оптимизация сайта омск .
виагра таблетки для мужчин эффект
Всем привет! Прочитал статью про продвижение сайтов и развитие бизнеса в сети. Хороший обзор, охватывает основные направления: от SEO и контекстной рекламы до автоматизации и выхода на международные рынки. Автор пишет про системный подход и важность аналитики. Может быть полезно владельцам бизнеса и маркетологам. Вот ссылка: https://midships.ru/jeffektivnoe-prodvizhenie-sajtov-i-razvitie-biznesa-v-internete/
https://rentry.co/fzyh2x26
1win komissiya bormi https://www.1win5768.help
deutsche sportwetten lizenz
my web site … pro a basketball wetten (Mae)
https://site870704368.fo.team
https://uzlb7p.zombeek.cz
https://ma9nbo.zombeek.cz
https://paiza.io/projects/Rb4g-bwKlIM8VNfN5Rie2w
https://malt-orden.info/userinfo.php?uid=448531
мостбет вывод на карту https://mostbet27541.help
можно ли попперс за рулем
https://telegra.ph/Nabor-dlya-vlyublennyh-Bratsk-12-11
https://telegra.ph/Vesti-fm-11-10
seo partners seo partners .
сиалис дженерик
https://snippet.host/qyxxwu
купить в аптеке сиалис 5мг
https://www.bitsdujour.com/profiles/YgPXUM
promo code casino usa, no deposit online slots usa and australias gambling problem,
or paying tax on gambling winnings australia
my web site: how much is an ace card worth in blackjack, ms.olodesk.com,
https://lessons.drawspace.com/post/1035141/www-arbo-com-fr-www-google-com-vn-zd-www-moskrae