Program: 117366
Project: 117366
Buggy source:
public EmbeddedMapEditPanel(String id,final IModel<ODocument> documentModel,final IModel<OProperty> propertyModel){
  super(id,new DynamicPropertyValueModel<Map<String,V>>(documentModel,propertyModel));
  setOutputMarkupId(true);
  final DefaultVisualizer visualizer=DefaultVisualizer.INSTANCE;
  final OType linkedType=propertyModel.getObject().getLinkedType();
  final OType oType=linkedType != null ? linkedType : OType.ANY;
  listView=new ListView<Pair<V>>("String_Node_Str",new PropertyModel<List<Pair<V>>>(this,"String_Node_Str")){
    @Override protected void populateItem(    final ListItem<Pair<V>> item){
      item.add(getKeyEditComponent(item));
      item.add(visualizer.createComponent("String_Node_Str",DisplayMode.EDIT,documentModel,propertyModel,oType,new PropertyModel<V>(item.getModel(),"String_Node_Str")));
      item.add(new AjaxFormCommand<Object>("String_Node_Str","String_Node_Str"){
        @Override public void onClick(        AjaxRequestTarget target){
          getData().remove(item.getIndex());
          target.add(EmbeddedMapEditPanel.this);
          listView.removeAll();
        }
      }
.setAutoNotify(false).setBootstrapSize(BootstrapSize.EXTRA_SMALL).setBootstrapType(BootstrapType.DANGER).setIcon((String)null));
    }
    @Override protected ListItem<Pair<V>> newItem(    int index,    IModel<Pair<V>> itemModel){
      return new ListItem<Pair<V>>(index,itemModel){
        @Override public IMarkupFragment getMarkup(        Component child){
          if (child == null || !child.getId().equals("String_Node_Str"))           return super.getMarkup(child);
          IMarkupFragment ret=markupProvider.provideMarkup(child);
          return ret != null ? ret : super.getMarkup(child);
        }
      }
;
    }
  }
;
  listView.setReuseItems(true);
  add(listView);
  add(new AjaxFormCommand("String_Node_Str","String_Node_Str"){
    @Override public void onClick(    AjaxRequestTarget target){
      getData().add(new Pair<V>());
      target.add(EmbeddedMapEditPanel.this);
      listView.removeAll();
    }
  }
.setAutoNotify(false).setBootstrapSize(BootstrapSize.EXTRA_SMALL).setBootstrapType(BootstrapType.PRIMARY).setIcon((String)null));
}

Fixed version (ground truth):
public EmbeddedMapEditPanel(String id,final IModel<ODocument> documentModel,final IModel<OProperty> propertyModel){
  super(id,new DynamicPropertyValueModel<Map<String,V>>(documentModel,propertyModel));
  setOutputMarkupId(true);
  final DefaultVisualizer visualizer=DefaultVisualizer.INSTANCE;
  final OType linkedType=propertyModel.getObject().getLinkedType();
  final OType oType=linkedType != null ? linkedType : OType.ANY;
  listView=new ListView<Pair<V>>("String_Node_Str",new PropertyModel<List<Pair<V>>>(this,"String_Node_Str")){
    @Override protected void populateItem(    final ListItem<Pair<V>> item){
      item.add(getKeyEditComponent(item));
      item.add(visualizer.createComponent("String_Node_Str",DisplayMode.EDIT,documentModel,propertyModel,oType,new PropertyModel<V>(item.getModel(),"String_Node_Str")));
      item.add(new AjaxFormCommand<Object>("String_Node_Str","String_Node_Str"){
        @Override public void onClick(        AjaxRequestTarget target){
          getData().remove(item.getIndex());
          target.add(EmbeddedMapEditPanel.this);
          listView.removeAll();
        }
      }
.setDefaultFormProcessing(false).setAutoNotify(false).setBootstrapSize(BootstrapSize.EXTRA_SMALL).setBootstrapType(BootstrapType.DANGER).setIcon((String)null));
    }
    @Override protected ListItem<Pair<V>> newItem(    int index,    IModel<Pair<V>> itemModel){
      return new ListItem<Pair<V>>(index,itemModel){
        @Override public IMarkupFragment getMarkup(        Component child){
          if (child == null || !child.getId().equals("String_Node_Str"))           return super.getMarkup(child);
          IMarkupFragment ret=markupProvider.provideMarkup(child);
          return ret != null ? ret : super.getMarkup(child);
        }
      }
;
    }
  }
;
  listView.setReuseItems(true);
  add(listView);
  add(new AjaxFormCommand("String_Node_Str","String_Node_Str"){
    @Override public void onClick(    AjaxRequestTarget target){
      getData().add(new Pair<V>());
      target.add(EmbeddedMapEditPanel.this);
      listView.removeAll();
    }
  }
.setDefaultFormProcessing(false).setAutoNotify(false).setBootstrapSize(BootstrapSize.EXTRA_SMALL).setBootstrapType(BootstrapType.PRIMARY).setIcon((String)null));
}