Author: fmui
Date: Fri Aug 22 11:47:19 2014
New Revision: 1619757

URL: http://svn.apache.org/r1619757
Log:
Web Service client: added workaround for servers that don't allow 
getRepositoryInfo() for repositories returned by getRepositories()

Modified:
    
chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/RepositoryServiceImpl.java

Modified: 
chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/RepositoryServiceImpl.java
URL: 
http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/RepositoryServiceImpl.java?rev=1619757&r1=1619756&r2=1619757&view=diff
==============================================================================
--- 
chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/RepositoryServiceImpl.java
 (original)
+++ 
chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/RepositoryServiceImpl.java
 Fri Aug 22 11:47:19 2014
@@ -35,8 +35,10 @@ import org.apache.chemistry.opencmis.com
 import 
org.apache.chemistry.opencmis.commons.definitions.TypeDefinitionContainer;
 import org.apache.chemistry.opencmis.commons.definitions.TypeDefinitionList;
 import org.apache.chemistry.opencmis.commons.enums.CmisVersion;
+import org.apache.chemistry.opencmis.commons.exceptions.CmisBaseException;
 import 
org.apache.chemistry.opencmis.commons.exceptions.CmisNotSupportedException;
 import org.apache.chemistry.opencmis.commons.exceptions.CmisRuntimeException;
+import 
org.apache.chemistry.opencmis.commons.impl.dataobjects.RepositoryInfoImpl;
 import org.apache.chemistry.opencmis.commons.impl.jaxb.CmisException;
 import org.apache.chemistry.opencmis.commons.impl.jaxb.CmisExtensionType;
 import org.apache.chemistry.opencmis.commons.impl.jaxb.CmisRepositoryEntryType;
@@ -89,8 +91,17 @@ public class RepositoryServiceImpl exten
 
                 // iterate through the list and fetch repository infos
                 for (CmisRepositoryEntryType entry : entries) {
-                    CmisRepositoryInfoType info = 
port.getRepositoryInfo(entry.getRepositoryId(), null);
-                    infos.add(convert(info));
+                    try {
+                        CmisRepositoryInfoType info = 
port.getRepositoryInfo(entry.getRepositoryId(), null);
+                        infos.add(convert(info));
+                    } catch (CmisBaseException e) {
+                        // getRepositoryInfo() failed for whatever reason
+                        // -> provide at least a repository info stub
+                        RepositoryInfoImpl info = new RepositoryInfoImpl();
+                        info.setId(entry.getRepositoryId());
+                        info.setName(entry.getRepositoryName());
+                        infos.add(info);
+                    }
                 }
             } catch (CmisException e) {
                 throw convertException(e);


Reply via email to