I see what you mean, but you must look at it as being the container.
The question states "what action will the container do".
So, if you say A), it would mean the containers re-throws the PersistenceException and that is NOT the case. The container wraps the persistence exception and then throws a EJBException to which this persistenceexception is chained (so its not retrhowing the same PersistenceException as thrown from the business code)
Anway, the correct answer was ONLY C). There were only radio buttons, no checkboxes. I got this question from the free sun assesment questions on SCBCD. I find it weird since the solution to this question should be C) AND B)
I tested on JBOSS
and my client does get a EJBException with the PersistenceException chained. So option B) is also correct stating that the container will wrapp the original PersistenceException in an EJBException that is then thrown to the client.
Now that I think of it, maybe its in the small details here.
B) does not say anything about 'wrapping' the PersistenceException with a EJBException. So its probably not 100% complete and thereby not valid as answer. The container does throw an EJBException, but wrapping the original PersistenceException and that is not mentioned in the answer. Anyway, I hope the real exam is more clear on these kind of things
[ December 30, 2008: Message edited by: Jim Janssens ]