[jboss-jira] [JBoss JIRA] (AS7-6365) Hibernate/Infinispan 2nd Level Caches set to transaction-mode=NONE stop functioning after an explicit eviction

Scott Marlow (JIRA) jira-events at lists.jboss.org
Tue Jan 29 11:17:47 EST 2013


    [ https://issues.jboss.org/browse/AS7-6365?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12751116#comment-12751116 ] 

Scott Marlow commented on AS7-6365:
-----------------------------------

If this is still a bug in the latest AS7 sources and latest Hibernate, a https://hibernate.onjira.com/browse/HHH jira should be created for the defect.  

[Download the latest AS7 nightly build|http://community.jboss.org/thread/167590] and recreate with that.  If you can recreate, then update the Hibernate jars (see [note here for some guidance|https://docs.jboss.org/author/display/AS72/JPA+Reference+Guide#JPAReferenceGuide-ReplacingthecurrentHibernate4.0.xjarswithanewerversion]) to use the latest Hibernate 4.1 release (currently 4.1.9).

This NPE in the Hibernate-Infinispan integration code may of been fixed already.  Let us know.
                
> Hibernate/Infinispan 2nd Level Caches set to transaction-mode=NONE stop functioning after an explicit eviction
> --------------------------------------------------------------------------------------------------------------
>
>                 Key: AS7-6365
>                 URL: https://issues.jboss.org/browse/AS7-6365
>             Project: Application Server 7
>          Issue Type: Bug
>          Components: JPA / Hibernate
>    Affects Versions: 7.1.3.Final (EAP)
>            Reporter: Fredrik Lagerblad
>            Assignee: Scott Marlow
>
> The caches in the 'infinispan' subsystem configured with <transaction mode="NONE"/> get stuck in state= CLEARING when you perform a programmatic evict() on them to clear the caches. (Using e.g. em.getEntityManagerFactory().getCache().evictAll() )
>     
> The problem seem to lie within the class 'org.hibernate.cache.infinispan.impl.BaseRegion, where the 'checkValid' method fails to clear the cache (and set back the state to VALID). The reason it fails is due to that it calls:  cacheAdapter.withinTx() , which in turn tries to get the TransactionManager from the cache (which seems to be null for these non-transactional caches), and then NPEs on the tm.begin(); The NPE is caught and logs out "Could not invalidate region: null", and never set the state in VALID. So from thereon the caches are in an Invalid state and is not used anymore by Infinispan, thus leading to much performance.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


More information about the jboss-jira mailing list