You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@chemistry.apache.org by Thanh Phan <pd...@gmail.com> on 2016/03/26 18:10:22 UTC

Question about Adobe Drive Checkins new file mechanism

Hello everyone,

I know it's not a Adobe Drive 5 (AD5) place but i'm pretty desperate now
trying to uderstand the underlying actions. I would be very grateful if
someone knows how the checkin new files works for AD5 (latest build)?

It does not seem to work with the latest build from Alfresco and the
InMemory OpenCMIS server. The one from InMemory got an NullPointerReference
error while Alfresco produces an empty file and an other emoty PWC, and AD5
has an Not Allowed Action Error.

I seems to me that it sends a POST request to the parent folder's children
service with  a checked out requests but without any content. Why is that?
It seems also expect a Private Working Copy

Thanks very much in advance.

Re: Question about Adobe Drive Checkins new file mechanism

Posted by Florian Müller <fm...@apache.org>.
Hi,

There is no (pessimistic) locking in CMIS. So, it's difficult to
interpret this error message.

Here is a guess.
The property cmis:isVersionSeriesCheckedOut is false. From a client
perspective the document has not been checked out. That is, a check-in
doesn't make sense. Maybe Adobe Drive is complaining about that...


- Florian


Am 29.03.2016 um 17:46 schrieb Thanh Phan:
> Hi again,
> 
> I have to bother you guys again. I' now stuck against Adobe Drive 5. There
> are 2 ways to create new files in AD5 with the first being the one i
> mentioned earlier, the second is when we you one of their software suites
> (photoshop etc) and click on the save as or checkin button with the target
> being the AD5.
> 
> With what I could observe, AD5 first send a CREATE request to the children
> collection (empty file, versionstate: checkedout), and then proceed to GET
> the object. However, it now complains that: 2016/03/29 17:36:58,722
> [JobHandler-3] ERROR CheckIn - Caught exception
> 
> com.adobe.drive.data.model.DriveException: testu.ai is not locked!
> 	at com.adobe.drive.internal.biz.versioncue.service.call.CheckIn.checkConflict(CheckIn.java:134)
> 
> 
> Here is my Response to the request by path below. Can anyone confirm that
> it is possible that my atom entry is not correct, thus preventing the AD5
> to work properly? if I understandf correctly, locking in CMIS means that we
> provides a change token (and possibly not allowing to perform some
> update/delete operations, right?)
> 
> Thanks in advance.
> 
> 
> *<?xml version="1.0" encoding="utf-8" standalone="yes"?>*
> *<atom:entry xmlns:cmis="http://docs.oasis-open.org/ns/cmis/core/200908/
> <http://docs.oasis-open.org/ns/cmis/core/200908/>"
> xmlns:cmisra="http://docs.oasis-open.org/ns/cmis/restatom/200908/
> <http://docs.oasis-open.org/ns/cmis/restatom/200908/>"
> xmlns:app="http://www.w3.org/2007/app <http://www.w3.org/2007/app>"
> xmlns:atom="http://www.w3.org/2005/Atom <http://www.w3.org/2005/Atom>">*
> *    <atom:author>*
> *        <atom:name>puppy</atom:name>*
> *    </atom:author>*
> *    <atom:id>http://localhost:58176/api/v1.0/entry?id=/docs/testu.ai
> <http://localhost:58176/api/v1.0/entry?id=/docs/testu.ai></atom:id>*
> *    <atom:published>2016-03-29T00:00:00+02:00</atom:published>*
> *    <atom:title>testu.ai <http://testu.ai></atom:title>*
> *    <atom:edited>2016-03-29T00:00:00+02:00</atom:edited>*
> *    <atom:updated>2016-03-29T00:00:00+02:00</atom:updated>*
> *    <atom:link href="http://localhost:58176/api/v1.0/
> <http://localhost:58176/api/v1.0/>" rel="service"
> type="application/atomsvc+xml" />*
> *    <atom:link
> href="http://localhost:58176/api/v1.0/entry?id=/docs/testu.ai
> <http://localhost:58176/api/v1.0/entry?id=/docs/testu.ai>" rel="self"
> type="application/atom+xml;type=entry" />*
> *    <atom:link
> href="http://localhost:58176/api/v1.0/entry?id=/docs/testu.ai
> <http://localhost:58176/api/v1.0/entry?id=/docs/testu.ai>" rel="enclosure"
> type="application/atom+xml;type=entry" />*
> *    <atom:link
> href="http://localhost:58176/api/v1.0/type?id=cmis%3Adocument
> <http://localhost:58176/api/v1.0/type?id=cmis%3Adocument>"
> rel="describedby" type="application/atom+xml;type=entry" />*
> *    <atom:link
> href="http://localhost:58176/api/v1.0/allowableactions?id=/docs/testu.ai
> <http://localhost:58176/api/v1.0/allowableactions?id=/docs/testu.ai>"
> rel="http://docs.oasis-open.org/ns/cmis/link/200908/allowableactions
> <http://docs.oasis-open.org/ns/cmis/link/200908/allowableactions>"
> type="application/cmis+xml;type=allowableActions" />*
> *    <atom:link
> href="http://localhost:58176/api/v1.0/parents?id=/docs/testu.ai
> <http://localhost:58176/api/v1.0/parents?id=/docs/testu.ai>" rel="up"
> type="application/atom+xml;type=feed" />*
> *    <atom:link
> href="http://localhost:58176/api/v1.0/entry?id=/docs/testu.ai
> <http://localhost:58176/api/v1.0/entry?id=/docs/testu.ai>" rel="edit"
> type="application/atom+xml;type=entry" />*
> *    <cmisra:object
> xmlns:ns3="http://docs.oasis-open.org/ns/cmis/messaging/200908/
> <http://docs.oasis-open.org/ns/cmis/messaging/200908/>">*
> *        <cmis:properties>*
> *            <cmis:propertyId propertyDefinitionId="cmis:baseTypeId"
> localName="BaseTypeId" displayName="Base Type Id"
> queryName="cmis:baseTypeId">*
> *                <cmis:value>cmis:document</cmis:value>*
> *            </cmis:propertyId>*
> *            <cmis:propertyId propertyDefinitionId="cmis:objectTypeId"
> localName="ObjectTypeId" displayName="Object Type Id"
> queryName="cmis:objectTypeId">*
> *                <cmis:value>cmis:document</cmis:value>*
> *            </cmis:propertyId>*
> *            <cmis:propertyString propertyDefinitionId="cmis:name"
> localName="Name" displayName="Name" queryName="cmis:name">*
> *                <cmis:value>testu.ai <http://testu.ai></cmis:value>*
> *            </cmis:propertyString>*
> *            <cmis:propertyId propertyDefinitionId="cmis:objectId"
> localName="ObjectId" displayName="Object Id" queryName="cmis:objectId">*
> *                <cmis:value>/docs/testu.ai <http://testu.ai></cmis:value>*
> *            </cmis:propertyId>*
> *            <cmis:propertyString propertyDefinitionId="cmis:createdBy"
> localName="CreatedBy" displayName="Created By" queryName="cmis:createdBy">*
> *                <cmis:value>puppy</cmis:value>*
> *            </cmis:propertyString>*
> *            <cmis:propertyDateTime
> propertyDefinitionId="cmis:creationDate" localName="CreationDate"
> displayName="Creation Date" queryName="cmis:creationDate">*
> *                <cmis:value>2016-03-29T00:00:00+02:00</cmis:value>*
> *            </cmis:propertyDateTime>*
> *            <cmis:propertyString
> propertyDefinitionId="cmis:lastModifiedBy" localName="LastModifiedBy"
> displayName="Last Modified By" queryName="cmis:lastModifiedBy">*
> *                <cmis:value>puppy</cmis:value>*
> *            </cmis:propertyString>*
> *            <cmis:propertyDateTime
> propertyDefinitionId="cmis:lastModificationDate"
> localName="LastModificationDate" displayName="Last Modification Date"
> queryName="cmis:lastModificationDate">*
> *                <cmis:value>2016-03-29T00:00:00+02:00</cmis:value>*
> *            </cmis:propertyDateTime>*
> *            <cmis:propertyString propertyDefinitionId="cmis:changeToken"
> localName="ChangeToken" displayName="Change Token"
> queryName="cmis:changeToken">*
> *                <cmis:value>8383</cmis:value>*
> *            </cmis:propertyString>*
> *            <cmis:propertyBoolean propertyDefinitionId="cmis:isImmutable"
> localName="cmis:isImmutable" displayName="cmis:isImmutable"
> queryName="cmis:isImmutable">*
> *                <cmis:value>true</cmis:value>*
> *            </cmis:propertyBoolean>*
> *            <cmis:propertyBoolean
> propertyDefinitionId="cmis:isMajorVersion" localName="IsMajorVersion"
> displayName="Is Major Version" queryName="cmis:isMajorVersion">*
> *                <cmis:value>true</cmis:value>*
> *            </cmis:propertyBoolean>*
> *            <cmis:propertyBoolean
> propertyDefinitionId="cmis:isPrivateWorkingCopy"
> localName="IsPrivateWorkingCopy" displayName="Is Private Working Copy"
> queryName="cmis:isPrivateWorkingCopy">*
> *                <cmis:value>false</cmis:value>*
> *            </cmis:propertyBoolean>*
> *            <cmis:propertyBoolean
> propertyDefinitionId="cmis:isLatestVersion" localName="IsLatestVersion"
> displayName="Is Latest Version" queryName="cmis:isLatestVersion">*
> *                <cmis:value>true</cmis:value>*
> *            </cmis:propertyBoolean>*
> *            <cmis:propertyBoolean
> propertyDefinitionId="cmis:isLatestMajorVersion"
> localName="IsLatestMajorVersion" displayName="Is Latest Major Version"
> queryName="cmis:isLatestMajorVersion">*
> *                <cmis:value>true</cmis:value>*
> *            </cmis:propertyBoolean>*
> *            <cmis:propertyString propertyDefinitionId="cmis:versionLabel"
> localName="VersionLabel" displayName="Version Label"
> queryName="cmis:versionLabel">*
> *                <cmis:value>1.0</cmis:value>*
> *            </cmis:propertyString>*
> *            <cmis:propertyId propertyDefinitionId="cmis:versionSeriesId"
> localName="VersionSeriesId" displayName="Version Series ID"
> queryName="cmis:versionSeriesId">*
> *                <cmis:value>testu.ai-1.0..ai</cmis:value>*
> *            </cmis:propertyId>*
> *            <cmis:propertyBoolean
> propertyDefinitionId="cmis:isVersionSeriesCheckedOut"
> localName="IsVersionSeriesCheckedOut" displayName="Is Version Series
> Checked Out" queryName="cmis:isVersionSeriesCheckedOut">*
> *                <cmis:value>false</cmis:value>*
> *            </cmis:propertyBoolean>*
> *            <cmis:propertyString
> propertyDefinitionId="cmis:versionSeriesCheckedOutBy"
> localName="VersionSeriesCheckedOutBy" displayName="Version Series Checked
> Out By" queryName="cmis:versionSeriesCheckedOutBy">*
> *                <cmis:value />*
> *            </cmis:propertyString>*
> *            <cmis:propertyId
> propertyDefinitionId="cmis:versionSeriesCheckedOutId"
> localName="VersionSeriesCheckedOutId" displayName="Version Series Checked
> Out ID" queryName="cmis:versionSeriesCheckedOutId">*
> *                <cmis:value />*
> *            </cmis:propertyId>*
> *            <cmis:propertyString
> propertyDefinitionId="cmis:checkinComment" localName="CheckinComment"
> displayName="Checking Comment" queryName="cmis:checkinComment">*
> *                <cmis:value />*
> *            </cmis:propertyString>*
> *            <cmis:propertyInteger
> propertyDefinitionId="cmis:contentStreamLength"
> localName="ContentStreamLength" displayName="Content Stream Length"
> queryName="cmis:contentStreamLength">*
> *                <cmis:value>0</cmis:value>*
> *            </cmis:propertyInteger>*
> *            <cmis:propertyString
> propertyDefinitionId="cmis:contentStreamMimeType"
> localName="ContentStreamMimeType" displayName="Content Stream MIME Type"
> queryName="cmis:contentStreamMimeType">*
> *                <cmis:value>application/postscript</cmis:value>*
> *            </cmis:propertyString>*
> *            <cmis:propertyString
> propertyDefinitionId="cmis:contentStreamFileName"
> localName="ContentStreamFileName" displayName="Content Stream File Name"
> queryName="cmis:contentStreamFileName">*
> *                <cmis:value>testu.ai <http://testu.ai></cmis:value>*
> *            </cmis:propertyString>*
> *            <cmis:propertyId propertyDefinitionId="cmis:contentStreamId"
> localName="ContentStreamId" displayName="Content Stream ID"
> queryName="cmis:contentStreamId">*
> *                <cmis:value>/docs/testu.ai <http://testu.ai></cmis:value>*
> *            </cmis:propertyId>*
> *            <cmis:propertyId propertyDefinitionId="cmis:parentId"
> localName="ParentId" displayName="Parent Id" queryName="cmis:parentId">*
> *                <cmis:value>/docs</cmis:value>*
> *            </cmis:propertyId>*
> *            <cmis:propertyString propertyDefinitionId="cmis:path"
> localName="Path" displayName="Path" queryName="cmis:path">*
> *                <cmis:value>/docs/testu.ai <http://testu.ai></cmis:value>*
> *            </cmis:propertyString>*
> *        </cmis:properties>*
> *        <cmis:allowableActions>*
> *            <cmis:canGetDescendants>false</cmis:canGetDescendants>*
> *            <cmis:canGetFolderTree>false</cmis:canGetFolderTree>*
> *            <cmis:canGetChildren>false</cmis:canGetChildren>*
> *            <cmis:canGetFolderParent>false</cmis:canGetFolderParent>*
> *            <cmis:canGetObjectParents>true</cmis:canGetObjectParents>*
> *            <cmis:canCreateDocument>false</cmis:canCreateDocument>*
> *            <cmis:canCreateFolder>false</cmis:canCreateFolder>*
> *            <cmis:canCreateRelationship>false</cmis:canCreateRelationship>*
> *            <cmis:canGetProperties>true</cmis:canGetProperties>*
> *            <cmis:canGetRenditions>false</cmis:canGetRenditions>*
> *            <cmis:canGetContentStream>true</cmis:canGetContentStream>*
> *            <cmis:canUpdateProperties>false</cmis:canUpdateProperties>*
> *            <cmis:canMoveObject>false</cmis:canMoveObject>*
> *            <cmis:canDeleteObject>false</cmis:canDeleteObject>*
> *            <cmis:canSetContentStream>false</cmis:canSetContentStream>*
> *
> <cmis:canDeleteContentStream>false</cmis:canDeleteContentStream>*
> *            <cmis:canDeleteTree>false</cmis:canDeleteTree>*
> *            <cmis:canAddObjectToFolder>true</cmis:canAddObjectToFolder>*
> *
> <cmis:canRemoveObjectFromFolder>false</cmis:canRemoveObjectFromFolder>*
> *            <cmis:canCheckOut>true</cmis:canCheckOut>*
> *            <cmis:canCancelCheckOut>false</cmis:canCancelCheckOut>*
> *            <cmis:canCheckIn>true</cmis:canCheckIn>*
> *            <cmis:canGetAllVersions>true</cmis:canGetAllVersions>*
> *
> <cmis:canGetObjectRelationships>false</cmis:canGetObjectRelationships>*
> *            <cmis:canApplyPolicy>false</cmis:canApplyPolicy>*
> *            <cmis:canRemovePolicy>false</cmis:canRemovePolicy>*
> *            <cmis:canGetAppliedPolicies>false</cmis:canGetAppliedPolicies>*
> *            <cmis:canGetACL>false</cmis:canGetACL>*
> *            <cmis:canApplyACL>false</cmis:canApplyACL>*
> *        </cmis:allowableActions>*
> *    </cmisra:object>*
> *    <cmisra:pathSegment>testu.ai <http://testu.ai></cmisra:pathSegment>*
> *    <atom:content
> src="http://localhost:58176/api/v1.0/content?id=/docs/testu.ai
> <http://localhost:58176/api/v1.0/content?id=/docs/testu.ai>"
> type="application/postscript" />*
> *    <atom:link
> href="http://localhost:58176/api/v1.0/content?id=/docs/testu.ai
> <http://localhost:58176/api/v1.0/content?id=/docs/testu.ai>"
> rel="edit-media" type="application/postscript" />*
> *</atom:entry>*
> 
> On Mon, Mar 28, 2016 at 10:50 PM, Thanh Phan <pd...@gmail.com> wrote:
> 
>> Hi again,
>>
>> Thanks to your pointers, Florian, I figured it out how AD5 works (at least
>> for "checkin the new content").
>>
>> It's like you suspected, Adobe will first perform a Post to create a new
>> empty document like I mentioned earlier and then subsequently a PUT to
>> modify the content, using the "content-edit" URI. The content of the file
>> is the body of this PUT request.
>>
>> Earlier I was not able to catch the PUT request there's some issue with
>> Adobe Drive 5 cache.
>>
>> Hope some souls out there who gotta deal with AD5 can find this
>> information useful.
>>
>>
>>
>> On Mon, Mar 28, 2016 at 8:40 PM, Thanh Phan <pd...@gmail.com> wrote:
>>
>>> Youre absolutely right about it's not a checkin request. The first time a
>>> document is added for versioning in Adobe Drive they perform a "Check In",
>>> which I believe, is similar to a Document Creation request.
>>>
>>> I think they expect some thing in order to proceed but I have no clue
>>> what it is.
>>>
>>> Since the operation fails, there are no subsequent PUT requests.
>>>
>>> On Sun, Mar 27, 2016 at 7:34 PM, Florian Müller <fm...@apache.org> wrote:
>>>
>>>> Hi,
>>>>
>>>> This is not a checkin request. This is an invalid create document
>>>> request. (The property cmis:name is missing).
>>>> Could you please check if there is a PUT request against the PWC
>>>> resource? That would be the checkin call.
>>>>
>>>> - Florian
>>>>
>>>>
>>>>> Hello Florian, I'm extremely appreciate that you take time to reply.
>>>>>
>>>>> I just tested again the InMemory Latest Build. What I tried is to
>>>>> checkin a new file called "test.txt".
>>>>>
>>>>> I also tried to capture the POST request using rawcap, basically they
>>>>> send out an /POST
>>>>> /inmemory/atom/A1/children?id=125&versioningState=checkedout /
>>>>> /
>>>>> /
>>>>> with the body being
>>>>>
>>>>> / <?xml version="1.0" encoding="utf-8"?>
>>>>> /
>>>>> /<entry xmlns="http://www.w3.org/2005/Atom"/
>>>>> /xmlns:cmisra="http://docs.oasis-open.org/ns/cmis/restatom/200908/"/
>>>>> /xmlns:cmis="http://docs.oasis-open.org/ns/cmis/core/200908/">/
>>>>> / <title>test.txt</title>/
>>>>> / <cmisra:object>/
>>>>> /<cmis:properties>/
>>>>> /<cmis:propertyId propertyDefinitionId="cmis:objectTypeId">/
>>>>> /<cmis:value>cmis:document</cmis:value>/
>>>>> /</cmis:propertyId>/
>>>>> /</cmis:properties>/
>>>>> / </cmisra:object>/
>>>>> /</entry>/
>>>>>
>>>>> Again we got an error with the relevant Log in Adobe Drive 5:
>>>>>
>>>>> com.adobe.drive.data.model.DriveException: Error checking in: Conflict
>>>>>       at
>>>> com.adobe.drive.internal.data.manager.DataManager.executeCheckIn(DataManager.java:5680)
>>>>>       at
>>>> com.adobe.drive.internal.data.manager.DataManager.checkIn(DataManager.java:5305)
>>>>>       at
>>>> com.adobe.drive.internal.data.manager.DataManager.checkLocalAssetPostClose(DataManager.java:10324)
>>>>>       at
>>>> com.adobe.drive.internal.data.manager.DataManager.close(DataManager.java:3423)
>>>>>       at
>>>> com.adobe.drive.internal.biz.filesystem.FileSystemService$10.execute(FileSystemService.java:839)
>>>>>       at
>>>> com.adobe.drive.internal.biz.filesystem.FileSystemService$10.execute(FileSystemService.java:1)
>>>>>       at
>>>> com.adobe.drive.internal.biz.filesystem.FileSystemService$FSCallable.run(FileSystemService.java:1793)
>>>>>       at
>>>> com.adobe.drive.data.internal.persistence.PersistenceRunner$2.runWithTransaction(PersistenceRunner.java:186)
>>>>>       at
>>>> com.adobe.drive.data.internal.persistence.PersistenceModificationCallable.run(PersistenceModificationCallable.java:71)
>>>>>       at
>>>> com.adobe.drive.data.internal.persistence.PersistenceRunner.run(PersistenceRunner.java:119)
>>>>>       at
>>>> com.adobe.drive.data.internal.persistence.PersistenceRunner.runWithTransaction(PersistenceRunner.java:181)
>>>>>       at
>>>> com.adobe.drive.internal.biz.filesystem.FileSystemService.runWithTransaction(FileSystemService.java:1748)
>>>>>       at
>>>> com.adobe.drive.internal.biz.filesystem.FileSystemService.runWithTransaction(FileSystemService.java:1727)
>>>>>       at
>>>> com.adobe.drive.internal.biz.filesystem.FileSystemService.close(FileSystemService.java:821)
>>>>>       at
>>>> com.adobe.drive.ifs.job.CloseHandler$1.call(CloseHandler.java:67)
>>>>>       at
>>>> com.adobe.drive.ifs.job.CloseHandler$1.call(CloseHandler.java:1)
>>>>>       at com.adobe.drive.model.context.Context.run(Context.java:88)
>>>>>       at
>>>> com.adobe.drive.ifs.internal.IFSConnection.dispatch(IFSConnection.java:187)
>>>>>       at
>>>> com.adobe.drive.ifs.internal.IFSConnection.run(IFSConnection.java:142)
>>>>>
>>>>> It;'s frustrating with AD5 really since I have no Idea what they are
>>>>> expecting after that call.
>>>>>
>>>>> On Sun, Mar 27, 2016 at 4:54 PM, Florian Müller <fmui@apache.org
>>>>> <ma...@apache.org>> wrote:
>>>>>
>>>>>     Hi,
>>>>>
>>>>>     Do you think you can capture this POST request?
>>>>>     I don't think this is an OpenCMIS server framework problem, but we
>>>>>     should check. At least the InMemory server should be more robust.
>>>>>
>>>>>     - Florian
>>>>>
>>>>>
>>>>>     > Hello everyone,
>>>>>     >
>>>>>     > I know it's not a Adobe Drive 5 (AD5) place but i'm pretty
>>>>>     desperate now
>>>>>     > trying to uderstand the underlying actions. I would be very
>>>>>     grateful if
>>>>>     > someone knows how the checkin new files works for AD5 (latest
>>>>>     build)?
>>>>>     >
>>>>>     > It does not seem to work with the latest build from Alfresco and
>>>> the
>>>>>     > InMemory OpenCMIS server. The one from InMemory got an
>>>>>     NullPointerReference
>>>>>     > error while Alfresco produces an empty file and an other emoty
>>>>>     PWC, and AD5
>>>>>     > has an Not Allowed Action Error.
>>>>>     >
>>>>>     > I seems to me that it sends a POST request to the parent
>>>>>     folder's children
>>>>>     > service with  a checked out requests but without any content.
>>>>>     Why is that?
>>>>>     > It seems also expect a Private Working Copy
>>>>>     >
>>>>>     > Thanks very much in advance.
>>>>>     >
>>>>>
>>>>>
>>>>
>>>>
>>>
>>
> 

