It seems to be always protected:

private static QNodeDefinition createRootNodeDef() {
    QNodeDefinitionBuilder def = new QNodeDefinitionBuilder();

    // FIXME need a fake declaring node type:
// rep:root is not quite correct but better than a non-existing node type
    def.setDeclaringNodeType(NameConstants.REP_ROOT);
    def.setRequiredPrimaryTypes(new Name[]{NameConstants.REP_ROOT});
    def.setDefaultPrimaryType(NameConstants.REP_ROOT);
    def.setMandatory(true);
    def.setProtected(false);
    def.setOnParentVersion(OnParentVersionAction.VERSION);
    def.setAllowsSameNameSiblings(false);
    def.setAutoCreated(true);
    return def.build();
}

NodeTypeRegistry:1808

Michael

On 25.11.11 16:36, Alex Parvulescu wrote:
ok, I kinda lost here

any ideas how the root node can be sometimes protected?

http://www.day.com/maven/javax.jcr/javadocs/jcr-2.0/javax/jcr/nodetype/ItemDefinition.html#isProtected()
http://www.day.com/specs/jcr/2.0/3_Repository_Model.html#3.7.2.2 Protected

alex

On Fri, Nov 25, 2011 at 5:30 PM, Alex Parvulescu
<[email protected] <mailto:[email protected]>> wrote:

     > Sounds right, though I'm not sure if the importer from JCR-3152
    should take care of adding that mixin automatically.

    Good point, I went into that a bit, and it seems that the importer
    (AccessControlImporter) *may* do that in the #start method (which
    never gets called).

    The reason can be found under SessionImporter#startNode:
         if (parent.getDefinition().isProtected())

    Here parent is the root node, which seems to fail the test thus
    makin the SessionImporter skip the vital #start call.
    Indeed checking sImpl.getRootNode().getDefinition().isProtected()
    yields false within the test context.

    alex

    On Fri, Nov 25, 2011 at 4:11 PM, Alex Parvulescu
    <[email protected] <mailto:[email protected]>> wrote:

        I can't get it to pass anymore:

        By running
             rm -rf target; mvn -Dtest=AccessControlImporterTest clean test
        on jackrabbit-core (a fresh trunk checkout)

        It fails every time:

        --------
        Running org.apache.jackrabbit.core.xml.AccessControlImporterTest
        Tests run: 13, Failures: 1, Errors: 1, Skipped: 0, Time elapsed:
        14.925 sec <<< FAILURE!

        Results :

        Failed tests:
        
testImportRepoACLAtRoot(org.apache.jackrabbit.core.xml.AccessControlImporterTest):
        expected:<1> but was:<0>

        Tests in error:

        
testImportPrincipalBasedACL(org.apache.jackrabbit.core.xml.AccessControlImporterTest):
        Authorizable for 'administrators' already exists:

        Tests run: 13, Failures: 1, Errors: 1, Skipped: 0
        --------

        It is probably related to running the tests concurrently
        (JCR-3152 mentions that as well).

        alex

        On Fri, Nov 25, 2011 at 3:47 PM, Alex Parvulescu
        <[email protected] <mailto:[email protected]>>
        wrote:

            Good question, I don't know what are the assumptions about
            the root node having some special acl properties.

            I've only seen the last 3 builds fail because of that. It
            apparently is a deeper issue. Maybe the proposed fix is not
            a good idea.

            alex

            On Fri, Nov 25, 2011 at 3:32 PM, Jukka Zitting
            <[email protected] <mailto:[email protected]>>
            wrote:

                Hi,

                On Fri, Nov 25, 2011 at 2:46 PM, Alex Parvulescu
                <[email protected]
                <mailto:[email protected]>> wrote:
                 > After studying the neighboring tests, namely inspired by
                 > AccessControlImporterTest#testImportRepoACLAtTestNode
                 > I think the fix is as simple as adding the missing
                acl repo info to the root
                 > node to #testImportRepoACLAtRoot:
                 >   target.addMixin("rep:RepoAccessControllable");

                Sounds right, though I'm not sure if the importer from
                JCR-3152 should
                take care of adding that mixin automatically.

                I encountered the same issue before cutting the 2.3.4
                release
                candidate and came to the same conclusion that the
                rep:RepoAccessControllable mixin is not present. Since
                the problem
                doesn't occur consistently across builds I thought that
                it was due to
                some test ordering issue. I fixed the test execution
                order in revision
                1205866 which seemed to have solved the issue for me,
                but apparently
                that was just a coincidence.

                I wonder if we're still missing something. Why does the
                test pass
                sometimes without the proposed fix?

                BR,

                Jukka Zitting





Reply via email to