SQL create table if not exists spring_ch22_rows(label text primary key)
SQL truncate spring_ch22_rows
SLF4J: No SLF4J providers were found.
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#noProviders for further details.
ENV Spring=6.2.11 Java=21.0.11
TX runtime thread=blog.spring.Chapter22.main() pid=77035 xid=792 active=true
CHECK PASS default RuntimeException rolls back -> BusinessRuntime
OBSERVER thread=blog.spring.Chapter22.main() spring_ch22_rows=[]
CHECK PASS independent observer expected rows []
CHECK PASS caller transaction state cleaned
TX checked thread=blog.spring.Chapter22.main() pid=77035 xid=793 active=true
CHECK PASS checked exception escapes proxy
OBSERVER thread=blog.spring.Chapter22.main() spring_ch22_rows=[checked]
CHECK PASS independent observer expected rows [checked]
CHECK PASS caller transaction state cleaned
TX explicitChecked thread=blog.spring.Chapter22.main() pid=77035 xid=794 active=true
CHECK PASS checked exception escapes proxy
OBSERVER thread=blog.spring.Chapter22.main() spring_ch22_rows=[checked]
CHECK PASS independent observer expected rows [checked]
CHECK PASS caller transaction state cleaned
TX noRuntime thread=blog.spring.Chapter22.main() pid=77035 xid=795 active=true
CHECK PASS explicit noRollbackFor commits despite exception -> BusinessRuntime
OBSERVER thread=blog.spring.Chapter22.main() spring_ch22_rows=[checked, noRuntime]
CHECK PASS independent observer expected rows [checked, noRuntime]
CHECK PASS caller transaction state cleaned
TX specificNo thread=blog.spring.Chapter22.main() pid=77035 xid=796 active=true
CHECK PASS checked exception escapes proxy
OBSERVER thread=blog.spring.Chapter22.main() spring_ch22_rows=[checked, noRuntime, specificNo]
CHECK PASS independent observer expected rows [checked, noRuntime, specificNo]
CHECK PASS caller transaction state cleaned
TX caughtLocal thread=blog.spring.Chapter22.main() pid=77035 xid=797 active=true
CAUGHT before transaction interceptor
OBSERVER thread=blog.spring.Chapter22.main() spring_ch22_rows=[caughtLocal, checked, noRuntime, specificNo]
CHECK PASS independent observer expected rows [caughtLocal, checked, noRuntime, specificNo]
CHECK PASS caller transaction state cleaned
TX outer thread=blog.spring.Chapter22.main() pid=77035 xid=798 active=true
CAUGHT after inner transaction interceptor
CHECK PASS inner REQUIRED has already marked shared transaction rollback-only
CHECK PASS catching inner exception cannot clear rollback-only -> UnexpectedRollbackException
OBSERVER thread=blog.spring.Chapter22.main() spring_ch22_rows=[caughtLocal, checked, noRuntime, specificNo]
CHECK PASS independent observer expected rows [caughtLocal, checked, noRuntime, specificNo]
CHECK PASS caller transaction state cleaned
TX localRollbackOnly thread=blog.spring.Chapter22.main() pid=77035 xid=799 active=true
OBSERVER thread=blog.spring.Chapter22.main() spring_ch22_rows=[caughtLocal, checked, noRuntime, specificNo]
CHECK PASS independent observer expected rows [caughtLocal, checked, noRuntime, specificNo]
CHECK PASS caller transaction state cleaned
CHECK PASS default scenarios return all pooled connections
SQL truncate spring_ch22_rows
TX checked thread=blog.spring.Chapter22.main() pid=77063 xid=801 active=true
CHECK PASS checked exception escapes proxy
OBSERVER thread=blog.spring.Chapter22.main() spring_ch22_rows=[]
CHECK PASS independent observer expected rows []
CHECK PASS caller transaction state cleaned
TX specificNo thread=blog.spring.Chapter22.main() pid=77063 xid=802 active=true
CHECK PASS checked exception escapes proxy
OBSERVER thread=blog.spring.Chapter22.main() spring_ch22_rows=[specificNo]
CHECK PASS independent observer expected rows [specificNo]
CHECK PASS caller transaction state cleaned
CHECK PASS ALL_EXCEPTIONS scenarios return all pooled connections
SQL drop table if exists spring_ch22_rows
