This is the process of thinking out aloud and please tell me if the following explanation in support for the original answers are correct.
1. This code might be MDB.
2. if it is MDB, it is Bean Managed.
3. So call to setRollbackOnly() itself will throw an exception
IllegalStateException but in case of MDB, it will be logged.
4. And since the exception is System exception, it would prevent the method from successfully completing. Spec page 377. And thus container will ensure that rollback occurs.
[ August 14, 2005: Message edited by: seemapanth Joshi ]