Uploaded image for project: 'ManifoldCF'
  1. ManifoldCF
  2. CONNECTORS-996

Handle Delete documents in CMIS/Alfresco/Google Driver Connectors

    XMLWordPrintableJSON

    Details

      Description

      Steps to reproduce:

      Create a repository connector using CMIS connector.
      Create an incremental crawling job and let document get crawled one time.
      In the next re-crawl interval, delete one or more documents from the repository end. You may start seeing below logs:

      FATAL 2014-07-16 11:10:58,376 (Worker thread '19') - Error tossed: Object not found: workspace://SpacesStore/362c30aa-cf01-4f24-aa4a-8b17ef0375c5;1.0
      org.apache.chemistry.opencmis.commons.exceptions.CmisObjectNotFoundException: Object not found: workspace://SpacesStore/362c30aa-cf01-4f24-aa4a-8b17ef0375c5;1.0
      at org.apache.chemistry.opencmis.client.bindings.spi.atompub.AbstractAtomPubService.convertStatusCode(AbstractAtomPubService.java:462)
      at org.apache.chemistry.opencmis.client.bindings.spi.atompub.AbstractAtomPubService.read(AbstractAtomPubService.java:601)
      at org.apache.chemistry.opencmis.client.bindings.spi.atompub.AbstractAtomPubService.getObjectInternal(AbstractAtomPubService.java:824)
      at org.apache.chemistry.opencmis.client.bindings.spi.atompub.ObjectServiceImpl.getObject(ObjectServiceImpl.java:608)
      at org.apache.chemistry.opencmis.client.runtime.SessionImpl.getObject(SessionImpl.java:410)
      at org.apache.chemistry.opencmis.client.runtime.SessionImpl.getObject(SessionImpl.java:388)
      at org.apache.manifoldcf.crawler.connectors.cmis.CmisRepositoryConnector.getDocumentVersions(CmisRepositoryConnector.java:1261)
      at org.apache.manifoldcf.crawler.connectors.BaseRepositoryConnector.getDocumentVersions(BaseRepositoryConnector.java:362)
      at org.apache.manifoldcf.crawler.connectors.BaseRepositoryConnector.getDocumentVersions(BaseRepositoryConnector.java:343)
      at org.apache.manifoldcf.crawler.connectors.BaseRepositoryConnector.getDocumentVersions(BaseRepositoryConnector.java:322)
      at org.apache.manifoldcf.crawler.connectors.BaseRepositoryConnector.getDocumentVersions(BaseRepositoryConnector.java:299)

      org.apache.chemistry.opencmis.commons.exceptions.CmisObjectNotFoundException is thrown for the seeded documents which got deleted.
      Would it be proper to catch this exception at getDocumentVersions as :

      while (i < rval.length) {
      try

      { CmisObject cmisObject = session.getObject(documentIdentifiers[i]); // // Rest of the code // }

      catch (CmisObjectNotFoundException e)

      { rval[i] = null; }

      }

      And forward document delete call for the output connectors ?

        Attachments

          Activity

            People

            • Assignee:
              kwright@metacarta.com Karl Wright
              Reporter:
              PrasadPerera Prasad Perera
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: