chemistry-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jose Carlos Campanero (Created) (JIRA)" <j...@apache.org>
Subject [jira] [Created] (CMIS-523) Inconsistency when updating properties
Date Tue, 17 Apr 2012 15:36:19 GMT
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

       

Mime
View raw message