jackrabbit-oak-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jukka Zitting (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (OAK-89) Improve exception handling
Date Wed, 09 May 2012 09:52:10 GMT

    [ https://issues.apache.org/jira/browse/OAK-89?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13271254#comment-13271254

Jukka Zitting commented on OAK-89:

bq. precedence to using assertions instead

OK by me.

bq. ... specialized runtime exception ... only the ultimate consumer in a chain of calls would
have to catch that exceptions and do something about it ...

The trouble with this approach is that the {{NameMapper}} can't know what kind of a RepositoryException
or other behavior (like a {{session.nodeExists(...)}} call returning {{false}}) is needed
higher up the stack. So you can't just do something like "OakException which extends from
RuntimeException and encapsulate a RepositoryException into it" and expect this to work for
all cases.

I'm fine with a checked {{NoSuchNameException}} instead of a {{null}} return value from {{getOakName}}
if it makes the code cleaner and/or safer, and doesn't lead to too much control flow being
handled via exceptions.

I'll wrap up a patch of how I see the error handling work.

> Improve exception handling
> --------------------------
>                 Key: OAK-89
>                 URL: https://issues.apache.org/jira/browse/OAK-89
>             Project: Jackrabbit Oak
>          Issue Type: Improvement
>          Components: core, jcr
>    Affects Versions: 0.2.1
>            Reporter: Michael Dürig
>         Attachments: OAK-89-2.patch, OAK-89.patch
> As discusses on the @oak-dev list [1] we need to improve the way exceptions are thrown
and handled. 
> I suggest to create a OakException which extends from RuntimeException and encapsulate
a RepositoryException into it. These exceptions can then be handled where appropriate. We
can the later turn this into a more sophisticated mechanism where the OakException is mapped
to a corresponding RepositoryException by an injected mapping (see Jukka's proposal in the
> [1] http://markmail.org/message/t5czrpkvyamn7sym

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira


View raw message