[
https://issues.apache.org/jira/browse/CMIS-530?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Florian Müller resolved CMIS-530.
---------------------------------
Resolution: Not A Problem
> update cmis:name property of a previously uploaded file "appears" to fail
> with CmisObjectNotFoundException" but actually does the rename
> ----------------------------------------------------------------------------------------------------------------------------------------
>
> Key: CMIS-530
> URL: https://issues.apache.org/jira/browse/CMIS-530
> Project: Chemistry
> Issue Type: Bug
> Components: opencmis-client
> Affects Versions: OpenCMIS 0.8.0
> Environment: Win 7 Enterprise/32-bit Tomcat 7.0.22/ JDK 1.6.0_29
> using the project WAR - chemistry-opencmis-server-fileshare created from
> source: chemistry-opencmis-server-fileshare-0.8.0-SNAPSHOT.war
> Reporter: mark streit
> Labels: AbstractCmisObject, CmisObjectNotFoundException,
> getObjectService(), refresh()
>
> when attempting to follow the approach that is shown in the example code
> called GettingStarted.java
> {code}
> Document doc2 = (Document) session.getObject(id2);
> System.out.println("renaming " + doc2.getName() + " to test3.txt");
> properties = new HashMap<String, Object>();
> properties.put(PropertyIds.NAME, "test3.txt");
> id2 = doc2.updateProperties(properties);
> System.out.println("renamed to " + doc2.getName());
> {code}
> The call to updateProperties(), with a correctly populated Map containing the
> new name throws back a CmisObjectNotFoundException which I've traced back to
> the refresh() method of AbstractCmisObject.java.
> {code}
> public void refresh() {
> writeLock();
> try {
> String objectId = getObjectId();
> OperationContext oc = getCreationContext();
> // get the latest data from the repository
> ObjectData objectData = getSession()
>
> .getBinding().getObjectService().getObject(getRepositoryId(), objectId,
> oc.getFilterString(), oc.isIncludeAllowableActions(),
> oc.getIncludeRelationships(), oc.getRenditionFilterString(),
> oc.isIncludePolicies(), oc.isIncludeAcls(), null);
> // reset this object
> initialize(getSession(), getObjectType(), objectData,
> this.creationContext);
> } finally {
> writeUnlock();
> }
> }
> {code}
> When you start inspecting the values of each of the objects in the chained
> call above where it tries to get back an ObjectData instance... things look
> OK UNTIL you hit the method: getObjectService()
> {code}
> getBinding() IS OK returing this:
> org.apache.chemistry.opencmis.client.bindings.impl.CmisBindingImpl@4c689e
> objectId = L0NoZW1Eb2NzXzExL1Rlc3RGaWxlOS5wZGY= // this is also OK
> {code}
> but this call, getObjectService() reports that "the method getObjectService()
> is undefined for the type AbstractCmisObject"
> The objectData instance is never created, and it skips to the finally block,
> so I AM ASSUMING, this might be the root cause. I don't know enough about
> Chemistry, but what is more odd:
> 1) the file on the file system DOES get renamed correctly
> 2) the execution path getting there however involves this
> {code}
> org.apache.chemistry.opencmis.commons.exceptions.CmisObjectNotFoundException:
> Object not found!
> {code}
--
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