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 PostgreSQL=18.0
ENV Spring=6.2.11 Java=21.0.11
CHECK PASS no transaction skips default listener but invokes fallback
OBSERVER id=1 rows=0
CHECK PASS publish registers callback before commit and observer cannot see row
OBSERVER id=1 rows=1
CHECK PASS commit event follows durable database commit
OBSERVER id=2 rows=0
CHECK PASS rollback invokes rollback listener only
ASYNC thread=chapter23-listener tx=false
OBSERVER id=3 rows=1
CHECK PASS commit returns while async listener waits
CHECK PASS async thread has no inherited transaction
EVENT throwing after commit thread=blog.spring.Chapter23.main()
OBSERVER id=4 rows=1
CHECK PASS event afterCompletion failure does not escape and row remains committed
CHECK PASS raw afterCommit exception propagates -> IllegalStateException
OBSERVER id=5 rows=1
CHECK PASS raw callback exception cannot undo committed row
CHECK PASS afterCommit still sees bound resource before cleanup
CONNECTION outer=12195 requiresNew=12202
CHECK PASS new transaction uses distinct physical backend
OBSERVER id=6 rows=1
OBSERVER id=7 rows=1
CHECK PASS original and explicit new transaction both committed
CHECK PASS resource unbound after completion
