Program: 117461
Project: 117461
Buggy source:
@Override protected void onInitialize(){
  super.onInitialize();
  Form<OClass> form=new Form<OClass>("String_Node_Str");
  structureTable=new OrienteerStructureTable<OClass,String>("String_Node_Str",getModel(),OClassMetaPanel.OCLASS_ATTRS){
    @Override protected Component getValueComponent(    String id,    final IModel<String> rowModel){
      return new OClassMetaPanel<Object>(id,modeModel,OClassPage.this.getModel(),rowModel);
    }
    @Override public void onAjaxUpdate(    AjaxRequestTarget target){
      OClassPage.this.onConfigure();
      target.add(pTable,iTable,sTable);
    }
  }
;
  structureTable.addCommand(new EditSchemaCommand<OClass>(structureTable,modeModel));
  structureTable.addCommand(new SaveSchemaCommand<OClass>(structureTable,modeModel,getModel()));
  form.add(structureTable);
  List<IColumn<OProperty,String>> pColumns=new ArrayList<IColumn<OProperty,String>>();
  pColumns.add(new CheckBoxColumn<OProperty,String,String>(null,OPropertyFullNameConverter.INSTANCE));
  pColumns.add(new OPropertyDefinitionColumn<OProperty>(new ResourceModel("String_Node_Str"),"String_Node_Str","String_Node_Str"));
  pColumns.add(new OPropertyMetaColumn(OPropertyPrototyper.TYPE));
  pColumns.add(new OPropertyMetaColumn(OPropertyPrototyper.LINKED_TYPE));
  pColumns.add(new OPropertyMetaColumn(OPropertyPrototyper.LINKED_CLASS));
  pColumns.add(new OPropertyMetaColumn(OPropertyPrototyper.NOT_NULL));
  pColumns.add(new OPropertyMetaColumn(OPropertyPrototyper.MANDATORY));
  pColumns.add(new OPropertyMetaColumn(OPropertyPrototyper.READONLY));
  pColumns.add(new OPropertyMetaColumn(CustomAttributes.DISPLAYABLE.getName()));
  pColumns.add(new OPropertyMetaColumn(CustomAttributes.CALCULABLE.getName()));
  pColumns.add(new OPropertyMetaColumn(OPropertyPrototyper.MIN));
  pColumns.add(new OPropertyMetaColumn(OPropertyPrototyper.MAX));
  OPropertiesDataProvider pProvider=new OPropertiesDataProvider(getModel(),showParentPropertiesModel);
  pProvider.setSort("String_Node_Str",SortOrder.ASCENDING);
  pTable=new OrienteerDataTable<OProperty,String>("String_Node_Str",pColumns,pProvider,20);
  pTable.addCommand(new CreateOPropertyCommand(pTable,getModel()));
  pTable.addCommand(new ShowHideParentsCommand<OProperty>(getModel(),pTable,showParentPropertiesModel));
  pTable.addCommand(new DeleteOPropertyCommand(pTable));
  pTable.addCommand(new CreateOIndexFromOPropertiesCommand(pTable,getModel()));
  pTable.setCaptionModel(new ResourceModel("String_Node_Str"));
  form.add(pTable);
  List<IColumn<OIndex<?>,String>> iColumns=new ArrayList<IColumn<OIndex<?>,String>>();
  iColumns.add(new CheckBoxColumn<OIndex<?>,String,String>(null,OIndexNameConverter.INSTANCE));
  iColumns.add(new OIndexDefinitionColumn<OIndex<?>>(new ResourceModel("String_Node_Str"),"String_Node_Str","String_Node_Str"));
  iColumns.add(new OIndexMetaColumn(OIndexPrototyper.TYPE));
  iColumns.add(new OIndexMetaColumn(OIndexPrototyper.DEF_FIELDS));
  iColumns.add(new OIndexMetaColumn(OIndexPrototyper.DEF_COLLATE));
  iColumns.add(new OIndexMetaColumn(OIndexPrototyper.DEF_NULLS_IGNORED));
  iColumns.add(new OIndexMetaColumn(OIndexPrototyper.SIZE));
  iColumns.add(new OIndexMetaColumn(OIndexPrototyper.KEY_SIZE));
  OIndexiesDataProvider iProvider=new OIndexiesDataProvider(getModel(),showParentIndexesModel);
  iProvider.setSort("String_Node_Str",SortOrder.ASCENDING);
  iTable=new OrienteerDataTable<OIndex<?>,String>("String_Node_Str",iColumns,iProvider,20);
  iTable.addCommand(new ShowHideParentsCommand<OIndex<?>>(getModel(),iTable,showParentIndexesModel));
  iTable.addCommand(new DeleteOIndexCommand(iTable));
  iTable.setCaptionModel(new ResourceModel("String_Node_Str"));
  form.add(iTable);
  add(form);
  Form<OClass> sForm=new Form<OClass>("String_Node_Str");
  List<IColumn<ORole,String>> sColumns=new ArrayList<IColumn<ORole,String>>();
  sColumns.add(new OEntityColumn<ORole>("String_Node_Str","String_Node_Str"));
  sColumns.add(new SecurityRightsColumn(OrientPermission.CREATE));
  sColumns.add(new SecurityRightsColumn(OrientPermission.READ));
  sColumns.add(new SecurityRightsColumn(OrientPermission.UPDATE));
  sColumns.add(new SecurityRightsColumn(OrientPermission.DELETE));
  OQueryDataProvider<ORole> sProvider=new OQueryDataProvider<ORole>("String_Node_Str",ORole.class);
  sProvider.setSort("String_Node_Str",SortOrder.ASCENDING);
  sTable=new OrienteerDataTable<ORole,String>("String_Node_Str",sColumns,sProvider,20);
  Command<ORole> saveCommand=new AbstractSaveCommand<ORole>(sTable,null);
  OSecurityHelper.secureComponent(saveCommand,OSecurityHelper.requireOClass("String_Node_Str",OrientPermission.UPDATE));
  sTable.addCommand(saveCommand);
  sTable.setCaptionModel(new ResourceModel("String_Node_Str"));
  sForm.add(sTable);
  add(sForm);
}

