On 08/18/2009 05:08 PM, Manik Surtani wrote: > > On 18 Aug 2009, at 15:50, Galder Zamarreno wrote: > >> Hi all, >> >> More stuff related to the infinispan cache provider. The way we deal >> with transactions that are not ACTIVE or PREPARING has changed from >> JBoss Cache to Infinispan. >> >> In JBoss Cache, TransactionTable.getCurrentTransaction() logged a >> message if the transaction's status was committed whereas Infinispan >> simply throws an IllegalStateException if the status is neither ACTIVE >> nor PREPARING. >> >> This change of behaivour is making Infinispan cache provider tests that >> do bulk modifications to fail. The reason it fails is because Hibernate >> has a javax.transaction.Synchronization implementation called >> CacheSynchronization that in it's afterCompletion(), it leads to call >> BulkOperationCleanupAction.evictEntityRegions() which clears the cache >> for the affected entities. Now, since the tx status is COMMITTED, the >> test fails. > > Surely though, at that stage the tx has already committed (and hence the > name of the callback - afterCompletion()). If anything, operations here > should happen outside the scope of the tx.
The cache provider integration layer does not know that the call to EntityRegionAccessStrategy.evictAll() is coming from an afterCompletion() call. I don't know whether it can be assumed that calls to evictAll() always come from afterCompletion() stages and hence, I can suspend the tx in every evictAll() call. Hibernate gang should be able to help with this. > > Can't the cleanup call happen in beforeCompletion(), after any Hibernate > resources have performed their beforeCompletion() steps? I have no clue whether this is possible. Again, Hibernate guys, can you answer this? > >> Would there be any problems in maintaining the previous logic? > > While I don't have any problems reverting to the older logic, I just > feel that doing so hides bugs elsewhere. I agree but seeing that the logic was present in JBC, I assumed that this might have been discussed in the past. > > Cheers > -- > Manik Surtani > ma...@jboss.org > Lead, Infinispan > Lead, JBoss Cache > http://www.infinispan.org > http://www.jbosscache.org > > > > -- Galder ZamarreƱo Sr. Software Engineer Infinispan, JBoss Cache _______________________________________________ hibernate-dev mailing list hibernate-dev@lists.jboss.org https://lists.jboss.org/mailman/listinfo/hibernate-dev