Re: Question about Adobe Drive Checkins new file mechanism

Posted by Thanh Phan <pd...@gmail.com>.
Hi again,

I have to bother you guys again. I' now stuck against Adobe Drive 5. There
are 2 ways to create new files in AD5 with the first being the one i
mentioned earlier, the second is when we you one of their software suites
(photoshop etc) and click on the save as or checkin button with the target
being the AD5.

With what I could observe, AD5 first send a CREATE request to the children
collection (empty file, versionstate: checkedout), and then proceed to GET
the object. However, it now complains that: 2016/03/29 17:36:58,722
[JobHandler-3] ERROR CheckIn - Caught exception

com.adobe.drive.data.model.DriveException: testu.ai is not locked!
	at com.adobe.drive.internal.biz.versioncue.service.call.CheckIn.checkConflict(CheckIn.java:134)


Here is my Response to the request by path below. Can anyone confirm that
it is possible that my atom entry is not correct, thus preventing the AD5
to work properly? if I understandf correctly, locking in CMIS means that we
provides a change token (and possibly not allowing to perform some
update/delete operations, right?)

Thanks in advance.


*<?xml version="1.0" encoding="utf-8" standalone="yes"?>*
*<atom:entry xmlns:cmis="http://docs.oasis-open.org/ns/cmis/core/200908/
<http://docs.oasis-open.org/ns/cmis/core/200908/>"
xmlns:cmisra="http://docs.oasis-open.org/ns/cmis/restatom/200908/
<http://docs.oasis-open.org/ns/cmis/restatom/200908/>"
xmlns:app="http://www.w3.org/2007/app <http://www.w3.org/2007/app>"
xmlns:atom="http://www.w3.org/2005/Atom <http://www.w3.org/2005/Atom>">*
*    <atom:author>*
*        <atom:name>puppy</atom:name>*
*    </atom:author>*
*    <atom:id>http://localhost:58176/api/v1.0/entry?id=/docs/testu.ai
<http://localhost:58176/api/v1.0/entry?id=/docs/testu.ai></atom:id>*
*    <atom:published>2016-03-29T00:00:00+02:00</atom:published>*
*    <atom:title>testu.ai <http://testu.ai></atom:title>*
*    <atom:edited>2016-03-29T00:00:00+02:00</atom:edited>*
*    <atom:updated>2016-03-29T00:00:00+02:00</atom:updated>*
*    <atom:link href="http://localhost:58176/api/v1.0/
<http://localhost:58176/api/v1.0/>" rel="service"
type="application/atomsvc+xml" />*
*    <atom:link
href="http://localhost:58176/api/v1.0/entry?id=/docs/testu.ai
<http://localhost:58176/api/v1.0/entry?id=/docs/testu.ai>" rel="self"
type="application/atom+xml;type=entry" />*
*    <atom:link
href="http://localhost:58176/api/v1.0/entry?id=/docs/testu.ai
<http://localhost:58176/api/v1.0/entry?id=/docs/testu.ai>" rel="enclosure"
type="application/atom+xml;type=entry" />*
*    <atom:link
href="http://localhost:58176/api/v1.0/type?id=cmis%3Adocument
<http://localhost:58176/api/v1.0/type?id=cmis%3Adocument>"
rel="describedby" type="application/atom+xml;type=entry" />*
*    <atom:link
href="http://localhost:58176/api/v1.0/allowableactions?id=/docs/testu.ai
<http://localhost:58176/api/v1.0/allowableactions?id=/docs/testu.ai>"
rel="http://docs.oasis-open.org/ns/cmis/link/200908/allowableactions
<http://docs.oasis-open.org/ns/cmis/link/200908/allowableactions>"
type="application/cmis+xml;type=allowableActions" />*
*    <atom:link
href="http://localhost:58176/api/v1.0/parents?id=/docs/testu.ai
<http://localhost:58176/api/v1.0/parents?id=/docs/testu.ai>" rel="up"
type="application/atom+xml;type=feed" />*
*    <atom:link
href="http://localhost:58176/api/v1.0/entry?id=/docs/testu.ai
<http://localhost:58176/api/v1.0/entry?id=/docs/testu.ai>" rel="edit"
type="application/atom+xml;type=entry" />*
*    <cmisra:object
xmlns:ns3="http://docs.oasis-open.org/ns/cmis/messaging/200908/
<http://docs.oasis-open.org/ns/cmis/messaging/200908/>">*
*        <cmis:properties>*
*            <cmis:propertyId propertyDefinitionId="cmis:baseTypeId"
localName="BaseTypeId" displayName="Base Type Id"
queryName="cmis:baseTypeId">*
*                <cmis:value>cmis:document</cmis:value>*
*            </cmis:propertyId>*
*            <cmis:propertyId propertyDefinitionId="cmis:objectTypeId"
localName="ObjectTypeId" displayName="Object Type Id"
queryName="cmis:objectTypeId">*
*                <cmis:value>cmis:document</cmis:value>*
*            </cmis:propertyId>*
*            <cmis:propertyString propertyDefinitionId="cmis:name"
localName="Name" displayName="Name" queryName="cmis:name">*
*                <cmis:value>testu.ai <http://testu.ai></cmis:value>*
*            </cmis:propertyString>*
*            <cmis:propertyId propertyDefinitionId="cmis:objectId"
localName="ObjectId" displayName="Object Id" queryName="cmis:objectId">*
*                <cmis:value>/docs/testu.ai <http://testu.ai></cmis:value>*
*            </cmis:propertyId>*
*            <cmis:propertyString propertyDefinitionId="cmis:createdBy"
localName="CreatedBy" displayName="Created By" queryName="cmis:createdBy">*
*                <cmis:value>puppy</cmis:value>*
*            </cmis:propertyString>*
*            <cmis:propertyDateTime
propertyDefinitionId="cmis:creationDate" localName="CreationDate"
displayName="Creation Date" queryName="cmis:creationDate">*
*                <cmis:value>2016-03-29T00:00:00+02:00</cmis:value>*
*            </cmis:propertyDateTime>*
*            <cmis:propertyString
propertyDefinitionId="cmis:lastModifiedBy" localName="LastModifiedBy"
displayName="Last Modified By" queryName="cmis:lastModifiedBy">*
*                <cmis:value>puppy</cmis:value>*
*            </cmis:propertyString>*
*            <cmis:propertyDateTime
propertyDefinitionId="cmis:lastModificationDate"
localName="LastModificationDate" displayName="Last Modification Date"
queryName="cmis:lastModificationDate">*
*                <cmis:value>2016-03-29T00:00:00+02:00</cmis:value>*
*            </cmis:propertyDateTime>*
*            <cmis:propertyString propertyDefinitionId="cmis:changeToken"
localName="ChangeToken" displayName="Change Token"
queryName="cmis:changeToken">*
*                <cmis:value>8383</cmis:value>*
*            </cmis:propertyString>*
*            <cmis:propertyBoolean propertyDefinitionId="cmis:isImmutable"
localName="cmis:isImmutable" displayName="cmis:isImmutable"
queryName="cmis:isImmutable">*
*                <cmis:value>true</cmis:value>*
*            </cmis:propertyBoolean>*
*            <cmis:propertyBoolean
propertyDefinitionId="cmis:isMajorVersion" localName="IsMajorVersion"
displayName="Is Major Version" queryName="cmis:isMajorVersion">*
*                <cmis:value>true</cmis:value>*
*            </cmis:propertyBoolean>*
*            <cmis:propertyBoolean
propertyDefinitionId="cmis:isPrivateWorkingCopy"
localName="IsPrivateWorkingCopy" displayName="Is Private Working Copy"
queryName="cmis:isPrivateWorkingCopy">*
*                <cmis:value>false</cmis:value>*
*            </cmis:propertyBoolean>*
*            <cmis:propertyBoolean
propertyDefinitionId="cmis:isLatestVersion" localName="IsLatestVersion"
displayName="Is Latest Version" queryName="cmis:isLatestVersion">*
*                <cmis:value>true</cmis:value>*
*            </cmis:propertyBoolean>*
*            <cmis:propertyBoolean
propertyDefinitionId="cmis:isLatestMajorVersion"
localName="IsLatestMajorVersion" displayName="Is Latest Major Version"
queryName="cmis:isLatestMajorVersion">*
*                <cmis:value>true</cmis:value>*
*            </cmis:propertyBoolean>*
*            <cmis:propertyString propertyDefinitionId="cmis:versionLabel"
localName="VersionLabel" displayName="Version Label"
queryName="cmis:versionLabel">*
*                <cmis:value>1.0</cmis:value>*
*            </cmis:propertyString>*
*            <cmis:propertyId propertyDefinitionId="cmis:versionSeriesId"
localName="VersionSeriesId" displayName="Version Series ID"
queryName="cmis:versionSeriesId">*
*                <cmis:value>testu.ai-1.0..ai</cmis:value>*
*            </cmis:propertyId>*
*            <cmis:propertyBoolean
propertyDefinitionId="cmis:isVersionSeriesCheckedOut"
localName="IsVersionSeriesCheckedOut" displayName="Is Version Series
Checked Out" queryName="cmis:isVersionSeriesCheckedOut">*
*                <cmis:value>false</cmis:value>*
*            </cmis:propertyBoolean>*
*            <cmis:propertyString
propertyDefinitionId="cmis:versionSeriesCheckedOutBy"
localName="VersionSeriesCheckedOutBy" displayName="Version Series Checked
Out By" queryName="cmis:versionSeriesCheckedOutBy">*
*                <cmis:value />*
*            </cmis:propertyString>*
*            <cmis:propertyId
propertyDefinitionId="cmis:versionSeriesCheckedOutId"
localName="VersionSeriesCheckedOutId" displayName="Version Series Checked
Out ID" queryName="cmis:versionSeriesCheckedOutId">*
*                <cmis:value />*
*            </cmis:propertyId>*
*            <cmis:propertyString
propertyDefinitionId="cmis:checkinComment" localName="CheckinComment"
displayName="Checking Comment" queryName="cmis:checkinComment">*
*                <cmis:value />*
*            </cmis:propertyString>*
*            <cmis:propertyInteger
propertyDefinitionId="cmis:contentStreamLength"
localName="ContentStreamLength" displayName="Content Stream Length"
queryName="cmis:contentStreamLength">*
*                <cmis:value>0</cmis:value>*
*            </cmis:propertyInteger>*
*            <cmis:propertyString
propertyDefinitionId="cmis:contentStreamMimeType"
localName="ContentStreamMimeType" displayName="Content Stream MIME Type"
queryName="cmis:contentStreamMimeType">*
*                <cmis:value>application/postscript</cmis:value>*
*            </cmis:propertyString>*
*            <cmis:propertyString
propertyDefinitionId="cmis:contentStreamFileName"
localName="ContentStreamFileName" displayName="Content Stream File Name"
queryName="cmis:contentStreamFileName">*
*                <cmis:value>testu.ai <http://testu.ai></cmis:value>*
*            </cmis:propertyString>*
*            <cmis:propertyId propertyDefinitionId="cmis:contentStreamId"
localName="ContentStreamId" displayName="Content Stream ID"
queryName="cmis:contentStreamId">*
*                <cmis:value>/docs/testu.ai <http://testu.ai></cmis:value>*
*            </cmis:propertyId>*
*            <cmis:propertyId propertyDefinitionId="cmis:parentId"
localName="ParentId" displayName="Parent Id" queryName="cmis:parentId">*
*                <cmis:value>/docs</cmis:value>*
*            </cmis:propertyId>*
*            <cmis:propertyString propertyDefinitionId="cmis:path"
localName="Path" displayName="Path" queryName="cmis:path">*
*                <cmis:value>/docs/testu.ai <http://testu.ai></cmis:value>*
*            </cmis:propertyString>*
*        </cmis:properties>*
*        <cmis:allowableActions>*
*            <cmis:canGetDescendants>false</cmis:canGetDescendants>*
*            <cmis:canGetFolderTree>false</cmis:canGetFolderTree>*
*            <cmis:canGetChildren>false</cmis:canGetChildren>*
*            <cmis:canGetFolderParent>false</cmis:canGetFolderParent>*
*            <cmis:canGetObjectParents>true</cmis:canGetObjectParents>*
*            <cmis:canCreateDocument>false</cmis:canCreateDocument>*
*            <cmis:canCreateFolder>false</cmis:canCreateFolder>*
*            <cmis:canCreateRelationship>false</cmis:canCreateRelationship>*
*            <cmis:canGetProperties>true</cmis:canGetProperties>*
*            <cmis:canGetRenditions>false</cmis:canGetRenditions>*
*            <cmis:canGetContentStream>true</cmis:canGetContentStream>*
*            <cmis:canUpdateProperties>false</cmis:canUpdateProperties>*
*            <cmis:canMoveObject>false</cmis:canMoveObject>*
*            <cmis:canDeleteObject>false</cmis:canDeleteObject>*
*            <cmis:canSetContentStream>false</cmis:canSetContentStream>*
*
<cmis:canDeleteContentStream>false</cmis:canDeleteContentStream>*
*            <cmis:canDeleteTree>false</cmis:canDeleteTree>*
*            <cmis:canAddObjectToFolder>true</cmis:canAddObjectToFolder>*
*
<cmis:canRemoveObjectFromFolder>false</cmis:canRemoveObjectFromFolder>*
*            <cmis:canCheckOut>true</cmis:canCheckOut>*
*            <cmis:canCancelCheckOut>false</cmis:canCancelCheckOut>*
*            <cmis:canCheckIn>true</cmis:canCheckIn>*
*            <cmis:canGetAllVersions>true</cmis:canGetAllVersions>*
*
<cmis:canGetObjectRelationships>false</cmis:canGetObjectRelationships>*
*            <cmis:canApplyPolicy>false</cmis:canApplyPolicy>*
*            <cmis:canRemovePolicy>false</cmis:canRemovePolicy>*
*            <cmis:canGetAppliedPolicies>false</cmis:canGetAppliedPolicies>*
*            <cmis:canGetACL>false</cmis:canGetACL>*
*            <cmis:canApplyACL>false</cmis:canApplyACL>*
*        </cmis:allowableActions>*
*    </cmisra:object>*
*    <cmisra:pathSegment>testu.ai <http://testu.ai></cmisra:pathSegment>*
*    <atom:content
src="http://localhost:58176/api/v1.0/content?id=/docs/testu.ai
<http://localhost:58176/api/v1.0/content?id=/docs/testu.ai>"
type="application/postscript" />*
*    <atom:link
href="http://localhost:58176/api/v1.0/content?id=/docs/testu.ai
<http://localhost:58176/api/v1.0/content?id=/docs/testu.ai>"
rel="edit-media" type="application/postscript" />*
*</atom:entry>*

