[jboss-jira] [JBoss JIRA] (AS7-2968) @PreUpdate entity callback not running in caller's context when Container Managed Transactions are used

jw (Created) (JIRA) jira-events at lists.jboss.org
Fri Dec 9 10:30:40 EST 2011


@PreUpdate entity callback not running in caller's context when Container Managed Transactions are used
-------------------------------------------------------------------------------------------------------

                 Key: AS7-2968
                 URL: https://issues.jboss.org/browse/AS7-2968
             Project: Application Server 7
          Issue Type: Bug
          Components: EJB, JPA / Hibernate
    Affects Versions: 7.1.0.Beta1
            Reporter: jw
            Assignee: jaikiran pai


If an Entity Bean has a @PreUpdate listener, the listener is not called in the context of the caller (session bean) in case of Container Managed Transactions.
As a result, an jndi lookup in the callback for 'java:comp/EJBContext' returns always null. The @PreUpdate callback should run in the context of the caller.

{noformat}
@Entity
@EntityListeners({ MyListener.class })
public class MyEntity {
... 
}
{noformat}


{noformat}
public class MyListener {
 
    @PreUpdate
    @PrePersist
    public void onEntityCallback(Object entity) {
          EJBContext ctx;
 
          ctx = createInitialContext().lookup("java:comp/EJBContext");
          System.out.println(ctx.getCallerPrincipal().getName());
    }
}
{noformat}




{noformat}
@Stateless
public class MyServiceBean implements MyServiceRemote {

    @Override
    public void updateEntity(MyEntity entity) {
        entityManager.merge(entity);
    }
}
{noformat}

This listener works fine on @PrePersist (Container- and Bean Managed Transactions) but fails on @PreUpdate with a NullPointerException if container managed transactions are used.

Workaround: use User Transactions instead of Container Managed Transactions 

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the jboss-jira mailing list