Author: reschke Date: Thu May 3 15:48:32 2012 New Revision: 1333515 URL: http://svn.apache.org/viewvc?rev=1333515&view=rev Log: OAK-66: fix getDeclaredSubtypes, update test exclusions Modified: jackrabbit/oak/trunk/oak-it/jcr/pom.xml jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/nodetype/NodeTypeImpl.java Modified: jackrabbit/oak/trunk/oak-it/jcr/pom.xml URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-it/jcr/pom.xml?rev=1333515&r1=1333514&r2=1333515&view=diff ============================================================================== --- jackrabbit/oak/trunk/oak-it/jcr/pom.xml (original) +++ jackrabbit/oak/trunk/oak-it/jcr/pom.xml Thu May 3 15:48:32 2012 @@ -97,7 +97,6 @@ org.apache.jackrabbit.test.api.SessionRe org.apache.jackrabbit.test.api.HasPermissionTest org.apache.jackrabbit.test.api.WorkspaceTest org.apache.jackrabbit.test.api.ShareableNodeTest -org.apache.jackrabbit.test.api.nodetype.NodeTypeTest#testGetDeclaredSubtypes org.apache.jackrabbit.test.api.nodetype.NodeTypeTest#testGetPropertyDefs org.apache.jackrabbit.test.api.nodetype.PredefinedNodeTypeTest org.apache.jackrabbit.test.api.nodetype.CanAddChildNodeCallWithNodeTypeTest Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/nodetype/NodeTypeImpl.java URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/nodetype/NodeTypeImpl.java?rev=1333515&r1=1333514&r2=1333515&view=diff ============================================================================== --- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/nodetype/NodeTypeImpl.java (original) +++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/nodetype/NodeTypeImpl.java Thu May 3 15:48:32 2012 @@ -282,11 +282,16 @@ class NodeTypeImpl implements NodeType { @Override public NodeTypeIterator getDeclaredSubtypes() { try { - Collection types = - new ArrayList(declaredSuperTypeNames.length); - for (String declaredSuperTypeName : declaredSuperTypeNames) { - types.add(manager.getNodeType( - mapper.getJcrName(declaredSuperTypeName))); + Collection types = new ArrayList(); + NodeTypeIterator iterator = manager.getAllNodeTypes(); + while (iterator.hasNext()) { + NodeType type = iterator.nextNodeType(); + if (type.isNodeType(getName()) && !isNodeType(type.getName())) { + List declaredSuperTypeNames = Arrays.asList(type.getDeclaredSupertypeNames()); + if (declaredSuperTypeNames.contains(type)) { + types.add(type); + } + } } return new NodeTypeIteratorAdapter(types); } catch (RepositoryException e) {