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
CHECK PASS native JDBC uncommitted row hidden from independent READ COMMITTED connection
CHECK PASS native JDBC commit visible independently
CHECK PASS native JDBC rollback leaves no row
TX 1 begin order-write thread=blog.spring.Chapter19.main()
CHECK PASS template opens physical transaction with autocommit false
CHECK PASS holder and actual transaction bound to current thread
CHECK PASS DataSourceUtils reuses same bound connection
CHECK PASS SQL success before commit is not visible independently
CHECK PASS inner REQUIRED participates without a new physical transaction
CHECK PASS participating scope keeps same physical connection
SQL backend=43072 transaction=756 isolation=2
TX 2 commit confirmed thread=blog.spring.Chapter19.main()
TX 3 cleanup thread=blog.spring.Chapter19.main()
CHECK PASS outer template returns after commit and both rows visible independently
CHECK PASS two logical REQUIRED scopes have one physical begin and commit
CHECK PASS completion removes thread resource and synchronization
TX 4 begin order-write thread=blog.spring.Chapter19.main()
TX 5 rollback confirmed thread=blog.spring.Chapter19.main()
TX 6 cleanup thread=blog.spring.Chapter19.main()
CHECK PASS uncaught runtime exception crosses template boundary -> IllegalStateException
CHECK PASS runtime failure rolls back physical transaction
TX 7 begin order-write thread=blog.spring.Chapter19.main()
TX 8 rollback confirmed thread=blog.spring.Chapter19.main()
TX 9 cleanup thread=blog.spring.Chapter19.main()
CHECK PASS normal callback result does not imply database commit after rollback-only
TX 10 begin order-write thread=blog.spring.Chapter19.main()
CHECK PASS direct pool connection does not join bound transaction
TX 11 rollback confirmed thread=blog.spring.Chapter19.main()
TX 12 cleanup thread=blog.spring.Chapter19.main()
CHECK PASS outer rollback with independently autocommitted write -> IllegalStateException
CHECK PASS rollback covers participating SQL but neither independent SQL nor memory mutation
CHECK PASS all pool leases returned
CHECK PASS next lease has autocommit and isolation restored
CHECK PASS failure paths also leave no bound holder
CHAPTER19 PASS
