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