jackrabbit-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Peeter Piegaze (JIRA)" <j...@apache.org>
Subject [jira] Created: (JCR-517) Reserved status of namespace jcr not enforced.
Date Thu, 27 Jul 2006 19:07:13 GMT
Reserved status of namespace jcr not enforced.
----------------------------------------------

                 Key: JCR-517
                 URL: http://issues.apache.org/jira/browse/JCR-517
             Project: Jackrabbit
          Issue Type: Bug
          Components: versioning
    Affects Versions: 1.1
            Reporter: Peeter Piegaze
            Priority: Minor
             Fix For: 1.1


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.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message