You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@chemistry.apache.org by je...@apache.org on 2010/03/01 18:26:08 UTC

svn commit: r917601 - /incubator/chemistry/trunk/opencmis/opencmis-server/opencmis-server-inmemory/src/main/java/org/apache/opencmis/inmemory/server/InMemoryRepositoryServiceImpl.java

Author: jens
Date: Mon Mar  1 17:26:07 2010
New Revision: 917601

URL: http://svn.apache.org/viewvc?rev=917601&view=rev
Log:
Fix bug in getTypechildren: return only base types if type id param is null

Modified:
    incubator/chemistry/trunk/opencmis/opencmis-server/opencmis-server-inmemory/src/main/java/org/apache/opencmis/inmemory/server/InMemoryRepositoryServiceImpl.java

Modified: incubator/chemistry/trunk/opencmis/opencmis-server/opencmis-server-inmemory/src/main/java/org/apache/opencmis/inmemory/server/InMemoryRepositoryServiceImpl.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-server/opencmis-server-inmemory/src/main/java/org/apache/opencmis/inmemory/server/InMemoryRepositoryServiceImpl.java?rev=917601&r1=917600&r2=917601&view=diff
==============================================================================
--- incubator/chemistry/trunk/opencmis/opencmis-server/opencmis-server-inmemory/src/main/java/org/apache/opencmis/inmemory/server/InMemoryRepositoryServiceImpl.java (original)
+++ incubator/chemistry/trunk/opencmis/opencmis-server/opencmis-server-inmemory/src/main/java/org/apache/opencmis/inmemory/server/InMemoryRepositoryServiceImpl.java Mon Mar  1 17:26:07 2010
@@ -81,21 +81,27 @@
     int max = maxItems == null ? -1 : maxItems.intValue();
       
     TypeDefinitionListImpl result = new TypeDefinitionListImpl();
-    List<TypeDefinitionContainer> children = getTypeDescendants(context, repositoryId, typeId, 
+    List<TypeDefinitionContainer> children;
+    if (typeId == null) {
+      // spec says that base types must be returned in this case
+      children = fStoreManager.getRootTypes(repositoryId);
+    } else {    
+      children = getTypeDescendants(context, repositoryId, typeId, 
         BigInteger.valueOf(1), includePropertyDefinitions, null);
+    }
     result.setNumItems(BigInteger.valueOf(children.size()));
     result.setHasMoreItems(children.size() > max - skip);
     List<TypeDefinition> childrenTypes = new ArrayList<TypeDefinition>();
     ListIterator<TypeDefinitionContainer> it = children.listIterator(skip);
     if (max<0)
       max = children.size();
-    for (int i=0; i<max && it.hasNext(); i++)
+    for (int i=skip; i<max+skip && it.hasNext(); i++)
       childrenTypes.add(it.next().getTypeDefinition());
 
     result.setList(childrenTypes);      
     return result;
   }
-
+  
   public TypeDefinition getTypeDefinition(CallContext context, String repositoryId,
       String typeId, ExtensionsData extension) {