Program: 117441
Project: 117441
Buggy source:
@Override public void initialize(){
  super.initialize();
  tabModel=Model.of();
  tabsPanel=new TabsPanel("String_Node_Str",tabModel,new LoadableDetachableModel<List<String>>(){
    @Override protected List<String> load(){
      return oClassIntrospector.listTabs(getDocument().getSchemaClass());
    }
  }
){
    private static final long serialVersionUID=1L;
    @Override public void onTabClick(    AjaxRequestTarget target){
      target.add(propertiesStructureTable);
      target.add(extendedPropertiesContainer);
    }
  }
;
  add(tabsPanel);
  Form<ODocument> form=new Form<ODocument>("String_Node_Str",getModel());
  IModel<List<? extends OProperty>> propertiesModel=new LoadableDetachableModel<List<? extends OProperty>>(){
    @Override protected List<? extends OProperty> load(){
      return oClassIntrospector.listProperties(getDocument().getSchemaClass(),tabModel.getObject(),false);
    }
  }
;
  propertiesStructureTable=new OrienteerStructureTable<ODocument,OProperty>("String_Node_Str",getModel(),propertiesModel){
    @Override protected Component getValueComponent(    String id,    IModel<OProperty> rowModel){
      return new ODocumentMetaPanel<Object>(id,displayMode,getDocumentModel(),rowModel);
    }
  }
;
  form.add(propertiesStructureTable);
  add(form);
  propertiesModel=new LoadableDetachableModel<List<? extends OProperty>>(){
    @Override protected List<? extends OProperty> load(){
      return oClassIntrospector.listProperties(getDocument().getSchemaClass(),tabModel.getObject(),true);
    }
  }
;
  extendedPropertiesContainer=new WebMarkupContainer("String_Node_Str");
  extendedPropertiesContainer.setOutputMarkupPlaceholderTag(true);
  ListView<OProperty> extendedPropertiesListView=new ListView<OProperty>("String_Node_Str",propertiesModel){
    @Override protected void populateItem(    ListItem<OProperty> item){
      Form<?> form=new Form<Object>("String_Node_Str");
      OProperty oProperty=item.getModelObject();
      String component=CustomAttributes.VISUALIZATION_TYPE.getValue(oProperty);
      form.add(OrienteerWebApplication.get().getUIVisualizersRegistry().getComponentFactory(oProperty.getType(),component).createComponent("String_Node_Str",DisplayMode.VIEW,getDocumentModel(),item.getModel(),new DynamicPropertyValueModel<Object>(getDocumentModel(),item.getModel())));
      item.add(form);
    }
  }
;
  extendedPropertiesContainer.add(extendedPropertiesListView);
  add(extendedPropertiesContainer);
}

Fixed version (ground truth):
@Override public void initialize(){
  super.initialize();
  tabModel=Model.of();
  tabsPanel=new TabsPanel<String>("String_Node_Str",tabModel,new LoadableDetachableModel<List<String>>(){
    @Override protected List<String> load(){
      return oClassIntrospector.listTabs(getDocument().getSchemaClass());
    }
  }
){
    private static final long serialVersionUID=1L;
    @Override public void onTabClick(    AjaxRequestTarget target){
      target.add(propertiesStructureTable);
      target.add(extendedPropertiesContainer);
    }
  }
;
  add(tabsPanel);
  Form<ODocument> form=new Form<ODocument>("String_Node_Str",getModel());
  IModel<List<? extends OProperty>> propertiesModel=new LoadableDetachableModel<List<? extends OProperty>>(){
    @Override protected List<? extends OProperty> load(){
      return oClassIntrospector.listProperties(getDocument().getSchemaClass(),tabModel.getObject(),false);
    }
  }
;
  propertiesStructureTable=new OrienteerStructureTable<ODocument,OProperty>("String_Node_Str",getModel(),propertiesModel){
    @Override protected Component getValueComponent(    String id,    IModel<OProperty> rowModel){
      return new ODocumentMetaPanel<Object>(id,displayMode,getDocumentModel(),rowModel);
    }
  }
;
  form.add(propertiesStructureTable);
  add(form);
  propertiesModel=new LoadableDetachableModel<List<? extends OProperty>>(){
    @Override protected List<? extends OProperty> load(){
      return oClassIntrospector.listProperties(getDocument().getSchemaClass(),tabModel.getObject(),true);
    }
  }
;
  extendedPropertiesContainer=new WebMarkupContainer("String_Node_Str");
  extendedPropertiesContainer.setOutputMarkupPlaceholderTag(true);
  ListView<OProperty> extendedPropertiesListView=new ListView<OProperty>("String_Node_Str",propertiesModel){
    @Override protected void populateItem(    ListItem<OProperty> item){
      Form<?> form=new Form<Object>("String_Node_Str");
      OProperty oProperty=item.getModelObject();
      String component=CustomAttributes.VISUALIZATION_TYPE.getValue(oProperty);
      form.add(OrienteerWebApplication.get().getUIVisualizersRegistry().getComponentFactory(oProperty.getType(),component).createComponent("String_Node_Str",DisplayMode.VIEW,getDocumentModel(),item.getModel(),new DynamicPropertyValueModel<Object>(getDocumentModel(),item.getModel())));
      item.add(form);
    }
  }
;
  extendedPropertiesContainer.add(extendedPropertiesListView);
  add(extendedPropertiesContainer);
}