You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@geronimo.apache.org by "Geoff Callender (JIRA)" <ji...@apache.org> on 2012/12/24 12:30:13 UTC

[jira] [Commented] (GERONIMO-4576) Make persistence exceptions more visible to client

    [ https://issues.apache.org/jira/browse/GERONIMO-4576?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13539252#comment-13539252 ] 

Geoff Callender commented on GERONIMO-4576:
-------------------------------------------

Well this is sad. Nearly 5 years on since the problem began with GERONIMO-3907 and still I have to use a ridiculous workaround I described 4 years ago in https://issues.apache.org/jira/browse/OPENEJB-782 - inside the transaction I manually flush in a try-catch block and convert the exception to one of my own.
                
> 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.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira