I don't find it strange. You're calling a method from the same bean, and catching the exception. The container cannot do anything in that case. You'd have to set the transaction for rollback yourself. If your thowException would also throw the exception, the container would get it, mark the transaction to be rolled back, and rethrow the exception to the client.