We're concerned that synchronizing on a lock when accessing the cache could cause deadlock if invoked from a thread that has an open OTM transaction. If another thread attempts to access mulgara while holding the cache lock, it will wait forever for the OTM transaction. The thread with the OTM transaction will wait for the cache lock etc.
The suggested safeguard is to skip synchronization on the lock inside CacheAdminHelper?.getFromCache() and getFromCacheE() if we detect that the caller has an open OTM transaction.
We will also log an INFO level message if this occurs so we can track under which circumstances this might occur.