On Mon, Mar 28, 2016 at 10:50 PM, Thanh Phan <pd...@gmail.com> wrote:

> Hi again,
>
> Thanks to your pointers, Florian, I figured it out how AD5 works (at least
> for "checkin the new content").
>
> It's like you suspected, Adobe will first perform a Post to create a new
> empty document like I mentioned earlier and then subsequently a PUT to
> modify the content, using the "content-edit" URI. The content of the file
> is the body of this PUT request.
>
> Earlier I was not able to catch the PUT request there's some issue with
> Adobe Drive 5 cache.
>
> Hope some souls out there who gotta deal with AD5 can find this
> information useful.
>
>
>
> On Mon, Mar 28, 2016 at 8:40 PM, Thanh Phan <pd...@gmail.com> wrote:
>
>> Youre absolutely right about it's not a checkin request. The first time a
>> document is added for versioning in Adobe Drive they perform a "Check In",
>> which I believe, is similar to a Document Creation request.
>>
>> I think they expect some thing in order to proceed but I have no clue
>> what it is.
>>
>> Since the operation fails, there are no subsequent PUT requests.
>>
>> On Sun, Mar 27, 2016 at 7:34 PM, Florian Müller <fm...@apache.org> wrote:
>>
>>> Hi,
>>>
>>> This is not a checkin request. This is an invalid create document
>>> request. (The property cmis:name is missing).
>>> Could you please check if there is a PUT request against the PWC
>>> resource? That would be the checkin call.
>>>
>>> - Florian
>>>
>>>
>>> > Hello Florian, I'm extremely appreciate that you take time to reply.
>>> >
>>> > I just tested again the InMemory Latest Build. What I tried is to
>>> > checkin a new file called "test.txt".
>>> >
>>> > I also tried to capture the POST request using rawcap, basically they
>>> > send out an /POST
>>> > /inmemory/atom/A1/children?id=125&versioningState=checkedout /
>>> > /
>>> > /
>>> > with the body being
>>> >
>>> > / <?xml version="1.0" encoding="utf-8"?>
>>> > /
>>> > /<entry xmlns="http://www.w3.org/2005/Atom"/
>>> > /xmlns:cmisra="http://docs.oasis-open.org/ns/cmis/restatom/200908/"/
>>> > /xmlns:cmis="http://docs.oasis-open.org/ns/cmis/core/200908/">/
>>> > / <title>test.txt</title>/
>>> > / <cmisra:object>/
>>> > /<cmis:properties>/
>>> > /<cmis:propertyId propertyDefinitionId="cmis:objectTypeId">/
>>> > /<cmis:value>cmis:document</cmis:value>/
>>> > /</cmis:propertyId>/
>>> > /</cmis:properties>/
>>> > / </cmisra:object>/
>>> > /</entry>/
>>> >
>>> > Again we got an error with the relevant Log in Adobe Drive 5:
>>> >
>>> > com.adobe.drive.data.model.DriveException: Error checking in: Conflict
>>> >       at
>>> com.adobe.drive.internal.data.manager.DataManager.executeCheckIn(DataManager.java:5680)
>>> >       at
>>> com.adobe.drive.internal.data.manager.DataManager.checkIn(DataManager.java:5305)
>>> >       at
>>> com.adobe.drive.internal.data.manager.DataManager.checkLocalAssetPostClose(DataManager.java:10324)
>>> >       at
>>> com.adobe.drive.internal.data.manager.DataManager.close(DataManager.java:3423)
>>> >       at
>>> com.adobe.drive.internal.biz.filesystem.FileSystemService$10.execute(FileSystemService.java:839)
>>> >       at
>>> com.adobe.drive.internal.biz.filesystem.FileSystemService$10.execute(FileSystemService.java:1)
>>> >       at
>>> com.adobe.drive.internal.biz.filesystem.FileSystemService$FSCallable.run(FileSystemService.java:1793)
>>> >       at
>>> com.adobe.drive.data.internal.persistence.PersistenceRunner$2.runWithTransaction(PersistenceRunner.java:186)
>>> >       at
>>> com.adobe.drive.data.internal.persistence.PersistenceModificationCallable.run(PersistenceModificationCallable.java:71)
>>> >       at
>>> com.adobe.drive.data.internal.persistence.PersistenceRunner.run(PersistenceRunner.java:119)
>>> >       at
>>> com.adobe.drive.data.internal.persistence.PersistenceRunner.runWithTransaction(PersistenceRunner.java:181)
>>> >       at
>>> com.adobe.drive.internal.biz.filesystem.FileSystemService.runWithTransaction(FileSystemService.java:1748)
>>> >       at
>>> com.adobe.drive.internal.biz.filesystem.FileSystemService.runWithTransaction(FileSystemService.java:1727)
>>> >       at
>>> com.adobe.drive.internal.biz.filesystem.FileSystemService.close(FileSystemService.java:821)
>>> >       at
>>> com.adobe.drive.ifs.job.CloseHandler$1.call(CloseHandler.java:67)
>>> >       at
>>> com.adobe.drive.ifs.job.CloseHandler$1.call(CloseHandler.java:1)
>>> >       at com.adobe.drive.model.context.Context.run(Context.java:88)
>>> >       at
>>> com.adobe.drive.ifs.internal.IFSConnection.dispatch(IFSConnection.java:187)
>>> >       at
>>> com.adobe.drive.ifs.internal.IFSConnection.run(IFSConnection.java:142)
>>> >
>>> > It;'s frustrating with AD5 really since I have no Idea what they are
>>> > expecting after that call.
>>> >
>>> > On Sun, Mar 27, 2016 at 4:54 PM, Florian Müller <fmui@apache.org
>>> > <ma...@apache.org>> wrote:
>>> >
>>> >     Hi,
>>> >
>>> >     Do you think you can capture this POST request?
>>> >     I don't think this is an OpenCMIS server framework problem, but we
>>> >     should check. At least the InMemory server should be more robust.
>>> >
>>> >     - Florian
>>> >
>>> >
>>> >     > Hello everyone,
>>> >     >
>>> >     > I know it's not a Adobe Drive 5 (AD5) place but i'm pretty
>>> >     desperate now
>>> >     > trying to uderstand the underlying actions. I would be very
>>> >     grateful if
>>> >     > someone knows how the checkin new files works for AD5 (latest
>>> >     build)?
>>> >     >
>>> >     > It does not seem to work with the latest build from Alfresco and
>>> the
>>> >     > InMemory OpenCMIS server. The one from InMemory got an
>>> >     NullPointerReference
>>> >     > error while Alfresco produces an empty file and an other emoty
>>> >     PWC, and AD5
>>> >     > has an Not Allowed Action Error.
>>> >     >
>>> >     > I seems to me that it sends a POST request to the parent
>>> >     folder's children
>>> >     > service with  a checked out requests but without any content.
>>> >     Why is that?
>>> >     > It seems also expect a Private Working Copy
>>> >     >
>>> >     > Thanks very much in advance.
>>> >     >
>>> >
>>> >
>>>
>>>
>>
>

