Let's say that this is a CMT bean. Transactions are scoped at method level for all CMT beans. When an application exception is thrown, the container is required by the EJB spec not to rollback the transaction. There are two ways to end a transaction: commit or rollback. So, the container must commit the transaction at the end of the method.
SCJP 1.4, SCWCD 1.3, SCBCD 1.3
You showed up just in time for the waffles! And this tiny ad:
Building a Better World in your Backyard by Paul Wheaton and Shawn Klassen-Koop