If a session bean instance is participating in a transaction, it is an error for a client to invoke a method on the session object such that the transaction attribute specified in the bean�s metadata annotations and/or the deployment descriptor would cause the container to execute the method in a different transaction context or in an unspecified transaction context. In such a case, the javax.ejb.EJBException will be thrown to a client of the bean�s business interface.
In other words:
You cannot change the transactional context of a stateful session bean (for another or null context) if it is already involved in a transaction. It's true for all stateful session bean wether it implements SessionSynchronization or not.
Hope it helps...
SCJP5 | SCBCD5 | SCEA5 Part 1
The problems of the world fade way as you eat a piece of pie. This tiny ad has never known problems: