[hibernate-issues] [Hibernate-JIRA] Created: (HHH-4880) EntityManager.refresh does not throw EntityNotFoundException for removed entity

jaikiran (JIRA) noreply at atlassian.com
Thu Feb 4 09:00:29 EST 2010


EntityManager.refresh does not throw EntityNotFoundException for removed entity
-------------------------------------------------------------------------------

                 Key: HHH-4880
                 URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-4880
             Project: Hibernate Core
          Issue Type: Bug
          Components: entity-manager
    Affects Versions: 3.5.0-Beta-4
         Environment: Hibernate 3.5.0-Beta-4, JBoss AS trunk (from which 6.0.0.M2 will be released), Sun Java 1.6 
            Reporter: jaikiran


The EntityManager.refresh method says this:

/**
    * Refresh the state of the instance from the database,
    * overwriting changes made to the entity, if any.
    *
    * @param entity
    * @throws IllegalStateException if this EntityManager has been closed
    * @throws IllegalArgumentException     if not an entity
    *                                      or entity is not managed
    * @throws TransactionRequiredException if invoked on a
    *                                      container-managed entity manager of type
    *                                      PersistenceContextType.TRANSACTION and there is
    *                                      no transaction.
    * @throws EntityNotFoundException      if the entity no longer
    *                                      exists in the database
    */
   public void refresh(Object entity); 


JBoss EJB3 testsuite has a testcase which currents tests that this method works as expected http://anonsvn.jboss.org/repos/jbossas/projects/ejb3/trunk/testsuite/src/test/java/org/jboss/ejb3/test/regression/ejbthree290/unit/Ejb290UnitTestCase.java

In short, the testcase does this:

MyEntity e = manager.find(MyEntity.class, id);
      local.removeEntity(e.id);
      try
      {
         manager.refresh(e);
      }
      catch (EntityNotFoundException e1)
      {
         return; // correct
      }

Starting 3.5.0-beta-4 of hibernate, this test fails with the following (unexpected) exception:

Caused by: org.hibernate.AssertionFailure: object must be non-null.
    at org.hibernate.engine.StatefulPersistenceContext.setReadOnly(StatefulPersistenceContext.java:1340)
    at org.hibernate.impl.SessionImpl.setReadOnly(SessionImpl.java:1982)
    at org.hibernate.event.def.DefaultRefreshEventListener.onRefresh(DefaultRefreshEventListener.java:154)
    at org.hibernate.event.def.DefaultRefreshEventListener.onRefresh(DefaultRefreshEventListener.java:62)
    at org.hibernate.impl.SessionImpl.fireRefresh(SessionImpl.java:1108)
    at org.hibernate.impl.SessionImpl.refresh(SessionImpl.java:1088)
    at org.hibernate.ejb.AbstractEntityManagerImpl.refresh(AbstractEntityManagerImpl.java:660)
    at org.hibernate.ejb.AbstractEntityManagerImpl.refresh(AbstractEntityManagerImpl.java:636)
    at org.jboss.jpa.impl.tx.TransactionScopedEntityManager.refresh(TransactionScopedEntityManager.java:224)
    at org.jboss.ejb3.test.regression.ejbthree290.DAOBean.findAndDelete(DAOBean.java:58) 



 

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://opensource.atlassian.com/projects/hibernate/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the hibernate-issues mailing list