Hi Julien,

I've retested it. There seems to be a bug in the SharePoint CMIS implementation, which you should report to Microsoft.

Property updates work fine if and only if you don't fetch the property cmis:changeToken. The following code works in the CMIS Workbench Console. Note the filter. I've explicitly set the filter to "cmis:name". If you choose "*" or a filter that contains "cmis:changeToken" you get an error.


<code>

import org.apache.chemistry.opencmis.commons.*
import org.apache.chemistry.opencmis.commons.data.*
import org.apache.chemistry.opencmis.commons.enums.*
import org.apache.chemistry.opencmis.client.api.*

OperationContext oc = session.createOperationContext();
oc.setFilterString("cmis:name");

Folder folder = session.getObjectByPath("/folder", oc);

Map<String, Object> properties = new HashMap<String, Object>();
properties.put("cmis:name", "renamedFolder");

folder.updateProperties(properties);

</code>


The CMIS Workbench uses the "*" filter by default and therefore updates fail against SharePoint 2013.


- Florian



Hello,

Thank you for your response.
Versioning is not enabled.

I try with the CMIS workbench 0.10.0, not with my own application.
I try a refresh before, but i don't know how to fetch the object
without the cmis:changeToken property.

In the log of workbench (level ALL), I have this :

15:52:59 DEBUG ent.bindings.spi.http.DefaultHttpInvoker: PUT http://vpc-share-web:10001/_vti_bin/cmis/rest/af532a1e-a7b4-4a77-8759-f2cc57512484?getObject&objectID=2-512&changeToken=2%2F3%2F2014+3%3A24%3A20+PM 15:52:59 TRACE ent.bindings.spi.http.DefaultHttpInvoker: PUT http://vpc-share-web:10001/_vti_bin/cmis/rest/af532a1e-a7b4-4a77-8759-f2cc57512484?getObject&objectID=2-512&changeToken=2%2F3%2F2014+3%3A24%3A20+PM > Headers: {null=[HTTP/1.1 409 The operation is attempting to update an object that is no longer current.], X-SharePointHealthScore=[0], MicrosoftSharePointTeamServices=[15.0.0.4420], Content-Length=[75], request-id=[8a7a759c-8f80-d0b6-7171-52d4a9ad5f23], Server=[Microsoft-IIS/7.5], X-Powered-By=[ASP.NET], Cache-Control=[private], X-Content-Type-Options=[nosniff], SPRequestGuid=[8a7a759c-8f80-d0b6-7171-52d4a9ad5f23], SPIisLatency=[0], X-AspNet-Version=[4.0.30319], Date=[Tue, 18 Feb 2014 14:52:26 GMT], X-FRAME-OPTIONS=[SAMEORIGIN], X-MS-InvokeApp=[1; RequireReadOnly], Content-Type=[plain/text; charset=utf-8], SPRequestDuration=[60]} 15:52:59 ERROR hemistry.opencmis.workbench.ClientHelper: CmisConstraintException: The operation is attempting to update an object that is no longer current.

org.apache.chemistry.opencmis.commons.exceptions.CmisConstraintException:
The operation is attempting to update an object that is no longer
current.
        at

org.apache.chemistry.opencmis.client.bindings.spi.atompub.AbstractAtomPubService.convertStatusCode(AbstractAtomPubService.java:482)
        at

org.apache.chemistry.opencmis.client.bindings.spi.atompub.AbstractAtomPubService.put(AbstractAtomPubService.java:653)
        at

org.apache.chemistry.opencmis.client.bindings.spi.atompub.AbstractAtomPubService.put(AbstractAtomPubService.java:640)
        at

org.apache.chemistry.opencmis.client.bindings.spi.atompub.ObjectServiceImpl.updateProperties(ObjectServiceImpl.java:333)
        at

org.apache.chemistry.opencmis.client.runtime.AbstractCmisObject.updateProperties(AbstractCmisObject.java:343)
        at

org.apache.chemistry.opencmis.workbench.PropertyEditorFrame.doUpdate(PropertyEditorFrame.java:198)
        at

org.apache.chemistry.opencmis.workbench.PropertyEditorFrame.access$000(PropertyEditorFrame.java:76)
        at

