Cannot set a property to null
-----------------------------
Key: CMIS-481
URL: https://issues.apache.org/jira/browse/CMIS-481
Project: Chemistry
Issue Type: Bug
Components: python-cmislib
Reporter: Jeff Potts
Assignee: Jeff Potts
Priority: Minor
Currently, when you create a props dict and use it with either createDocument
or updateProperties, the code tries to guess the appropriate cmis element name
(cmis:propertyString, cmis:propertyDateTime, etc.) by performing a type test on
the value. It does not currently do a lookup to the type definition to
determine the property type (or even validate that the property name is defined
as part of the property).
Additionally, there is no specific check for None. So if you want to try to set
a property to null there is no way to do it. The code will treat properties set
to None as a string. If you happen to be setting a string prop, the value will
be converted to the string "None". If you happen to be setting any other data
type, it is likely you'll see a runtime exception.
>>> doc.properties['sc:level']
4
>>> doc = doc.updateProperties({'sc:level':None})
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/opt/src/chemistry/cmislib/src/cmislib/model.py", line 1947, in
updateProperties
**args)
File "/opt/src/chemistry/cmislib/src/cmislib/model.py", line 283, in put
self._processCommonErrors(result)
File "/opt/src/chemistry/cmislib/src/cmislib/model.py", line 315, in
_processCommonErrors
raise RuntimeException(error.status, error.url)
cmislib.exceptions.RuntimeException: Error 500 at
http://localhost:8080/alfresco/s/cmis/s/workspace:SpacesStore/i/4d783751-0a96-4b01-96a1-2b3e03d45d90
>>> doc = doc.updateProperties({'sc:difficulty':None})
>>> doc.properties['sc:difficulty']
u'None'
In order to properly set a property to null, the code cannot rely on the type
test. It will have to do a lookup to the type definition so that it can figure
out which cmis property element name to use. As long as we're incurring the
cost of the type definition lookup, we might as well validate that the property
is defined.
--
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