code: public boolean removeElement(Node s)
    {
      if (!m_mutable)
        throw new RuntimeException(XSLMessages.createXPATHMessage(XPATHErrorResources.ER_NODESET_NOT_MUTABLE, null)); //"This NodeSet is not mutable!");
  
      if (null == m_map)
        return false;
  
      for (int i = 0; i < m_firstFree; i++)
      {
        Node node = m_map[i];
  
        if ((null != node) && node.equals(s))
        {
          if (i < m_firstFree - 1)
            System.arraycopy(m_map, i + 1, m_map, i, m_firstFree - i - 1);
  
          m_firstFree--;
          m_map[m_firstFree] = null;
  
          return true;
        }
      }
  
      return false;
    }
docs: Removes the first occurrence of the argument from this vector.
  If the object is found in this vector, each component in the vector
  with an index greater or equal to the object's index is shifted
  downward to have an index one smaller than the value it had
  previously.
  
  @param s Node to remove from the list
  
  @return True if the node was successfully removed