chemistry-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Patrick Balm (Created) (JIRA)" <j...@apache.org>
Subject [jira] [Created] (CMIS-519) getContentChanges shows unexpected result after adding new entry to repository based on changeToken
Date Fri, 30 Mar 2012 12:40:29 GMT
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

        

Mime
View raw message