Program: 2194
Project: 2194
Buggy source:
@Override public void populateItem(final ListItem item){
  final ListView<ConfDataNotifConfig> thisList=this;
  final ConfDataNotifConfig config=(ConfDataNotifConfig)item.getModelObject();
  final DropDownChoice<String> notificationAddress=new DropDownChoice<String>("String_Node_Str",new PropertyModel<String>(config,"String_Node_Str"),notifGroupFormModel.getNotificationConfigAddressList(config.getPersonId()));
  notificationAddress.setRequired(true);
  notificationAddress.setOutputMarkupId(true);
  notificationAddress.add(new AjaxFormComponentUpdatingBehavior("String_Node_Str"){
    @Override protected void onUpdate(    AjaxRequestTarget target){
      String selectedAddress=(String)notificationAddress.getModelObject();
      ConfDataNotifConfig notificationConfig=notifGroupFormModel.getNotificationConfigByAddress(selectedAddress);
      config.setPropertiesFromMap(notificationConfig.toPropertiesMap());
    }
  }
);
  item.add(notificationAddress);
  final DropDownChoice<String> notificationPerson=new DropDownChoice<String>("String_Node_Str",new Model<String>(notifGroupFormModel.getPersonNickName(config.getPersonId())),notifGroupFormModel.getPersonList());
  notificationPerson.setRequired(true);
  notificationPerson.setOutputMarkupId(true);
  notificationPerson.add(new AjaxFormComponentUpdatingBehavior("String_Node_Str"){
    @Override protected void onUpdate(    AjaxRequestTarget target){
      String selectedPerson=notificationPerson.getModelObject();
      List<String> choices=notifGroupFormModel.getNotificationConfigAddressList(selectedPerson);
      if (choices.size() == 1) {
        ConfDataNotifConfig notificationConfig=notifGroupFormModel.getNotificationConfigByAddress(choices.get(0));
        config.setPropertiesFromMap(notificationConfig.toPropertiesMap());
      }
 else       config.setAddress(null);
      notificationAddress.setChoices(choices);
      notificationAddress.modelChanged();
      target.addComponent(notificationAddress);
    }
  }
);
  item.add(notificationPerson);
  AjaxFallbackButton removeNotificationConfigButton=new AjaxFallbackButton("String_Node_Str",form){
    @Override protected void onSubmit(    AjaxRequestTarget target,    Form<?> form){
      notifGroupFormModel.getNotificationConfigList().remove(item.getIndex());
      thisList.modelChanged();
      target.addComponent(notificationConfigListContainer);
    }
  }
;
  if (notifGroupFormModel.getNotificationConfigList().size() <= 1) {
    removeNotificationConfigButton.setVisible(false);
    this.hiddenRemoveButton=removeNotificationConfigButton;
  }
 else {
    removeNotificationConfigButton.setVisible(true);
    if (this.hiddenRemoveButton != null) {
      this.hiddenRemoveButton.setVisible(true);
      this.hiddenRemoveButton=null;
    }
  }
  removeNotificationConfigButton.setOutputMarkupPlaceholderTag(true);
  removeNotificationConfigButton.setDefaultFormProcessing(false);
  item.add(removeNotificationConfigButton);
}

Fixed version (ground truth):
@Override public void populateItem(final ListItem item){
  final ListView<ConfDataNotifConfig> thisList=this;
  final ConfDataNotifConfig config=(ConfDataNotifConfig)item.getModelObject();
  final DropDownChoice<String> notificationAddress=new DropDownChoice<String>("String_Node_Str",new PropertyModel<String>(config,"String_Node_Str"),notifGroupFormModel.getNotificationConfigAddressList(config.getPersonId()));
  notificationAddress.setRequired(true);
  notificationAddress.setOutputMarkupId(true);
  notificationAddress.add(new AjaxFormComponentUpdatingBehavior("String_Node_Str"){
    @Override protected void onUpdate(    AjaxRequestTarget target){
      String selectedAddress=(String)notificationAddress.getModelObject();
      ConfDataNotifConfig notificationConfig=notifGroupFormModel.getNotificationConfigByAddress(selectedAddress);
      config.populatePropertiesFromMap(notificationConfig.toPropertiesMap());
    }
  }
);
  item.add(notificationAddress);
  final DropDownChoice<String> notificationPerson=new DropDownChoice<String>("String_Node_Str",new Model<String>(notifGroupFormModel.getPersonNickName(config.getPersonId())),notifGroupFormModel.getPersonList());
  notificationPerson.setRequired(true);
  notificationPerson.setOutputMarkupId(true);
  notificationPerson.add(new AjaxFormComponentUpdatingBehavior("String_Node_Str"){
    @Override protected void onUpdate(    AjaxRequestTarget target){
      String selectedPerson=notificationPerson.getModelObject();
      List<String> choices=notifGroupFormModel.getNotificationConfigAddressList(selectedPerson);
      if (choices.size() == 1) {
        ConfDataNotifConfig notificationConfig=notifGroupFormModel.getNotificationConfigByAddress(choices.get(0));
        config.populatePropertiesFromMap(notificationConfig.toPropertiesMap());
      }
 else       config.setAddress(null);
      notificationAddress.setChoices(choices);
      notificationAddress.modelChanged();
      target.addComponent(notificationAddress);
    }
  }
);
  item.add(notificationPerson);
  AjaxFallbackButton removeNotificationConfigButton=new AjaxFallbackButton("String_Node_Str",form){
    @Override protected void onSubmit(    AjaxRequestTarget target,    Form<?> form){
      notifGroupFormModel.getNotificationConfigList().remove(item.getIndex());
      thisList.modelChanged();
      target.addComponent(notificationConfigListContainer);
    }
  }
;
  if (notifGroupFormModel.getNotificationConfigList().size() <= 1) {
    removeNotificationConfigButton.setVisible(false);
    this.hiddenRemoveButton=removeNotificationConfigButton;
  }
 else {
    removeNotificationConfigButton.setVisible(true);
    if (this.hiddenRemoveButton != null) {
      this.hiddenRemoveButton.setVisible(true);
      this.hiddenRemoveButton=null;
    }
  }
  removeNotificationConfigButton.setOutputMarkupPlaceholderTag(true);
  removeNotificationConfigButton.setDefaultFormProcessing(false);
  item.add(removeNotificationConfigButton);
}