I have seen individual posts regarding this subject, I just want to make sure that I can summarize the correct behavior as follows, and ask one more question:
for both BMT and CMT beans, if there is a system exception in the middle of a transaction, the container logs the exception, rolls back the transaction and discard the bean instance. Again, this is for BOTH BMT and CMT beans.
now, when does the above system exception cause the container to throw TransactionRolledBackException or TransactionRolledBackLocalException to client? Does this have anything to do with transaction attributes in DD? Does ONLY CMT beans throw this exception?
The container should throw one of these exceptions after discarding the bean instance if the instance had run in a client transaction. One can therefore deduce that the bean method must have had a transaction attribute of Required, Mandatory or Supports.