Hi Marina,
1. I think any changes to make the behavior consistent wherever
setRollbackOnly() is called would cause significant compatibility
problems. For better or worse, the intent of the spec seems to be to give
users the flexibility to suppress an exception when rolling back, so there
are likely applications that are taking advantage of it. Changing the
spec to require the container to ignore system exceptions that occur after
rollback may also break applications, specifically those applications that
were coded to look for those exceptions.
2. One complaint we've heard from uses is that, in some cases, they don't
get an exception when a transaction rolls back. If a change is made, I
think a useful change would to be to always throw some exception when a
transaction is rolled back, and it would need to be optionally enabled to
preserve backward compatibility.
-Jeremy
From: Marina Vatkina <marina.vatkina_at_oracle.com>
To: jsr345-experts_at_ejb-spec.java.net,
Date: 03/06/2013 02:46 PM
Subject: [jsr345-experts] EJB_SPEC-90
Experts,
I'd like to know your opinion on
http://java.net/jira/browse/EJB_SPEC-90.
1. Will it be a backward incompatible change for the EJB container to
suppress all system exceptions after the transaction has been marked for
rollback?
2. If the answer to #1 is yes, do you think the spec should have more
details on what happens when an exception is thrown after the
transaction has been marked for rollback?
thanks,
-marina