code: protected final AbstractJcrNode childNode( Name name,
                                                 Type expectedType )
          throws PathNotFoundException, ItemNotFoundException, InvalidItemStateException {
          ChildReference ref = node().getChildReferences(sessionCache()).getChild(name);
          if (ref == null) {
              String msg = JcrI18n.childNotFoundUnderNode.text(readable(name), location(), session.workspaceName());
              throw new PathNotFoundException(msg);
          }
          return session().node(ref.getKey(), expectedType, key());
      }
docs: Get the JCR node for the named child.
  
  @param name the child name; may not be null
  @param expectedType the expected implementation type for the node, or null if it is not known
  @return the JCR node; never null
  @throws PathNotFoundException if there is no child with the supplied name
  @throws ItemNotFoundException if this node or the referenced child no longer exist or cannot be found
  @throws InvalidItemStateException if this node has been removed in this session's transient state