Affects: \


We hit an issue when using AspectJ transactions in a Kotlin application - sometimes, depending on a number of factors, the database access seems to be able to escape the transaction. This is best demonstrated by the sample project. However, in summary this seems to occur when:

  • Using AspectJ (load-time or compile-time)
  • Some (test) code accesses a method marked @Transactional
  • TestPropertySource is used
  • Some (test) code accesses another method marked @Transactional - the changes aren't captured in the transaction and e.g. an exception will not roll back.

Discussion on Stack Overflow

Comment From: snicoll

@moreginger thanks for the report and sorry it took so long to triage it. I believe this is a duplicate of #11019