jackrabbit-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "David Caruana" <david.caru...@alfresco.org>
Subject Bug in TCK NodeTypeUtil.java?
Date Tue, 20 Sep 2005 16:28:01 GMT
The method getIllegalChildNodeType() can return a legal type.  This
happens if the first node type to come back from getAllNodeTypes() is in
the fact the type that is not wanted.  I must have been unlucky here.

A sub-type check is made, but not a type equality check.  I adjusted the
function by adding the following two lines:

   public static String getIllegalChildNodeType(NodeTypeManager manager,
                                                 String legalType)
            throws RepositoryException {

        NodeTypeIterator types = manager.getAllNodeTypes();
        while (types.hasNext()) {
            NodeType type = types.nextNodeType();
-->            if (!type.getName().equals(legalType)) {
                   NodeType superTypes[] = type.getSupertypes();
                   boolean isSubType = false;
                   for (int i = 0; i < superTypes.length; i++) {
                      String name = superTypes[i].getName();
                      if (name.equals(legalType)) {
                          isSubType = true;
                 if (!isSubType) {
                    return type.getName();
-->          }
        return null;

I don't believe NodeType.getSupertypes() should return the supertypes
and itself in which case I think the current function would be fine.

David Caruana

  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message