src/main/java/org/jboss/util/xml/catalog/readers/OASISXMLCatalogReader.java
public void endElement (String namespaceURI,
			  String localName,
			  String qName)
    throws SAXException {

    int entryType = -1;
    Vector entryArgs = new Vector();

    boolean inExtension = inExtensionNamespace();

    if (namespaceURI != null
	&& !inExtension
	&& (namespaceName.equals(namespaceURI)
	    || tr9401NamespaceName.equals(namespaceURI))) {

      String popURI = (String) baseURIStack.pop();
      String baseURI = (String) baseURIStack.peek();

      if (!baseURI.equals(popURI)) {
	entryType = catalog.BASE;
	entryArgs.add(baseURI);

	debug.message(4, "(reset) xml:base", baseURI);

	try {
	  CatalogEntry ce = new CatalogEntry(entryType, entryArgs);
	  catalog.addEntry(ce);
	} catch (CatalogException cex) {
	  if (cex.getExceptionType() == CatalogException.INVALID_ENTRY_TYPE) {
	    debug.message(1, "Invalid catalog entry type", localName);
	  } else if (cex.getExceptionType() == CatalogException.INVALID_ENTRY) {
	    debug.message(1, "Invalid catalog entry (rbase)", localName);
	  }
	}
      }
    }

    if (namespaceURI != null && namespaceName.equals(namespaceURI)
	&& !inExtension) {
      if (localName.equals("catalog") || localName.equals("group")) {
	String popOverride = (String) overrideStack.pop();
	String override = (String) overrideStack.peek();

	if (!override.equals(popOverride)) {
	  entryType = catalog.OVERRIDE;
	  entryArgs.add(override);
	  overrideStack.push(override);

	  debug.message(4, "(reset) override", override);

	  try {
	    CatalogEntry ce = new CatalogEntry(entryType, entryArgs);
	    catalog.addEntry(ce);
	  } catch (CatalogException cex) {
	    if (cex.getExceptionType() == CatalogException.INVALID_ENTRY_TYPE) {
	      debug.message(1, "Invalid catalog entry type", localName);
	    } else if (cex.getExceptionType() == CatalogException.INVALID_ENTRY) {
	      debug.message(1, "Invalid catalog entry (roverride)", localName);
	    }
	  }
	}
      }
    }

    namespaceStack.pop();

    return;
  }
public void endElement (String namespaceURI,
			  String localName,
			  String qName)
    throws SAXException {

    int entryType = -1;
    Vector entryArgs = new Vector();

    boolean inExtension = inExtensionNamespace();

    if (namespaceURI != null
	&& !inExtension
	&& (namespaceName.equals(namespaceURI)
	    || tr9401NamespaceName.equals(namespaceURI))) {

      String popURI = (String) baseURIStack.pop();
      String baseURI = (String) baseURIStack.peek();

      if (!baseURI.equals(popURI)) {
	entryType = catalog.BASE;
	entryArgs.add(baseURI);

	debug.message(4, "(reset) xml:base", baseURI);

	try {
	  CatalogEntry ce = new CatalogEntry(entryType, entryArgs);
	  catalog.addEntry(ce);
	} catch (CatalogException cex) {
	  if (cex.getExceptionType() == CatalogException.INVALID_ENTRY_TYPE) {
	    debug.message(1, "Invalid catalog entry type", localName);
	  } else if (cex.getExceptionType() == CatalogException.INVALID_ENTRY) {
	    debug.message(1, "Invalid catalog entry (rbase)", localName);
	  }
	}
      }
    }

    if (namespaceURI != null && namespaceName.equals(namespaceURI)
	&& !inExtension) {
      if (localName.equals("catalog") || localName.equals("group")) {
	String popOverride = (String) overrideStack.pop();
	String override = (String) overrideStack.peek();

	if (!override.equals(popOverride)) {
	  entryType = catalog.OVERRIDE;
	  entryArgs.add(override);
	  overrideStack.push(override);

	  debug.message(4, "(reset) override", override);

	  try {
	    CatalogEntry ce = new CatalogEntry(entryType, entryArgs);
	    catalog.addEntry(ce);
	  } catch (CatalogException cex) {
	    if (cex.getExceptionType() == CatalogException.INVALID_ENTRY_TYPE) {
	      debug.message(1, "Invalid catalog entry type", localName);
	    } else if (cex.getExceptionType() == CatalogException.INVALID_ENTRY) {
	      debug.message(1, "Invalid catalog entry (roverride)", localName);
	    }
	  }
	}
      }
    }

    namespaceStack.pop();

    return;
  }
The SAX <code>endElement</code> method does nothing.