These changes are the result of my reading section 18.2.2 "System Exceptions" of the EJB 2.1 spec, which encourages the bean provider to (1) propagate an unchecked exception to the container and (2) wrap an unrecoverable checked exception into an EJBException.
The container catches any unchecked exception, rolls back the transaction and throws an EJBException to the (local) client - not the original exception.
Throwing a PvmException will also roll back the transaction, but the container will still wrap it into an EJBException, so why bother.
we could think of a PvmEjbException (extends EJBException), but i don't see the need for that. you ?