public DataModel getDataModel() {
public DataModel getDataModel() throws FatalFacesException {
  public DataModel getDataModel() {    if ($dataModel == null) {      LOG.debug("no datamodel cached; creating new datamodel");      List handlers = new ArrayList();      List beans = new ArrayList(getInstances());      LOG.debug("retrieved instances");      if (getComparator() != null) {        Collections.sort(beans, getComparator());      }      Class clazz = getType();      String beanPackage = clazz.getPackage().getName();      String handlerPackage = beanPackage + handlerSubPackageName;      String className = clazz.getName();      className.replaceAll(beanPackage, handlerPackage);      LOG.debug("name of handler type for instances: " + className);      Class classDefinition = null;      try {        classDefinition = Class.forName(className);      }      catch (ClassNotFoundException cnfExc) {        RobustCurrent.fatalProblem("Class not found for ", cnfExc, LOG);      }      LOG.debug("handler class loaded: " + classDefinition);      assert PersistentBeanCrudHandler.class.isAssignableFrom(classDefinition) :             "loaded handler is not a subtype of PersistentBeanCrudHandler (" +             classDefinition + ")";      LOG.debug("creating handler for each instance");      Iterator iter = beans.iterator();      while (iter.hasNext()) {        PersistentBean bean = (PersistentBean)iter.next();        LOG.debug("    instance is " + bean);        PersistentBeanCrudHandler handler = null;        try {          handler = (PersistentBeanCrudHandler)classDefinition.newInstance();        }        catch (InstantiationException iExc) {          RobustCurrent.fatalProblem("Failed to instantiate a handler for " + className,                                     iExc,                                     LOG);        }        catch (IllegalAccessException iaExc) {          RobustCurrent.fatalProblem("Encounterd an IllegalAccessException while trying to "                                     + "instantiate a handler for " + className,                                     iaExc,                                     LOG);        }        LOG.debug("    handler is " + handler);        handler.setId(bean.getId());        handler.setInstance(bean);        handlers.add(handler);      }      $dataModel = new ListDataModel(handlers);      LOG.debug("datamodel created and cached");    }    else {      LOG.debug("returning cached datamodel");    }    return $dataModel;  }