Fixed version (ground truth):
@Override protected void onInitialize(){
  super.onInitialize();
  Form<OClass> form=new Form<OClass>("String_Node_Str");
  structureTable=new OrienteerStructureTable<OClass,String>("String_Node_Str",getModel(),OClassMetaPanel.OCLASS_ATTRS){
    @Override protected Component getValueComponent(    String id,    final IModel<String> rowModel){
      return new OClassMetaPanel<Object>(id,modeModel,OClassPage.this.getModel(),rowModel);
    }
    @Override public void onAjaxUpdate(    AjaxRequestTarget target){
      OClassPage.this.onConfigure();
      target.add(pTable,iTable,sTable);
    }
  }
;
  structureTable.addCommand(new EditSchemaCommand<OClass>(structureTable,modeModel));
  structureTable.addCommand(new SaveSchemaCommand<OClass>(structureTable,modeModel,getModel()));
  form.add(structureTable);
  List<IColumn<OProperty,String>> pColumns=new ArrayList<IColumn<OProperty,String>>();
  pColumns.add(new CheckBoxColumn<OProperty,String,String>(null,OPropertyFullNameConverter.INSTANCE));
  pColumns.add(new OPropertyDefinitionColumn<OProperty>(new ResourceModel("String_Node_Str"),"String_Node_Str","String_Node_Str"));
  pColumns.add(new OPropertyMetaColumn(OPropertyPrototyper.TYPE));
  pColumns.add(new OPropertyMetaColumn(OPropertyPrototyper.LINKED_TYPE));
  pColumns.add(new OPropertyMetaColumn(OPropertyPrototyper.LINKED_CLASS));
  pColumns.add(new OPropertyMetaColumn(OPropertyPrototyper.NOT_NULL));
  pColumns.add(new OPropertyMetaColumn(OPropertyPrototyper.MANDATORY));
  pColumns.add(new OPropertyMetaColumn(OPropertyPrototyper.READONLY));
  pColumns.add(new OPropertyMetaColumn(CustomAttributes.DISPLAYABLE));
  pColumns.add(new OPropertyMetaColumn(CustomAttributes.CALCULABLE));
  pColumns.add(new OPropertyMetaColumn(CustomAttributes.ORDER));
  ExtendedOPropertiesDataProvider pProvider=new ExtendedOPropertiesDataProvider(getModel(),showParentPropertiesModel);
  pProvider.setSort(CustomAttributes.ORDER.getName(),SortOrder.ASCENDING);
  pTable=new OrienteerDataTable<OProperty,String>("String_Node_Str",pColumns,pProvider,20);
  pTable.addCommand(new CreateOPropertyCommand(pTable,getModel()));
  pTable.addCommand(new ShowHideParentsCommand<OProperty>(getModel(),pTable,showParentPropertiesModel));
  pTable.addCommand(new DeleteOPropertyCommand(pTable));
  pTable.addCommand(new CreateOIndexFromOPropertiesCommand(pTable,getModel()));
  pTable.setCaptionModel(new ResourceModel("String_Node_Str"));
  form.add(pTable);
  List<IColumn<OIndex<?>,String>> iColumns=new ArrayList<IColumn<OIndex<?>,String>>();
  iColumns.add(new CheckBoxColumn<OIndex<?>,String,String>(null,OIndexNameConverter.INSTANCE));
  iColumns.add(new OIndexDefinitionColumn<OIndex<?>>(new ResourceModel("String_Node_Str"),"String_Node_Str","String_Node_Str"));
  iColumns.add(new OIndexMetaColumn(OIndexPrototyper.TYPE));
  iColumns.add(new OIndexMetaColumn(OIndexPrototyper.DEF_FIELDS));
  iColumns.add(new OIndexMetaColumn(OIndexPrototyper.DEF_COLLATE));
  iColumns.add(new OIndexMetaColumn(OIndexPrototyper.DEF_NULLS_IGNORED));
  iColumns.add(new OIndexMetaColumn(OIndexPrototyper.SIZE));
  iColumns.add(new OIndexMetaColumn(OIndexPrototyper.KEY_SIZE));
  OIndexiesDataProvider iProvider=new OIndexiesDataProvider(getModel(),showParentIndexesModel);
  iProvider.setSort("String_Node_Str",SortOrder.ASCENDING);
  iTable=new OrienteerDataTable<OIndex<?>,String>("String_Node_Str",iColumns,iProvider,20);
  iTable.addCommand(new ShowHideParentsCommand<OIndex<?>>(getModel(),iTable,showParentIndexesModel));
  iTable.addCommand(new DeleteOIndexCommand(iTable));
  iTable.setCaptionModel(new ResourceModel("String_Node_Str"));
  form.add(iTable);
  add(form);
  Form<OClass> sForm=new Form<OClass>("String_Node_Str");
  List<IColumn<ORole,String>> sColumns=new ArrayList<IColumn<ORole,String>>();
  sColumns.add(new OEntityColumn<ORole>("String_Node_Str","String_Node_Str"));
  sColumns.add(new SecurityRightsColumn(OrientPermission.CREATE));
  sColumns.add(new SecurityRightsColumn(OrientPermission.READ));
  sColumns.add(new SecurityRightsColumn(OrientPermission.UPDATE));
  sColumns.add(new SecurityRightsColumn(OrientPermission.DELETE));
  OQueryDataProvider<ORole> sProvider=new OQueryDataProvider<ORole>("String_Node_Str",ORole.class);
  sProvider.setSort("String_Node_Str",SortOrder.ASCENDING);
  sTable=new OrienteerDataTable<ORole,String>("String_Node_Str",sColumns,sProvider,20);
  Command<ORole> saveCommand=new AbstractSaveCommand<ORole>(sTable,null);
  OSecurityHelper.secureComponent(saveCommand,OSecurityHelper.requireOClass("String_Node_Str",OrientPermission.UPDATE));
  sTable.addCommand(saveCommand);
  sTable.setCaptionModel(new ResourceModel("String_Node_Str"));
  sForm.add(sTable);
  add(sForm);
}