jackrabbit-dev mailing list archives

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

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

David Nuescheler commented on JCR-1212:
---------------------------------------

I would take the following position on this. 

I think that JCR2SPI and SPI2JCR should be as tolerant as possible with different "JCR compliant"
implementations.
"JCR compliant" being the keyword ;)

I guess I would agree to make modifications in any SPI layer in case we find out that we are
not lenient enough
to allow compliant repositories. I would probably have the jeceira guys fix their behavior
in case they
clearly violate the JCR spec.

David, do you have an indication on what JCR method exactly you are talking about, and if
the jeceira behaviour
according to your reading of the JCR v1.0 spec is correct? Does that make sense?


> 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.


Mime
View raw message