Program: 117446
Project: 117446
Buggy source:
public LinksCollectionEditPanel(String id,final IModel<ODocument> documentModel,OProperty property){
  super(id,new DynamicPropertyValueModel<M>(documentModel,new OPropertyModel(property)));
  OQueryDataProvider<ODocument> provider=oClassIntrospector.prepareDataProviderForProperty(property,documentModel);
  final String propertyName=property.getName();
  List<IColumn<ODocument,String>> columns=new ArrayList<IColumn<ODocument,String>>();
  columns.add(new OEntityColumn(property.getLinkedClass(),DisplayMode.VIEW.asModel()));
  columns.add(new AbstractColumn<ODocument,String>(null){
    @Override public void populateItem(    Item<ICellPopulator<ODocument>> cellItem,    String componentId,    final IModel<ODocument> rowModel){
      cellItem.add(new AjaxFormCommand<Object>(componentId,new ResourceModel("String_Node_Str")){
{
          setBootstrapType(BootstrapType.WARNING);
          setBootstrapSize(BootstrapSize.EXTRA_SMALL);
        }
        @Override public void onClick(        AjaxRequestTarget target){
          ODocument doc=documentModel.getObject();
          Collection<ODocument> values=doc.field(propertyName);
          if (values != null) {
            values.remove(rowModel.getObject());
          }
          doc.save();
          send(LinksCollectionEditPanel.this,Broadcast.BUBBLE,target);
        }
      }
);
    }
  }
);
  OrienteerDataTable<ODocument,String> table=new OrienteerDataTable<ODocument,String>("String_Node_Str",columns,provider,10);
  table.getHeadersToolbar().setVisibilityAllowed(false);
  table.getNoRecordsToolbar().setVisibilityAllowed(false);
  table.addCommand(new SelectODocumentCommand(table,documentModel,new OPropertyModel(property)).setBootstrapSize(BootstrapSize.EXTRA_SMALL).setIcon((String)null));
  add(table);
}

Fixed version (ground truth):
public LinksCollectionEditPanel(String id,final IModel<ODocument> documentModel,OProperty property){
  super(id,new DynamicPropertyValueModel<M>(documentModel,new OPropertyModel(property)));
  ISortableDataProvider<ODocument,String> provider=oClassIntrospector.prepareDataProviderForProperty(property,documentModel);
  final String propertyName=property.getName();
  List<IColumn<ODocument,String>> columns=new ArrayList<IColumn<ODocument,String>>();
  columns.add(new OEntityColumn(property.getLinkedClass(),DisplayMode.VIEW.asModel()));
  columns.add(new AbstractColumn<ODocument,String>(null){
    @Override public void populateItem(    Item<ICellPopulator<ODocument>> cellItem,    String componentId,    final IModel<ODocument> rowModel){
      cellItem.add(new AjaxFormCommand<Object>(componentId,new ResourceModel("String_Node_Str")){
{
          setBootstrapType(BootstrapType.WARNING);
          setBootstrapSize(BootstrapSize.EXTRA_SMALL);
        }
        @Override public void onClick(        AjaxRequestTarget target){
          ODocument doc=documentModel.getObject();
          Collection<ODocument> values=doc.field(propertyName);
          if (values != null) {
            values.remove(rowModel.getObject());
          }
          doc.save();
          send(LinksCollectionEditPanel.this,Broadcast.BUBBLE,target);
        }
      }
);
    }
  }
);
  OrienteerDataTable<ODocument,String> table=new OrienteerDataTable<ODocument,String>("String_Node_Str",columns,provider,10);
  table.getHeadersToolbar().setVisibilityAllowed(false);
  table.getNoRecordsToolbar().setVisibilityAllowed(false);
  table.addCommand(new SelectODocumentCommand(table,documentModel,new OPropertyModel(property)).setBootstrapSize(BootstrapSize.EXTRA_SMALL).setIcon((String)null));
  add(table);
}