Inconsistency when updating properties
--------------------------------------

                 Key: CMIS-523
                 URL: https://issues.apache.org/jira/browse/CMIS-523
             Project: Chemistry
          Issue Type: Bug
          Components: opencmis-server-jcr
    Affects Versions: OpenCMIS 0.6.0
            Reporter: Jose Carlos Campanero


Is it possible that errors arise when updating the properties of documents or 
folders?

For instance, DefaultDocumentTypeHandler makes use of the content node to set 
the property values ​​from the type definition at node's creation:
{code}
    public JcrNode createDocument(JcrFolder parentFolder, String name, 
Properties properties, ContentStream contentStream, VersioningState 
versioningState) {
        try {
            Node fileNode = parentFolder.getNode().addNode(name, 
NodeType.NT_FILE);
            if (versioningState != VersioningState.NONE) {
                fileNode.addMixin(NodeType.MIX_SIMPLE_VERSIONABLE);
            }

            Node contentNode = fileNode.addNode(Node.JCR_CONTENT, 
NodeType.NT_RESOURCE);
            contentNode.addMixin(NodeType.MIX_CREATED);

            // compile the properties
            JcrFolder.setProperties(contentNode, getTypeDefinition(), 
properties);
{code}
In contrast, when the document properties are updated by the method 
updateProperties in JcrNode is updated 'node', not the context node:
{code}
            // Are there properties to update?
            PropertyUpdater propertyUpdater = 
PropertyUpdater.create(typeManager, getTypeId(), properties);

            JcrVersionBase jcrVersion = isVersionable()
                    ? asVersion()
                    : null;

            // Update properties. Checkout if required
            boolean autoCheckout = false;
            if (!propertyUpdater.isEmpty()) {
                autoCheckout = jcrVersion != null && !jcrVersion.isCheckedOut();
                if (autoCheckout) {
                    jcrVersion.checkout();
                }

                // update the properties
                propertyUpdater.apply(node);
            }
{code}
Thus, when defining types derived from the base types with specific properties 
this causes errors since it indicates that the properties that must be updated 
are not defined in the node.

Maybe it is necessary to override this functionality in the derived types?

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira


Reply via email to