jackrabbit-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "David Rauschenbach (JIRA)" <j...@apache.org>
Subject [jira] Commented: (JCR-1212) JCR2SPI Node.hasProperty(String) "optional property incompatibility" with Jeceira
Date Tue, 20 Nov 2007 17:01:43 GMT

    [ https://issues.apache.org/jira/browse/JCR-1212?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12543947

David Rauschenbach commented on JCR-1212:

Sorry I've gone silent... worked through the last two weekends. Feel free to close this issue
if you want, since I'm not going to be coding any unit tests this week. Thanks. I'll leave
the exception mapping in my Jeceira-to-Jackrabbit mapping layer for now, and we'll have to
worry about fixing either or both or neither products later.

> JCR2SPI Node.hasProperty(String) "optional property incompatibility" with Jeceira
> ---------------------------------------------------------------------------------
>                 Key: JCR-1212
>                 URL: https://issues.apache.org/jira/browse/JCR-1212
>             Project: Jackrabbit
>          Issue Type: Improvement
>          Components: SPI
>    Affects Versions: 1.4
>         Environment: 1.4-SNAPSHOT
>            Reporter: David Rauschenbach
>            Priority: Minor
> Jeceira throws a PathNotFoundException when an SPI2JCR-wrapped Jeceira repository gets
invoked with the SPI getPropertyInfo, specifying an optional property that does not exist
for a given node instance.
> JCR2SPI only expects an ItemNotFoundException to be thrown in such a case, which prevents
Node.hasProperty(String) from returning true/false, and instead results in a RepositoryException
being thrown, which in effect is an interoperability issue.
> JCR2SPI compatibility with Jeceira-based repositories would be significantly improved
if the code in NodeEntryImpl.java:loadPropertyEntry(PropertyId) caught not only ItemNotFoundException,
but also PathNotFoundException, before returning null in both cases.
> Proposed change to NodeEntryImpl.java:
>     private PropertyEntry loadPropertyEntry(PropertyId childId) throws RepositoryException
>         try {
>             PropertyState state = factory.getItemStateFactory().createDeepPropertyState(childId,
>             return (PropertyEntry) state.getHierarchyEntry();
>         } catch (ItemNotFoundException e) {
>             return null;
>         } catch (PathNotFoundException e) { <-- new
>             return null; <-- new
>         }
>     }

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message