Robert Munteanu created SLING-4035:
--------------------------------------

             Summary: Changing the jcr primary type does not work if properties 
are added
                 Key: SLING-4035
                 URL: https://issues.apache.org/jira/browse/SLING-4035
             Project: Sling
          Issue Type: Bug
          Components: IDE
    Affects Versions: Sling Eclipse IDE 1.0.2
            Reporter: Robert Munteanu
             Fix For: Sling Eclipse IDE 1.0.4


If a node already exists with a certain node type, for instance nt:folder and 
the IDE tooling tries to update it and also add a property incompatible with 
the existing node primary type, e.g.

{code:xml}
<jcr:root xmlns:sling="http://sling.apache.org/jcr/sling/1.0"; 
xmlns:vlt="http://www.day.com/jcr/vault/1.0"; 
xmlns:jcr="http://www.jcp.org/jcr/1.0";
    jcr:primaryType="sling:Folder"
    sling:resourceType="bla/some/sample">
</jcr:root>
{code}

the publish operation will fail with 

{noformat}Failed publishing path=/content, result=JcrResult[ success:false, 
exception: org.apache.sling.ide.transport.RepositoryException - 
javax.jcr.nodetype.ConstraintViolationException: no matching property 
definition found for 
{http://sling.apache.org/jcr/sling/1.0}resourceType]{noformat}

The workaround is to delete the existing node, but that's not always possible 
or obvious. We should be able to tweak the code to be smarter about changing 
node types.

Some situations to validate:

- upgrading a node, e.g. nt:folder to sling:Folder with property added
- downgrading a node, e.g. sling:Folder to nt:folder with existing property



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to