I do basically the same thing. If a method tries to start a transaction when a transaction is already open then it's immediately rejected.
I don't really like automatic transaction joining behaviour because it makes it hard to reason about the application behaviour. Will this transactional method commit when it returns? It's impossible to tell without looking at who's calling it.
It also encourages annoying behaviour like, oh this method uses the database, better make it @Transactional.
Nice idea to write that stuff down. Something that flummoxed me for a while was how Pokemon Yellow does the Pikachu sound, since the Game Boy doesn't really support sample-based audio. Turns out it does something akin to spending 100% of its CPU time turning the sound on and off to play the samples.
Followed by a GameBoy emulator if you're feeling a bit more adventurous. It's big enough to be challenging, but small enough that it can easily be done by one person.
We use Hibernate at work and I've seen it generate some pretty gnarly queries (like, tens of kilobytes of just SQL). People like to rag on Oracle, but it's kind of impressive that it stands up to such abuse without complaining.
Firefox ESR 60 has been released at the same time, and is more or less identical to the non-ESR version. ESR makes a lot of sense for corporate networks, even if it can be a drag being a bit behind the curve.
CentOS has a great utility called needs-restarting which finds processes which have been updated and need to be restarted. I just stick it in a cron job and I have an email waiting for me in the morning if I need to do anything.
I don't really like automatic transaction joining behaviour because it makes it hard to reason about the application behaviour. Will this transactional method commit when it returns? It's impossible to tell without looking at who's calling it.
It also encourages annoying behaviour like, oh this method uses the database, better make it @Transactional.