jackrabbit-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jukka Zitting (JIRA)" <j...@apache.org>
Subject [jira] Resolved: (JCR-517) Reserved status of namespace jcr not enforced.
Date Wed, 01 Apr 2009 09:03:13 GMT

     [ https://issues.apache.org/jira/browse/JCR-517?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Jukka Zitting resolved JCR-517.
-------------------------------

    Resolution: Won't Fix
      Assignee: Jukka Zitting

Resolving as Won't Fix. Properties like jcr:title are already in wide use.

Users should just be aware of the problems of reusing property names like jcr:frozenMixinTypes.

> Reserved status of namespace jcr not enforced.
> ----------------------------------------------
>
>                 Key: JCR-517
>                 URL: https://issues.apache.org/jira/browse/JCR-517
>             Project: Jackrabbit Content Repository
>          Issue Type: Bug
>          Components: jackrabbit-core, versioning
>    Affects Versions: 0.9, 1.0, 1.0.1
>            Reporter: Peeter Piegaze
>            Assignee: Jukka Zitting
>            Priority: Minor
>
> The failure to enforce the reserved status of the jcr namespace leads to at least one
problem.
> A versionable node can be created with properties jcr:frozenPrimaryType, jcr:frozenMixinTypes
or jcr:frozenUuid. These clash with the meta-data properties used in the nt:frozenNode. 
> When the versionable is checked-in and then later restored, the corrupt frozen node can
cause an exception. The following code demonstrates the problem:
>  
> <code>
>         Repository repository = new TransientRepository();
>         Session session = repository.login(new SimpleCredentials("username", "password".toCharArray()));
>         try {
>             Node root = session.getRootNode();
>             Node a = root.addNode("a", "nt:unstructured");
>             a.addMixin("mix:versionable");
>             a.setProperty("jcr:frozenMixinTypes", new String[]{"x"});
>             session.save();
>             Version v = a.checkin();
>             a.checkout();
>             a.remove();
>             session.save();
>             root.restore(v, "a", true);
>         } finally {
>             session.logout();
>         }
> </code>
> The solution is to enforce the reserved status of jcr (and nt, mix and xml, while we
are at it). The rules should be:
> 1) A client cannot register a node type that uses reserved namespaces in either the name
of the node type or in the name of any off its child item definitions.
> 2) A client cannot create a residual child item with a name that uses a reserved namespace.
Clients can, of course, create an item with a reserved namespace if the item is defined in
a built-in JCR node type.

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