code: private void doGetJavaCFXTags() throws PageException {
  	Map map = config.getCFXTagPool().getClasses();
  	lucee.runtime.type.Query qry = new QueryImpl(new Collection.Key[] { KeyConstants._displayname, KeyConstants._sourcename, KeyConstants._readonly, KeyConstants._name,
  		KeyConstants._class, KeyConstants._bundleName, KeyConstants._bundleVersion, KeyConstants._isvalid }, 0, "query");
  	Iterator it = map.keySet().iterator();
  
  	int row = 0;
  	while (it.hasNext()) {
  	    CFXTagClass tag = (CFXTagClass) map.get(it.next());
  	    if (tag instanceof JavaCFXTagClass) {
  		row++;
  		qry.addRow(1);
  		JavaCFXTagClass jtag = (JavaCFXTagClass) tag;
  		qry.setAt(KeyConstants._displayname, row, tag.getDisplayType());
  		qry.setAt(KeyConstants._sourcename, row, tag.getSourceName());
  		qry.setAt(KeyConstants._readonly, row, Caster.toBoolean(tag.isReadOnly()));
  		qry.setAt(KeyConstants._isvalid, row, Caster.toBoolean(tag.isValid()));
  		qry.setAt(KeyConstants._name, row, jtag.getName());
  		qry.setAt(KeyConstants._class, row, jtag.getClassDefinition().getClassName());
  		qry.setAt(KeyConstants._bundleName, row, jtag.getClassDefinition().getName());
  		qry.setAt(KeyConstants._bundleVersion, row, jtag.getClassDefinition().getVersionAsString());
  	    }
  
  	}
  	pageContext.setVariable(getString("admin", action, "returnVariable"), qry);
      }
docs: @throws PageException