Re: Question about Adobe Drive Checkins new file mechanism

Posted by Thanh Phan <pd...@gmail.com>.
Youre absolutely right about it's not a checkin request. The first time a
document is added for versioning in Adobe Drive they perform a "Check In",
which I believe, is similar to a Document Creation request.

I think they expect some thing in order to proceed but I have no clue what
it is.

Since the operation fails, there are no subsequent PUT requests.

On Sun, Mar 27, 2016 at 7:34 PM, Florian Müller <fm...@apache.org> wrote:

> Hi,
>
> This is not a checkin request. This is an invalid create document
> request. (The property cmis:name is missing).
> Could you please check if there is a PUT request against the PWC
> resource? That would be the checkin call.
>
> - Florian
>
>
> > Hello Florian, I'm extremely appreciate that you take time to reply.
> >
> > I just tested again the InMemory Latest Build. What I tried is to
> > checkin a new file called "test.txt".
> >
> > I also tried to capture the POST request using rawcap, basically they
> > send out an /POST
> > /inmemory/atom/A1/children?id=125&versioningState=checkedout /
> > /
> > /
> > with the body being
> >
> > / <?xml version="1.0" encoding="utf-8"?>
> > /
> > /<entry xmlns="http://www.w3.org/2005/Atom"/
> > /xmlns:cmisra="http://docs.oasis-open.org/ns/cmis/restatom/200908/"/
> > /xmlns:cmis="http://docs.oasis-open.org/ns/cmis/core/200908/">/
> > / <title>test.txt</title>/
> > / <cmisra:object>/
> > /<cmis:properties>/
> > /<cmis:propertyId propertyDefinitionId="cmis:objectTypeId">/
> > /<cmis:value>cmis:document</cmis:value>/
> > /</cmis:propertyId>/
> > /</cmis:properties>/
> > / </cmisra:object>/
> > /</entry>/
> >
> > Again we got an error with the relevant Log in Adobe Drive 5:
> >
> > com.adobe.drive.data.model.DriveException: Error checking in: Conflict
> >       at
> com.adobe.drive.internal.data.manager.DataManager.executeCheckIn(DataManager.java:5680)
> >       at
> com.adobe.drive.internal.data.manager.DataManager.checkIn(DataManager.java:5305)
> >       at
> com.adobe.drive.internal.data.manager.DataManager.checkLocalAssetPostClose(DataManager.java:10324)
> >       at
> com.adobe.drive.internal.data.manager.DataManager.close(DataManager.java:3423)
> >       at
> com.adobe.drive.internal.biz.filesystem.FileSystemService$10.execute(FileSystemService.java:839)
> >       at
> com.adobe.drive.internal.biz.filesystem.FileSystemService$10.execute(FileSystemService.java:1)
> >       at
> com.adobe.drive.internal.biz.filesystem.FileSystemService$FSCallable.run(FileSystemService.java:1793)
> >       at
> com.adobe.drive.data.internal.persistence.PersistenceRunner$2.runWithTransaction(PersistenceRunner.java:186)
> >       at
> com.adobe.drive.data.internal.persistence.PersistenceModificationCallable.run(PersistenceModificationCallable.java:71)
> >       at
> com.adobe.drive.data.internal.persistence.PersistenceRunner.run(PersistenceRunner.java:119)
> >       at
> com.adobe.drive.data.internal.persistence.PersistenceRunner.runWithTransaction(PersistenceRunner.java:181)
> >       at
> com.adobe.drive.internal.biz.filesystem.FileSystemService.runWithTransaction(FileSystemService.java:1748)
> >       at
> com.adobe.drive.internal.biz.filesystem.FileSystemService.runWithTransaction(FileSystemService.java:1727)
> >       at
> com.adobe.drive.internal.biz.filesystem.FileSystemService.close(FileSystemService.java:821)
> >       at
> com.adobe.drive.ifs.job.CloseHandler$1.call(CloseHandler.java:67)
> >       at com.adobe.drive.ifs.job.CloseHandler$1.call(CloseHandler.java:1)
> >       at com.adobe.drive.model.context.Context.run(Context.java:88)
> >       at
> com.adobe.drive.ifs.internal.IFSConnection.dispatch(IFSConnection.java:187)
> >       at
> com.adobe.drive.ifs.internal.IFSConnection.run(IFSConnection.java:142)
> >
> > It;'s frustrating with AD5 really since I have no Idea what they are
> > expecting after that call.
> >
> > On Sun, Mar 27, 2016 at 4:54 PM, Florian Müller <fmui@apache.org
> > <ma...@apache.org>> wrote:
> >
> >     Hi,
> >
> >     Do you think you can capture this POST request?
> >     I don't think this is an OpenCMIS server framework problem, but we
> >     should check. At least the InMemory server should be more robust.
> >
> >     - Florian
> >
> >
> >     > Hello everyone,
> >     >
> >     > I know it's not a Adobe Drive 5 (AD5) place but i'm pretty
> >     desperate now
> >     > trying to uderstand the underlying actions. I would be very
> >     grateful if
> >     > someone knows how the checkin new files works for AD5 (latest
> >     build)?
> >     >
> >     > It does not seem to work with the latest build from Alfresco and
> the
> >     > InMemory OpenCMIS server. The one from InMemory got an
> >     NullPointerReference
> >     > error while Alfresco produces an empty file and an other emoty
> >     PWC, and AD5
> >     > has an Not Allowed Action Error.
> >     >
> >     > I seems to me that it sends a POST request to the parent
> >     folder's children
> >     > service with  a checked out requests but without any content.
> >     Why is that?
> >     > It seems also expect a Private Working Copy
> >     >
> >     > Thanks very much in advance.
> >     >
> >
> >
>
>

Re: Question about Adobe Drive Checkins new file mechanism

Posted by Florian Müller <fm...@apache.org>.
Hi,

This is not a checkin request. This is an invalid create document
request. (The property cmis:name is missing).
Could you please check if there is a PUT request against the PWC
resource? That would be the checkin call.

- Florian


> Hello Florian, I'm extremely appreciate that you take time to reply.
>
> I just tested again the InMemory Latest Build. What I tried is to
> checkin a new file called "test.txt".
>
> I also tried to capture the POST request using rawcap, basically they
> send out an /POST
> /inmemory/atom/A1/children?id=125&versioningState=checkedout /
> /
> /
> with the body being 
>
> / <?xml version="1.0" encoding="utf-8"?>
> /
> /<entry xmlns="http://www.w3.org/2005/Atom"/
> /xmlns:cmisra="http://docs.oasis-open.org/ns/cmis/restatom/200908/"/
> /xmlns:cmis="http://docs.oasis-open.org/ns/cmis/core/200908/">/
> / <title>test.txt</title>/
> / <cmisra:object>/
> /<cmis:properties>/
> /<cmis:propertyId propertyDefinitionId="cmis:objectTypeId">/
> /<cmis:value>cmis:document</cmis:value>/
> /</cmis:propertyId>/
> /</cmis:properties>/
> / </cmisra:object>/
> /</entry>/
>
> Again we got an error with the relevant Log in Adobe Drive 5:
>
> com.adobe.drive.data.model.DriveException: Error checking in: Conflict
> 	at com.adobe.drive.internal.data.manager.DataManager.executeCheckIn(DataManager.java:5680)
> 	at com.adobe.drive.internal.data.manager.DataManager.checkIn(DataManager.java:5305)
> 	at com.adobe.drive.internal.data.manager.DataManager.checkLocalAssetPostClose(DataManager.java:10324)
> 	at com.adobe.drive.internal.data.manager.DataManager.close(DataManager.java:3423)
> 	at com.adobe.drive.internal.biz.filesystem.FileSystemService$10.execute(FileSystemService.java:839)
> 	at com.adobe.drive.internal.biz.filesystem.FileSystemService$10.execute(FileSystemService.java:1)
> 	at com.adobe.drive.internal.biz.filesystem.FileSystemService$FSCallable.run(FileSystemService.java:1793)
> 	at com.adobe.drive.data.internal.persistence.PersistenceRunner$2.runWithTransaction(PersistenceRunner.java:186)
> 	at com.adobe.drive.data.internal.persistence.PersistenceModificationCallable.run(PersistenceModificationCallable.java:71)
> 	at com.adobe.drive.data.internal.persistence.PersistenceRunner.run(PersistenceRunner.java:119)
> 	at com.adobe.drive.data.internal.persistence.PersistenceRunner.runWithTransaction(PersistenceRunner.java:181)
> 	at com.adobe.drive.internal.biz.filesystem.FileSystemService.runWithTransaction(FileSystemService.java:1748)
> 	at com.adobe.drive.internal.biz.filesystem.FileSystemService.runWithTransaction(FileSystemService.java:1727)
> 	at com.adobe.drive.internal.biz.filesystem.FileSystemService.close(FileSystemService.java:821)
> 	at com.adobe.drive.ifs.job.CloseHandler$1.call(CloseHandler.java:67)
> 	at com.adobe.drive.ifs.job.CloseHandler$1.call(CloseHandler.java:1)
> 	at com.adobe.drive.model.context.Context.run(Context.java:88)
> 	at com.adobe.drive.ifs.internal.IFSConnection.dispatch(IFSConnection.java:187)
> 	at com.adobe.drive.ifs.internal.IFSConnection.run(IFSConnection.java:142)
>
> It;'s frustrating with AD5 really since I have no Idea what they are
> expecting after that call. 
>
> On Sun, Mar 27, 2016 at 4:54 PM, Florian Müller <fmui@apache.org
> <ma...@apache.org>> wrote:
>
>     Hi,
>
>     Do you think you can capture this POST request?
>     I don't think this is an OpenCMIS server framework problem, but we
>     should check. At least the InMemory server should be more robust.
>
>     - Florian
>
>
>     > Hello everyone,
>     >
>     > I know it's not a Adobe Drive 5 (AD5) place but i'm pretty
>     desperate now
>     > trying to uderstand the underlying actions. I would be very
>     grateful if
>     > someone knows how the checkin new files works for AD5 (latest
>     build)?
>     >
>     > It does not seem to work with the latest build from Alfresco and the
>     > InMemory OpenCMIS server. The one from InMemory got an
>     NullPointerReference
>     > error while Alfresco produces an empty file and an other emoty
>     PWC, and AD5
>     > has an Not Allowed Action Error.
>     >
>     > I seems to me that it sends a POST request to the parent
>     folder's children
>     > service with  a checked out requests but without any content.
>     Why is that?
>     > It seems also expect a Private Working Copy
>     >
>     > Thanks very much in advance.
>     >
>
>


Re: Question about Adobe Drive Checkins new file mechanism

Posted by Florian Müller <fm...@apache.org>.
Hi,

Do you think you can capture this POST request?
I don't think this is an OpenCMIS server framework problem, but we
should check. At least the InMemory server should be more robust.

- Florian


> Hello everyone,
> 
> I know it's not a Adobe Drive 5 (AD5) place but i'm pretty desperate now
> trying to uderstand the underlying actions. I would be very grateful if
> someone knows how the checkin new files works for AD5 (latest build)?
> 
> It does not seem to work with the latest build from Alfresco and the
> InMemory OpenCMIS server. The one from InMemory got an NullPointerReference
> error while Alfresco produces an empty file and an other emoty PWC, and AD5
> has an Not Allowed Action Error.
> 
> I seems to me that it sends a POST request to the parent folder's children
> service with  a checked out requests but without any content. Why is that?
> It seems also expect a Private Working Copy
> 
> Thanks very much in advance.
>