You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@chemistry.apache.org by "Patrick Balm (Commented) (JIRA)" <ji...@apache.org> on 2012/03/31 10:20:42 UTC
[jira] [Commented] (CMIS-519) getContentChanges shows unexpected
result after adding new entry to repository based on changeToken
[ https://issues.apache.org/jira/browse/CMIS-519?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13243079#comment-13243079 ]
Patrick Balm commented on CMIS-519:
-----------------------------------
Haha, I totally did not consider checking the source code before posting this :|
Thanks for the response.
I used the In-Memory server for this because my regular DMS has too many entries and I was trying to establish
a behaviour pattern for changeLog events.
> getContentChanges shows unexpected result after adding new entry to repository based on changeToken
> ---------------------------------------------------------------------------------------------------
>
> Key: CMIS-519
> URL: https://issues.apache.org/jira/browse/CMIS-519
> Project: Chemistry
> Issue Type: Bug
> Components: opencmis-server-inmemory, opencmis-workbench
> Affects Versions: OpenCMIS 0.7.0
> Environment: dev-trunk (local machine)
> http://localhost:8080/chemistry-opencmis-server-inmemory-0.7.0-SNAPSHOT/services/RepositoryService
> snapshot local build on 29-Mar-2012
> Reporter: Patrick Balm
>
> I am working on a mechanism to replay/record the changes (changeLog) in the repository based on getContentChanges
> but the result I expect is different than what is returned.
> Is it me, am I going about it the wrong way?
> Or is it a bug?
> TEST LOG:
> OpenCMIS In-Memory (0.7.0-SNAPSHOT trunk (from yesterday;29-03-2012)
> Testing with 0.6.0 Workbench
> ------------------
> ******************************************
> 1. cleared repository
> removed all entries
> ******************************************
> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://docs.oasis-open.org/ns/cmis/messaging/200908/">
> <soapenv:Header/>
> <soapenv:Body>
> <ns:getContentChanges>
> <ns:repositoryId>A1</ns:repositoryId>
> </ns:getContentChanges>
> </soapenv:Body>
> </soapenv:Envelope>
> response
> <S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
> <S:Header>
> <Security xmlns="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
> <Timestamp xmlns="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
> <Created>2012-03-30T12:08:23Z</Created>
> <Expires>2012-03-31T12:08:23Z</Expires>
> </Timestamp>
> </Security>
> </S:Header>
> <S:Body>
> <getContentChangesResponse xmlns="http://docs.oasis-open.org/ns/cmis/messaging/200908/" xmlns:ns2="http://docs.oasis-open.org/ns/cmis/core/200908/">
> <objects>
> <hasMoreItems>false</hasMoreItems>
> <numItems>0</numItems>
> </objects>
> </getContentChangesResponse>
> </S:Body>
> </S:Envelope>
> ******************************************
> 2. add first document (via Workbench) to repository and ask for changes
> ******************************************
> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://docs.oasis-open.org/ns/cmis/messaging/200908/">
> <soapenv:Header/>
> <soapenv:Body>
> <ns:getContentChanges>
> <ns:repositoryId>A1</ns:repositoryId>
> </ns:getContentChanges>
> </soapenv:Body>
> </soapenv:Envelope>
> response:
> <S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
> <S:Header>
> <Security xmlns="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
> <Timestamp xmlns="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
> <Created>2012-03-30T12:11:27Z</Created>
> <Expires>2012-03-31T12:11:27Z</Expires>
> </Timestamp>
> </Security>
> </S:Header>
> <S:Body>
> <getContentChangesResponse xmlns="http://docs.oasis-open.org/ns/cmis/messaging/200908/" xmlns:ns2="http://docs.oasis-open.org/ns/cmis/core/200908/">
> <objects>
> <objects>
> <ns2:properties>
> <ns2:propertyBoolean queryName="cmis:isLatestMajorVersion" displayName="Is Latest Major Version" localName="cmis:isLatestMajorVersion" propertyDefinitionId="cmis:isLatestMajorVersion">
> <ns2:value>true</ns2:value>
> </ns2:propertyBoolean>
> <ns2:propertyString queryName="cmis:contentStreamId" displayName="Stream Id" localName="cmis:contentStreamId" propertyDefinitionId="cmis:contentStreamId"/>
> <ns2:propertyInteger queryName="cmis:contentStreamLength" displayName="Content Length" localName="cmis:contentStreamLength" propertyDefinitionId="cmis:contentStreamLength">
> <ns2:value>1733920</ns2:value>
> </ns2:propertyInteger>
> <ns2:propertyString queryName="cmis:versionSeriesCheckedOutBy" displayName="Checked Out By" localName="cmis:versionSeriesCheckedOutBy" propertyDefinitionId="cmis:versionSeriesCheckedOutBy"/>
> <ns2:propertyId queryName="cmis:objectTypeId" displayName="Type-Id" localName="cmis:objectTypeId" propertyDefinitionId="cmis:objectTypeId">
> <ns2:value>cmis:document</ns2:value>
> </ns2:propertyId>
> <ns2:propertyId queryName="cmis:versionSeriesCheckedOutId" displayName="Checked Out Id" localName="cmis:versionSeriesCheckedOutId" propertyDefinitionId="cmis:versionSeriesCheckedOutId"/>
> <ns2:propertyString queryName="cmis:name" displayName="Name" localName="cmis:name" propertyDefinitionId="cmis:name">
> <ns2:value>3jr-jamie.jpg</ns2:value>
> </ns2:propertyString>
> <ns2:propertyString queryName="cmis:contentStreamMimeType" displayName="Mime Type" localName="cmis:contentStreamMimeType" propertyDefinitionId="cmis:contentStreamMimeType">
> <ns2:value>image/jpeg</ns2:value>
> </ns2:propertyString>
> <ns2:propertyId queryName="cmis:versionSeriesId" displayName="Version Series Id" localName="cmis:versionSeriesId" propertyDefinitionId="cmis:versionSeriesId"/>
> <ns2:propertyDateTime queryName="cmis:creationDate" displayName="Creation Date" localName="cmis:creationDate" propertyDefinitionId="cmis:creationDate">
> <ns2:value>2012-03-30T12:11:02.175Z</ns2:value>
> </ns2:propertyDateTime>
> <ns2:propertyString queryName="cmis:changeToken" displayName="Change Token" localName="cmis:changeToken" propertyDefinitionId="cmis:changeToken">
> <ns2:value>1333109462175</ns2:value>
> </ns2:propertyString>
> <ns2:propertyString queryName="cmis:versionLabel" displayName="Version Label" localName="cmis:versionLabel" propertyDefinitionId="cmis:versionLabel"/>
> <ns2:propertyBoolean queryName="cmis:isLatestVersion" displayName="Is Latest Version" localName="cmis:isLatestVersion" propertyDefinitionId="cmis:isLatestVersion">
> <ns2:value>true</ns2:value>
> </ns2:propertyBoolean>
> <ns2:propertyBoolean queryName="cmis:isVersionSeriesCheckedOut" displayName="Checked Out" localName="cmis:isVersionSeriesCheckedOut" propertyDefinitionId="cmis:isVersionSeriesCheckedOut">
> <ns2:value>false</ns2:value>
> </ns2:propertyBoolean>
> <ns2:propertyString queryName="cmis:lastModifiedBy" displayName="Modified By" localName="cmis:lastModifiedBy" propertyDefinitionId="cmis:lastModifiedBy">
> <ns2:value>unknown</ns2:value>
> </ns2:propertyString>
> <ns2:propertyString queryName="cmis:createdBy" displayName="Created By" localName="cmis:createdBy" propertyDefinitionId="cmis:createdBy">
> <ns2:value>unknown</ns2:value>
> </ns2:propertyString>
> <ns2:propertyString queryName="cmis:checkinComment" displayName="Checkin Comment" localName="cmis:checkinComment" propertyDefinitionId="cmis:checkinComment"/>
> <ns2:propertyId queryName="cmis:objectId" displayName="Object Id" localName="cmis:objectId" propertyDefinitionId="cmis:objectId">
> <ns2:value>136</ns2:value>
> </ns2:propertyId>
> <ns2:propertyBoolean queryName="cmis:isMajorVersion" displayName="Is Major Version" localName="cmis:isMajorVersion" propertyDefinitionId="cmis:isMajorVersion">
> <ns2:value>true</ns2:value>
> </ns2:propertyBoolean>
> <ns2:propertyBoolean queryName="cmis:isImmutable" displayName="Immutable" localName="cmis:isImmutable" propertyDefinitionId="cmis:isImmutable">
> <ns2:value>false</ns2:value>
> </ns2:propertyBoolean>
> <ns2:propertyId queryName="cmis:baseTypeId" displayName="Base-Type-Id" localName="cmis:baseTypeId" propertyDefinitionId="cmis:baseTypeId">
> <ns2:value>cmis:document</ns2:value>
> </ns2:propertyId>
> <ns2:propertyDateTime queryName="cmis:lastModificationDate" displayName="Modification Date" localName="cmis:lastModificationDate" propertyDefinitionId="cmis:lastModificationDate">
> <ns2:value>2012-03-30T12:11:02.175Z</ns2:value>
> </ns2:propertyDateTime>
> <ns2:propertyString queryName="cmis:contentStreamFileName" displayName="File Name" localName="cmis:contentStreamFileName" propertyDefinitionId="cmis:contentStreamFileName">
> <ns2:value>3jr-jamie.jpg</ns2:value>
> </ns2:propertyString>
> </ns2:properties>
> <ns2:changeEventInfo>
> <ns2:changeType>updated</ns2:changeType>
> <ns2:changeTime>2012-03-30T14:11:27.869+02:00</ns2:changeTime>
> </ns2:changeEventInfo>
> </objects>
> <hasMoreItems>false</hasMoreItems>
> <numItems>1</numItems>
> </objects>
> </getContentChangesResponse>
> </S:Body>
> </S:Envelope>
> ******************************************
> 3. Appears to be what I expected
> now I have added second document via Workbench
> ******************************************
> now query for changeToken=1333109462175 (taken from 1st entry)
> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://docs.oasis-open.org/ns/cmis/messaging/200908/">
> <soapenv:Header/>
> <soapenv:Body>
> <ns:getContentChanges>
> <ns:repositoryId>A1</ns:repositoryId>
> <ns:changeToken>1333109462175</ns:changeToken>
> </ns:getContentChanges>
> </soapenv:Body>
> </soapenv:Envelope>
> response:
> I receive both entries instead of expected single entry with changeToken=1333109462175
> <S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
> <S:Header>
> <Security xmlns="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
> <Timestamp xmlns="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
> <Created>2012-03-30T12:16:35Z</Created>
> <Expires>2012-03-31T12:16:35Z</Expires>
> </Timestamp>
> </Security>
> </S:Header>
> <S:Body>
> <getContentChangesResponse xmlns="http://docs.oasis-open.org/ns/cmis/messaging/200908/" xmlns:ns2="http://docs.oasis-open.org/ns/cmis/core/200908/">
> <objects>
> <objects>
> <ns2:properties>
> <ns2:propertyBoolean queryName="cmis:isLatestMajorVersion" displayName="Is Latest Major Version" localName="cmis:isLatestMajorVersion" propertyDefinitionId="cmis:isLatestMajorVersion">
> <ns2:value>true</ns2:value>
> </ns2:propertyBoolean>
> <ns2:propertyString queryName="cmis:contentStreamId" displayName="Stream Id" localName="cmis:contentStreamId" propertyDefinitionId="cmis:contentStreamId"/>
> <ns2:propertyInteger queryName="cmis:contentStreamLength" displayName="Content Length" localName="cmis:contentStreamLength" propertyDefinitionId="cmis:contentStreamLength">
> <ns2:value>1733920</ns2:value>
> </ns2:propertyInteger>
> <ns2:propertyString queryName="cmis:versionSeriesCheckedOutBy" displayName="Checked Out By" localName="cmis:versionSeriesCheckedOutBy" propertyDefinitionId="cmis:versionSeriesCheckedOutBy"/>
> <ns2:propertyId queryName="cmis:objectTypeId" displayName="Type-Id" localName="cmis:objectTypeId" propertyDefinitionId="cmis:objectTypeId">
> <ns2:value>cmis:document</ns2:value>
> </ns2:propertyId>
> <ns2:propertyId queryName="cmis:versionSeriesCheckedOutId" displayName="Checked Out Id" localName="cmis:versionSeriesCheckedOutId" propertyDefinitionId="cmis:versionSeriesCheckedOutId"/>
> <ns2:propertyString queryName="cmis:name" displayName="Name" localName="cmis:name" propertyDefinitionId="cmis:name">
> <ns2:value>3jr-jamie.jpg</ns2:value>
> </ns2:propertyString>
> <ns2:propertyString queryName="cmis:contentStreamMimeType" displayName="Mime Type" localName="cmis:contentStreamMimeType" propertyDefinitionId="cmis:contentStreamMimeType">
> <ns2:value>image/jpeg</ns2:value>
> </ns2:propertyString>
> <ns2:propertyId queryName="cmis:versionSeriesId" displayName="Version Series Id" localName="cmis:versionSeriesId" propertyDefinitionId="cmis:versionSeriesId"/>
> <ns2:propertyDateTime queryName="cmis:creationDate" displayName="Creation Date" localName="cmis:creationDate" propertyDefinitionId="cmis:creationDate">
> <ns2:value>2012-03-30T12:11:02.175Z</ns2:value>
> </ns2:propertyDateTime>
> <ns2:propertyString queryName="cmis:changeToken" displayName="Change Token" localName="cmis:changeToken" propertyDefinitionId="cmis:changeToken">
> <ns2:value>1333109462175</ns2:value>
> </ns2:propertyString>
> <ns2:propertyString queryName="cmis:versionLabel" displayName="Version Label" localName="cmis:versionLabel" propertyDefinitionId="cmis:versionLabel"/>
> <ns2:propertyBoolean queryName="cmis:isLatestVersion" displayName="Is Latest Version" localName="cmis:isLatestVersion" propertyDefinitionId="cmis:isLatestVersion">
> <ns2:value>true</ns2:value>
> </ns2:propertyBoolean>
> <ns2:propertyBoolean queryName="cmis:isVersionSeriesCheckedOut" displayName="Checked Out" localName="cmis:isVersionSeriesCheckedOut" propertyDefinitionId="cmis:isVersionSeriesCheckedOut">
> <ns2:value>false</ns2:value>
> </ns2:propertyBoolean>
> <ns2:propertyString queryName="cmis:lastModifiedBy" displayName="Modified By" localName="cmis:lastModifiedBy" propertyDefinitionId="cmis:lastModifiedBy">
> <ns2:value>unknown</ns2:value>
> </ns2:propertyString>
> <ns2:propertyString queryName="cmis:createdBy" displayName="Created By" localName="cmis:createdBy" propertyDefinitionId="cmis:createdBy">
> <ns2:value>unknown</ns2:value>
> </ns2:propertyString>
> <ns2:propertyString queryName="cmis:checkinComment" displayName="Checkin Comment" localName="cmis:checkinComment" propertyDefinitionId="cmis:checkinComment"/>
> <ns2:propertyId queryName="cmis:objectId" displayName="Object Id" localName="cmis:objectId" propertyDefinitionId="cmis:objectId">
> <ns2:value>136</ns2:value>
> </ns2:propertyId>
> <ns2:propertyBoolean queryName="cmis:isMajorVersion" displayName="Is Major Version" localName="cmis:isMajorVersion" propertyDefinitionId="cmis:isMajorVersion">
> <ns2:value>true</ns2:value>
> </ns2:propertyBoolean>
> <ns2:propertyBoolean queryName="cmis:isImmutable" displayName="Immutable" localName="cmis:isImmutable" propertyDefinitionId="cmis:isImmutable">
> <ns2:value>false</ns2:value>
> </ns2:propertyBoolean>
> <ns2:propertyId queryName="cmis:baseTypeId" displayName="Base-Type-Id" localName="cmis:baseTypeId" propertyDefinitionId="cmis:baseTypeId">
> <ns2:value>cmis:document</ns2:value>
> </ns2:propertyId>
> <ns2:propertyDateTime queryName="cmis:lastModificationDate" displayName="Modification Date" localName="cmis:lastModificationDate" propertyDefinitionId="cmis:lastModificationDate">
> <ns2:value>2012-03-30T12:11:02.175Z</ns2:value>
> </ns2:propertyDateTime>
> <ns2:propertyString queryName="cmis:contentStreamFileName" displayName="File Name" localName="cmis:contentStreamFileName" propertyDefinitionId="cmis:contentStreamFileName">
> <ns2:value>3jr-jamie.jpg</ns2:value>
> </ns2:propertyString>
> </ns2:properties>
> <ns2:changeEventInfo>
> <ns2:changeType>updated</ns2:changeType>
> <ns2:changeTime>2012-03-30T14:16:35.129+02:00</ns2:changeTime>
> </ns2:changeEventInfo>
> </objects>
> <objects>
> <ns2:properties>
> <ns2:propertyBoolean queryName="cmis:isLatestMajorVersion" displayName="Is Latest Major Version" localName="cmis:isLatestMajorVersion" propertyDefinitionId="cmis:isLatestMajorVersion">
> <ns2:value>true</ns2:value>
> </ns2:propertyBoolean>
> <ns2:propertyString queryName="cmis:contentStreamId" displayName="Stream Id" localName="cmis:contentStreamId" propertyDefinitionId="cmis:contentStreamId"/>
> <ns2:propertyInteger queryName="cmis:contentStreamLength" displayName="Content Length" localName="cmis:contentStreamLength" propertyDefinitionId="cmis:contentStreamLength">
> <ns2:value>31378</ns2:value>
> </ns2:propertyInteger>
> <ns2:propertyString queryName="cmis:versionSeriesCheckedOutBy" displayName="Checked Out By" localName="cmis:versionSeriesCheckedOutBy" propertyDefinitionId="cmis:versionSeriesCheckedOutBy"/>
> <ns2:propertyId queryName="cmis:objectTypeId" displayName="Type-Id" localName="cmis:objectTypeId" propertyDefinitionId="cmis:objectTypeId">
> <ns2:value>cmis:document</ns2:value>
> </ns2:propertyId>
> <ns2:propertyId queryName="cmis:versionSeriesCheckedOutId" displayName="Checked Out Id" localName="cmis:versionSeriesCheckedOutId" propertyDefinitionId="cmis:versionSeriesCheckedOutId"/>
> <ns2:propertyString queryName="cmis:name" displayName="Name" localName="cmis:name" propertyDefinitionId="cmis:name">
> <ns2:value>jboss-securejmx.pdf</ns2:value>
> </ns2:propertyString>
> <ns2:propertyString queryName="cmis:contentStreamMimeType" displayName="Mime Type" localName="cmis:contentStreamMimeType" propertyDefinitionId="cmis:contentStreamMimeType">
> <ns2:value>application/pdf</ns2:value>
> </ns2:propertyString>
> <ns2:propertyId queryName="cmis:versionSeriesId" displayName="Version Series Id" localName="cmis:versionSeriesId" propertyDefinitionId="cmis:versionSeriesId"/>
> <ns2:propertyDateTime queryName="cmis:creationDate" displayName="Creation Date" localName="cmis:creationDate" propertyDefinitionId="cmis:creationDate">
> <ns2:value>2012-03-30T12:14:26.669Z</ns2:value>
> </ns2:propertyDateTime>
> <ns2:propertyString queryName="cmis:changeToken" displayName="Change Token" localName="cmis:changeToken" propertyDefinitionId="cmis:changeToken">
> <ns2:value>1333109666669</ns2:value>
> </ns2:propertyString>
> <ns2:propertyString queryName="cmis:versionLabel" displayName="Version Label" localName="cmis:versionLabel" propertyDefinitionId="cmis:versionLabel"/>
> <ns2:propertyBoolean queryName="cmis:isLatestVersion" displayName="Is Latest Version" localName="cmis:isLatestVersion" propertyDefinitionId="cmis:isLatestVersion">
> <ns2:value>true</ns2:value>
> </ns2:propertyBoolean>
> <ns2:propertyBoolean queryName="cmis:isVersionSeriesCheckedOut" displayName="Checked Out" localName="cmis:isVersionSeriesCheckedOut" propertyDefinitionId="cmis:isVersionSeriesCheckedOut">
> <ns2:value>false</ns2:value>
> </ns2:propertyBoolean>
> <ns2:propertyString queryName="cmis:lastModifiedBy" displayName="Modified By" localName="cmis:lastModifiedBy" propertyDefinitionId="cmis:lastModifiedBy">
> <ns2:value>unknown</ns2:value>
> </ns2:propertyString>
> <ns2:propertyString queryName="cmis:createdBy" displayName="Created By" localName="cmis:createdBy" propertyDefinitionId="cmis:createdBy">
> <ns2:value>unknown</ns2:value>
> </ns2:propertyString>
> <ns2:propertyString queryName="cmis:checkinComment" displayName="Checkin Comment" localName="cmis:checkinComment" propertyDefinitionId="cmis:checkinComment"/>
> <ns2:propertyId queryName="cmis:objectId" displayName="Object Id" localName="cmis:objectId" propertyDefinitionId="cmis:objectId">
> <ns2:value>137</ns2:value>
> </ns2:propertyId>
> <ns2:propertyBoolean queryName="cmis:isMajorVersion" displayName="Is Major Version" localName="cmis:isMajorVersion" propertyDefinitionId="cmis:isMajorVersion">
> <ns2:value>true</ns2:value>
> </ns2:propertyBoolean>
> <ns2:propertyBoolean queryName="cmis:isImmutable" displayName="Immutable" localName="cmis:isImmutable" propertyDefinitionId="cmis:isImmutable">
> <ns2:value>false</ns2:value>
> </ns2:propertyBoolean>
> <ns2:propertyId queryName="cmis:baseTypeId" displayName="Base-Type-Id" localName="cmis:baseTypeId" propertyDefinitionId="cmis:baseTypeId">
> <ns2:value>cmis:document</ns2:value>
> </ns2:propertyId>
> <ns2:propertyDateTime queryName="cmis:lastModificationDate" displayName="Modification Date" localName="cmis:lastModificationDate" propertyDefinitionId="cmis:lastModificationDate">
> <ns2:value>2012-03-30T12:14:26.669Z</ns2:value>
> </ns2:propertyDateTime>
> <ns2:propertyString queryName="cmis:contentStreamFileName" displayName="File Name" localName="cmis:contentStreamFileName" propertyDefinitionId="cmis:contentStreamFileName">
> <ns2:value>jboss-securejmx.pdf</ns2:value>
> </ns2:propertyString>
> </ns2:properties>
> <ns2:changeEventInfo>
> <ns2:changeType>updated</ns2:changeType>
> <ns2:changeTime>2012-03-30T14:16:35.129+02:00</ns2:changeTime>
> </ns2:changeEventInfo>
> </objects>
> <hasMoreItems>false</hasMoreItems>
> <numItems>2</numItems>
> </objects>
> </getContentChangesResponse>
> </S:Body>
> </S:Envelope>
> Is this what should be expected and am I looking at it from a wrong/different standpoint?
> Or can it be a bug?
> TIA
> /patrick
--
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