org.apache.chemistry.opencmis.workbench.PropertyEditorFrame$1.actionPerformed(PropertyEditorFrame.java:166)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
        at

javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
        at

javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
        at

javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
        at java.awt.Component.processMouseEvent(Component.java:6505)
        at javax.swing.JComponent.processMouseEvent(JComponent.java:3320)
        at java.awt.Component.processEvent(Component.java:6270)
        at java.awt.Container.processEvent(Container.java:2229)
        at java.awt.Component.dispatchEventImpl(Component.java:4861)
        at java.awt.Container.dispatchEventImpl(Container.java:2287)
        at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
        at java.awt.Container.dispatchEventImpl(Container.java:2273)
        at java.awt.Window.dispatchEventImpl(Window.java:2719)
        at java.awt.Component.dispatchEvent(Component.java:4687)
        at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:735)
        at java.awt.EventQueue.access$200(EventQueue.java:103)
        at java.awt.EventQueue$3.run(EventQueue.java:694)
        at java.awt.EventQueue$3.run(EventQueue.java:692)
        at java.security.AccessController.doPrivileged(Native Method)
        at

java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
        at

java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
        at java.awt.EventQueue$4.run(EventQueue.java:708)
        at java.awt.EventQueue$4.run(EventQueue.java:706)
        at java.security.AccessController.doPrivileged(Native Method)
        at

java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:705)
        at

java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
        at

java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
        at

java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
15:52:59 ERROR hemistry.opencmis.workbench.ClientHelper: Error code: 0


Julien.



-----Message d'origine-----
De : Florian Müller [mailto:[email protected]]
Envoyé : mardi 18 février 2014 12:43
À : Bittard, Julien
Cc : [email protected]
Objet : Fwd: RE: Error on update document with sharepoint 2013

 Hi Julien,

 What you are actually seeing is a CmisUpdateConflictException. Some
exceptions are not correctly transported via the AtomPub binding.
 Is versioning enabled at your document library? If so, try
refreshing  the object before you update it. Or fetch the object
without the  cmis:changeToken property in the first place.

 - Florian



 -------- Original Message --------
 Subject: RE: Error on update document with sharepoint 2013
 Date: Tue, 18 Feb 2014 11:32:08 +0000
 From: "Bittard, Julien" <[email protected]>
 To: "[email protected]" <[email protected]>
 Reply-To: [email protected]

 Hello,

 Nobody have try sharepoint 2013 ?

 Thank you.

 Julien.

 -----Message d'origine-----
 De : Bittard, Julien [mailto:[email protected]]  Envoyé : lundi
3 février 2014 18:57  À : [email protected]  Objet : Error on
update document with sharepoint 2013

 Hello,

 I use opencmis client to connect our application to sharepoint 2013.
 I have a problem that I reproduce with the workbench , when I want
to  update properties or setcontentstream of an existing document on
sharepoint :

org.apache.chemistry.opencmis.commons.exceptions.CmisConstraintException: The operation is attempting to update an object that is no longer current.
                 at


org.apache.chemistry.opencmis.client.bindings.spi.atompub.AbstractAtomPubService.convertStatusCode(AbstractAtomPubService.java:482)
                 at


org.apache.chemistry.opencmis.client.bindings.spi.atompub.AbstractAtomPubService.put(AbstractAtomPubService.java:653)
                 at


org.apache.chemistry.opencmis.client.bindings.spi.atompub.AbstractAtomPubService.put(AbstractAtomPubService.java:640)
                 at


org.apache.chemistry.opencmis.client.bindings.spi.atompub.ObjectServiceImpl.updateProperties(ObjectServiceImpl.java:333)
                 at


org.apache.chemistry.opencmis.client.runtime.AbstractCmisObject.updateProperties(AbstractCmisObject.java:343)
                 at


org.apache.chemistry.opencmis.client.runtime.AbstractCmisObject.updateProperties(AbstractCmisObject.java:307)


 I use openCmis 0.10.0, with java 1.7.

 Have You an idea ?

 Thank You.

 Julien

Reply via email to