You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@manifoldcf.apache.org by kw...@apache.org on 2014/07/17 02:25:50 UTC

svn commit: r1611225 - in /manifoldcf/trunk: ./ connectors/cmis/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/cmis/ connectors/cmis/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/cmis/tests/

Author: kwright
Date: Thu Jul 17 00:25:49 2014
New Revision: 1611225

URL: http://svn.apache.org/r1611225
Log:
Fix for CONNECTORS-996.

Added:
    manifoldcf/trunk/connectors/cmis/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/cmis/tests/APISanityDerbyIT.java
      - copied, changed from r1610947, manifoldcf/trunk/connectors/cmis/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/cmis/tests/APISanityIT.java
Removed:
    manifoldcf/trunk/connectors/cmis/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/cmis/tests/APISanityIT.java
Modified:
    manifoldcf/trunk/CHANGES.txt
    manifoldcf/trunk/connectors/cmis/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/cmis/CmisRepositoryConnector.java
    manifoldcf/trunk/connectors/cmis/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/cmis/tests/BaseITDerby.java

Modified: manifoldcf/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/manifoldcf/trunk/CHANGES.txt?rev=1611225&r1=1611224&r2=1611225&view=diff
==============================================================================
--- manifoldcf/trunk/CHANGES.txt (original)
+++ manifoldcf/trunk/CHANGES.txt Thu Jul 17 00:25:49 2014
@@ -3,6 +3,10 @@ $Id$
 
 ======================= 1.7-dev =====================
 
+CONNECTORS-996: Catch CMIS object not found exception, and
+also enable CMIS derby IT test.
+(Prasad Perera, Karl Wright)
+
 CONNECTORS-995: Connectors dealing with non-indexable documents
 such as directories should call noDocument() on those documents if they
 want incremental behavior.

Modified: manifoldcf/trunk/connectors/cmis/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/cmis/CmisRepositoryConnector.java
URL: http://svn.apache.org/viewvc/manifoldcf/trunk/connectors/cmis/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/cmis/CmisRepositoryConnector.java?rev=1611225&r1=1611224&r2=1611225&view=diff
==============================================================================
--- manifoldcf/trunk/connectors/cmis/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/cmis/CmisRepositoryConnector.java (original)
+++ manifoldcf/trunk/connectors/cmis/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/cmis/CmisRepositoryConnector.java Thu Jul 17 00:25:49 2014
@@ -50,6 +50,8 @@ import org.apache.chemistry.opencmis.com
 import org.apache.chemistry.opencmis.commons.exceptions.CmisConnectionException;
 import org.apache.chemistry.opencmis.commons.exceptions.CmisPermissionDeniedException;
 import org.apache.chemistry.opencmis.commons.impl.Constants;
+import org.apache.chemistry.opencmis.commons.exceptions.CmisObjectNotFoundException;
+
 import org.apache.commons.io.input.NullInputStream;
 import org.apache.commons.lang.StringUtils;
 import org.apache.manifoldcf.agents.interfaces.RepositoryDocument;
@@ -1055,9 +1057,8 @@ public class CmisRepositoryConnector ext
 
     getSession();
     Logging.connectors.debug("CMIS: Inside processDocuments");
-    int i = 0;
-
-    while (i < documentIdentifiers.length) {
+        
+    for (int i = 0; i < documentIdentifiers.length; i++) {
       long startTime = System.currentTimeMillis();
       String nodeId = documentIdentifiers[i];
 
@@ -1065,7 +1066,14 @@ public class CmisRepositoryConnector ext
         Logging.connectors.debug("CMIS: Processing document identifier '"
             + nodeId + "'");
 
-      CmisObject cmisObject = session.getObject(nodeId);
+      CmisObject cmisObject;
+      try {
+        cmisObject = session.getObject(nodeId);
+      } catch (CmisObjectNotFoundException e) {
+        // Delete it
+        activities.deleteDocument(nodeId);
+        continue;
+      }
       
       String errorCode = "OK";
       String errorDesc = StringUtils.EMPTY;
@@ -1240,7 +1248,6 @@ public class CmisRepositoryConnector ext
           }
         }
       }
-      i++;
     }
   }
   
@@ -1276,9 +1283,15 @@ public class CmisRepositoryConnector ext
     getSession();
     
     String[] rval = new String[documentIdentifiers.length];
-    int i = 0;
-    while (i < rval.length){
-      CmisObject cmisObject = session.getObject(documentIdentifiers[i]);
+    for (int i = 0; i < rval.length; i++) {
+      CmisObject cmisObject;
+      try {
+        cmisObject = session.getObject(documentIdentifiers[i]);
+      } catch (CmisObjectNotFoundException e) {
+        rval[i] = null;
+        continue;
+      }
+
       if (cmisObject.getBaseType().getId().equals(CMIS_DOCUMENT_BASE_TYPE)) {
         Document document = (Document) cmisObject;
         
@@ -1294,7 +1307,6 @@ public class CmisRepositoryConnector ext
         //a CMIS folder will always be processed
         rval[i] = StringUtils.EMPTY;
       }
-      i++;
     }
     return rval;
   }

Copied: manifoldcf/trunk/connectors/cmis/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/cmis/tests/APISanityDerbyIT.java (from r1610947, manifoldcf/trunk/connectors/cmis/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/cmis/tests/APISanityIT.java)
URL: http://svn.apache.org/viewvc/manifoldcf/trunk/connectors/cmis/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/cmis/tests/APISanityDerbyIT.java?p2=manifoldcf/trunk/connectors/cmis/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/cmis/tests/APISanityDerbyIT.java&p1=manifoldcf/trunk/connectors/cmis/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/cmis/tests/APISanityIT.java&r1=1610947&r2=1611225&rev=1611225&view=diff
==============================================================================
--- manifoldcf/trunk/connectors/cmis/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/cmis/tests/APISanityIT.java (original)
+++ manifoldcf/trunk/connectors/cmis/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/cmis/tests/APISanityDerbyIT.java Thu Jul 17 00:25:49 2014
@@ -51,7 +51,7 @@ import org.junit.Test;
 /**
  * @author Piergiorgio Lucidi
  */
-public class APISanityIT extends BaseITDerby
+public class APISanityDerbyIT extends BaseITDerby
 {
   private static final String REPLACER = "?";
   private static final String CMIS_TEST_QUERY_CHANGE_DOC = "SELECT * FROM cmis:document WHERE cmis:name='"+REPLACER+"'";

Modified: manifoldcf/trunk/connectors/cmis/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/cmis/tests/BaseITDerby.java
URL: http://svn.apache.org/viewvc/manifoldcf/trunk/connectors/cmis/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/cmis/tests/BaseITDerby.java?rev=1611225&r1=1611224&r2=1611225&view=diff
==============================================================================
--- manifoldcf/trunk/connectors/cmis/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/cmis/tests/BaseITDerby.java (original)
+++ manifoldcf/trunk/connectors/cmis/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/cmis/tests/BaseITDerby.java Thu Jul 17 00:25:49 2014
@@ -58,7 +58,7 @@ public class BaseITDerby extends org.apa
   public void setUpCMIS()
     throws Exception
   {
-    String openCmisServerWarPath = "../../lib/chemistry-opencmis-server-inmemory.war";
+    String openCmisServerWarPath = "../../../lib/chemistry-opencmis-server-inmemory.war";
 
     if (System.getProperty("openCmisServerWarPath") != null)
       openCmisServerWarPath = System.getProperty("openCmisServerWarPath");