code: private void doGetCFXTags() throws PageException {
  	Map map = config.getCFXTagPool().getClasses();
  	lucee.runtime.type.Query qry = new QueryImpl(
  		new String[] { "displayname", "sourcename", "readonly", "isvalid", "name", "procedure_class", "procedure_bundleName", "procedure_bundleVersion", "keep_alive" },
  		map.size(), "query");
  	Iterator it = map.keySet().iterator();
  
  	int row = 0;
  	while (it.hasNext()) {
  	    row++;
  	    CFXTagClass tag = (CFXTagClass) map.get(it.next());
  
  	    qry.setAt("displayname", row, tag.getDisplayType());
  	    qry.setAt("sourcename", row, tag.getSourceName());
  	    qry.setAt("readonly", row, Caster.toBoolean(tag.isReadOnly()));
  	    qry.setAt("isvalid", row, Caster.toBoolean(tag.isValid()));
  
  	    if (tag instanceof JavaCFXTagClass) {
  		JavaCFXTagClass jtag = (JavaCFXTagClass) tag;
  		qry.setAt(KeyConstants._name, row, jtag.getName());
  		qry.setAt("procedure_class", row, jtag.getClassDefinition().getClassName());
  		qry.setAt("procedure_bundleName", row, jtag.getClassDefinition().getName());
  		qry.setAt("procedure_bundleVersion", row, jtag.getClassDefinition().getVersionAsString());
  	    }
  
  	}
  	pageContext.setVariable(getString("admin", action, "returnVariable"), qry);
      }
docs: @throws PageException