Hibernate makes legitimate calls into the cache during afterCompletion(). See
http://www.jboss.com/index.html?module=bb&op=viewtopic&t=102202
and related JIRA
http://jira.jboss.com/jira/browse/JBCACHE-982.
There's this bit in TxInterceptor.setTransactionInContext() that may be relevant:
| ctx.setTransaction( tx );//tx == null || !isValid(tx) ? null : tx); // make sure the
tx is valid, otherwise set as null - see JBCACHE-785
| if (ctx.getTransaction() == null) ctx.setGlobalTransaction(null); // nullify
gtx as well
Not sure how the commented out bit was meant to work or why it's commented, but if it
were executed before the ctx.setTransaction( tx ); call, it would have the effect of
treating Hibernate's afterCompletion() call as occuring outside the tx scope, which
AFAICT is Hibernate's intent.
Hmm... that might screw up the if test in invoke() that immediately follows this call. Not
sure; out of my depth here. :-)
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4028397#...
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&a...