[
https://issues.apache.org/jira/browse/GERONIMO-4576?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13032411#comment-13032411
]
Vamsavardhana Reddy commented on GERONIMO-4576:
-----------------------------------------------
I notice that revs 1097555 and 1097965 are once again masking the original
persistence exception and putting a SetRollbackOnlyException() as the cause. To
give an example, with rev 1076770 applied in my code, I am getting the
following exception report:
REPORT-1:
org.apache.jasper.JasperException: javax.ejb.EJBTransactionRolledbackException:
Transaction was rolled back, presumably because setRollbackOnly was called
during a synchronization: Unable to commit: transaction marked for rollback
root cause:
javax.ejb.EJBTransactionRolledbackException: Transaction was rolled back,
presumably because setRollbackOnly was called during a synchronization: Unable
to commit: transaction marked for rollback
root cause:
javax.transaction.RollbackException: Unable to commit: transaction marked for
rollback
root cause:
<openjpa-1.2.2-r422266:898935 fatal general error>
org.apache.openjpa.persistence.PersistenceException: The transaction has been
rolled back. See the nested exceptions for details on the errors that occurred.
...
--------------
With revs 1076770, 1097555 and 1097965 applied in my code, I am getting the
following exception report in the same case (notice that the persistence
exception is lost):
REPORT-2:
org.apache.jasper.JasperException: javax.ejb.EJBTransactionRolledbackException:
Transaction was rolled back, presumably because setRollbackOnly was called
during a synchronization: Unable to commit: transaction marked for rollback
root cause:
javax.ejb.EJBTransactionRolledbackException: Transaction was rolled back,
presumably because setRollbackOnly was called during a synchronization: Unable
to commit: transaction marked for rollback
root cause:
javax.transaction.RollbackException: Unable to commit: transaction marked for
rollback
root cause:
org.apache.geronimo.transaction.manager.SetRollbackOnlyException:
setRollbackOnly() called. See stacktrace for origin
--------
> Make persistence exceptions more visible to client
> --------------------------------------------------
>
> Key: GERONIMO-4576
> URL: https://issues.apache.org/jira/browse/GERONIMO-4576
> Project: Geronimo
> Issue Type: Improvement
> Security Level: public(Regular issues)
> Components: persistence
> Affects Versions: 2.2
> Environment: Linux, Windows
> Reporter: Joe Bohn
> Priority: Minor
> Fix For: Wish List
>
>
> See http://issues.apache.org/jira/browse/GERONIMO-3907 for details of the
> original problem. That core problem was resolved. However, upon resolution
> it was mentioned that it would be beneficial to report more specific failure
> information back to the client. From GERONIMO-3907:
> Ralf Baumhof - 06/May/08 06:17 AM
> Today if have tested the new Geronimo release 2.1.1 (published on
> 28.04.2008). The problem is now fixed. If the server gets an error on trying
> a commit, this error is now thrown to the web bean.
> Exception text:
> javax.ejb.EJBTransactionRolledbackException: Transaction was rolled back,
> presumably because setRollbackOnly was called during a synchronization:
> Unable to commit: transaction marked for rollback Root Cause:
> javax.transaction.TransactionRolledbackException : Transaction was rolled
> back, presumably because setRollbackOnly was called during a synchronization:
> Unable to commit: transaction marked for rollback
> Unfortunately there is no proper root cause attached to the exception. So the
> cause can only be seen in the server console, but can not be reported to the
> user. It would be very nice if you could change this in a later release.
> Thanks for your help.
> Vincent MATHON - 06/Nov/08 02:03 AM
> I agree that exceptions on the server side should not be thrown to the client
> side since such exceptions types might not be known by the client. However,
> for unit testing purpose, it is useful to attach the root cause to the
> RollBackException. I have modified a few lines in
> org.apache.geronimo.transaction.manager.TransactionImpl.java to attach the
> root cause in case of RollBackException and it works for my unit testing
> purpose (I have not enough background on the java transaction architecture
> topic to submit a patch for production). It would be great to define a
> configuration parameter that permits to provide the root cause to the client
> and keep the current behaviour that does not by default.
> Geoff Callender - 22/Dec/08 03:36 AM
> It's useful for more than unit testing - it's essential to be able to inform
> the client what's wrong with the request. I've added some examples of this to
> https://issues.apache.org/jira/browse/OPENEJB-782 .
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira