[
https://issues.apache.org/jira/browse/CMIS-530?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13272052#comment-13272052
]
mark streit commented on CMIS-530:
----------------------------------
Florian
That did it. By using the version of the method call that takes the boolean
value as a 2nd argument, then setting it to false, the exception did NOT occur.
In fact, by taking the objectId value returned on the updateProperties(Map,
boolean)...then turning around and calling session.getObject(objectId), casting
to Document, and using the getName() method... the String value of the name
reflects the *changed* name.
Thanks for the quick response and suggestion.
> 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