code: public void endElement(String uri, String lname, String name) {
          // System.err.println("End: " + name);
      	name = name.toLowerCase();
          if (ElementTags.PARAGRAPH.equals(name)) {
              try {
                  document.add((Element) stack.pop());
                  return;
              } catch (DocumentException e) {
                  throw new ExceptionConverter(e);
              }
          }
          if (HtmlTagMap.isHead(name)) {
              // we do nothing
              return;
          }
          if (HtmlTagMap.isTitle(name)) {
              if (currentChunk != null) {
                  bodyAttributes.put(ElementTags.TITLE, currentChunk.getContent());
              }
              return;
          }
          if (HtmlTagMap.isMeta(name)) {
              // we do nothing
              return;
          }
          if (HtmlTagMap.isLink(name)) {
              // we do nothing
              return;
          }
          if (HtmlTagMap.isBody(name)) {
              // we do nothing
              return;
          }
          if (myTags.containsKey(name)) {
              XmlPeer peer = (XmlPeer) myTags.get(name);
              if (ElementTags.TABLE.equals(peer.getTag())) {
                  tableBorder = false;
              }
              super.handleEndingTags(peer.getTag());
              return;
          }
          // super.handleEndingTags is replaced with handleEndingTags
          // suggestion by Ken Auer
          handleEndingTags(name);
      }
docs: This method gets called when an end tag is encountered.
  
  @param uri
  the Uniform Resource Identifier
  @param lname
  the local name (without prefix), or the empty string if
  Namespace processing is not being performed.
  @param name
  the name of the tag that ends