[
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, this);
> 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.