Program: 60701
Project: 60701
Buggy source:
@Override protected void populateItem(final ListItem<SearchCondWrapper> item){
  final SearchCondWrapper searchCondition=item.getModelObject();
  if (item.getIndex() == 0) {
    item.add(new Label("String_Node_Str","String_Node_Str"));
  }
 else {
    item.add(new Label("String_Node_Str",searchCondition.getOperationType().toString()));
  }
  final CheckBox notOperator=new CheckBox("String_Node_Str",new PropertyModel(searchCondition,"String_Node_Str"));
  notOperator.add(new AjaxFormComponentUpdatingBehavior("String_Node_Str"){
    private static final long serialVersionUID=-1107858522700306810L;
    @Override protected void onUpdate(    final AjaxRequestTarget art){
    }
  }
);
  item.add(notOperator);
  final DropDownChoice<String> filterNameChooser=new DropDownChoice<String>("String_Node_Str",new PropertyModel<String>(searchCondition,"String_Node_Str"),(IModel)null);
  filterNameChooser.setOutputMarkupId(true);
  filterNameChooser.setRequired(true);
  item.add(filterNameChooser);
  filterNameChooser.add(new AjaxFormComponentUpdatingBehavior("String_Node_Str"){
    private static final long serialVersionUID=-1107858522700306810L;
    @Override protected void onUpdate(    final AjaxRequestTarget art){
    }
  }
);
  final DropDownChoice<AttributeCond.Type> type=new DropDownChoice<AttributeCond.Type>("String_Node_Str",new PropertyModel<AttributeCond.Type>(searchCondition,"String_Node_Str"),attributeTypes);
  type.add(new AjaxFormComponentUpdatingBehavior("String_Node_Str"){
    private static final long serialVersionUID=-1107858522700306810L;
    @Override protected void onUpdate(    final AjaxRequestTarget art){
    }
  }
);
  item.add(type);
  final TextField<String> filterValue=new TextField<String>("String_Node_Str",new PropertyModel<String>(searchCondition,"String_Node_Str"));
  item.add(filterValue);
  filterValue.add(new AjaxFormComponentUpdatingBehavior("String_Node_Str"){
    private static final long serialVersionUID=-1107858522700306810L;
    @Override protected void onUpdate(    final AjaxRequestTarget art){
    }
  }
);
  final DropDownChoice<FilterType> filterTypeChooser=new DropDownChoice<FilterType>("String_Node_Str",new PropertyModel<FilterType>(searchCondition,"String_Node_Str"),filterTypes);
  filterTypeChooser.setOutputMarkupId(true);
  filterTypeChooser.add(new AjaxFormComponentUpdatingBehavior("String_Node_Str"){
    private static final long serialVersionUID=-1107858522700306810L;
    @Override protected void onUpdate(    final AjaxRequestTarget target){
      target.add(searchFormContainer);
    }
  }
);
  filterTypeChooser.setRequired(true);
  item.add(filterTypeChooser);
  AjaxButton dropButton=new IndicatingAjaxButton("String_Node_Str",new ResourceModel("String_Node_Str")){
    private static final long serialVersionUID=-4804368561204623354L;
    @Override protected void onSubmit(    final AjaxRequestTarget target,    final Form<?> form){
      getList().remove(Integer.valueOf(getParent().getId()).intValue());
      target.add(searchFormContainer);
    }
    @Override protected void onError(    final AjaxRequestTarget target,    final Form<?> form){
      target.add(searchFormContainer);
    }
  }
;
  dropButton.setDefaultFormProcessing(false);
  if (item.getIndex() == 0) {
    dropButton.setVisible(false);
  }
  item.add(dropButton);
  try {
switch (searchCondition.getFilterType()) {
case ATTRIBUTE:
      final List<String> names=new ArrayList<String>(dnames.getObject());
    if (unames.getObject() != null && !unames.getObject().isEmpty()) {
      names.addAll(unames.getObject());
    }
  filterNameChooser.setChoices(names);
if (!type.isEnabled()) {
  type.setEnabled(true);
  type.setRequired(true);
}
if (!filterValue.isEnabled()) {
filterValue.setEnabled(true);
}
break;
case MEMBERSHIP:
filterNameChooser.setChoices(ronames);
type.setEnabled(false);
type.setRequired(false);
type.setModelObject(null);
filterValue.setEnabled(false);
filterValue.setModelObject("String_Node_Str");
break;
case RESOURCE:
filterNameChooser.setChoices(renames);
type.setEnabled(false);
type.setRequired(false);
type.setModelObject(null);
filterValue.setEnabled(false);
filterValue.setModelObject("String_Node_Str");
break;
default :
filterNameChooser.setChoices(Collections.EMPTY_LIST);
}
}
 catch (NullPointerException npe) {
filterNameChooser.setChoices(Collections.EMPTY_LIST);
}
}

Fixed version (ground truth):
@Override protected void populateItem(final ListItem<SearchCondWrapper> item){
  final SearchCondWrapper searchCondition=item.getModelObject();
  if (item.getIndex() == 0) {
    item.add(new Label("String_Node_Str","String_Node_Str"));
  }
 else {
    item.add(new Label("String_Node_Str",searchCondition.getOperationType().toString()));
  }
  final CheckBox notOperator=new CheckBox("String_Node_Str",new PropertyModel(searchCondition,"String_Node_Str"));
  notOperator.add(new AjaxFormComponentUpdatingBehavior("String_Node_Str"){
    private static final long serialVersionUID=-1107858522700306810L;
    @Override protected void onUpdate(    final AjaxRequestTarget art){
    }
  }
);
  item.add(notOperator);
  final DropDownChoice<String> filterNameChooser=new DropDownChoice<String>("String_Node_Str",new PropertyModel<String>(searchCondition,"String_Node_Str"),(IModel)null);
  filterNameChooser.setOutputMarkupId(true);
  filterNameChooser.setRequired(true);
  item.add(filterNameChooser);
  filterNameChooser.add(new AjaxFormComponentUpdatingBehavior("String_Node_Str"){
    private static final long serialVersionUID=-1107858522700306810L;
    @Override protected void onUpdate(    final AjaxRequestTarget art){
    }
  }
);
  final DropDownChoice<AttributeCond.Type> type=new DropDownChoice<AttributeCond.Type>("String_Node_Str",new PropertyModel<AttributeCond.Type>(searchCondition,"String_Node_Str"),attributeTypes);
  type.add(new AjaxFormComponentUpdatingBehavior("String_Node_Str"){
    private static final long serialVersionUID=-1107858522700306810L;
    @Override protected void onUpdate(    final AjaxRequestTarget art){
    }
  }
);
  item.add(type);
  final TextField<String> filterValue=new TextField<String>("String_Node_Str",new PropertyModel<String>(searchCondition,"String_Node_Str"));
  item.add(filterValue);
  filterValue.add(new AjaxFormComponentUpdatingBehavior("String_Node_Str"){
    private static final long serialVersionUID=-1107858522700306810L;
    @Override protected void onUpdate(    final AjaxRequestTarget art){
    }
  }
);
  final DropDownChoice<FilterType> filterTypeChooser=new DropDownChoice<FilterType>("String_Node_Str",new PropertyModel<FilterType>(searchCondition,"String_Node_Str"),filterTypes);
  filterTypeChooser.setOutputMarkupId(true);
  filterTypeChooser.add(new AjaxFormComponentUpdatingBehavior("String_Node_Str"){
    private static final long serialVersionUID=-1107858522700306810L;
    @Override protected void onUpdate(    final AjaxRequestTarget target){
      target.add(searchFormContainer);
    }
  }
);
  filterTypeChooser.setRequired(true);
  item.add(filterTypeChooser);
  AjaxButton dropButton=new IndicatingAjaxButton("String_Node_Str",new ResourceModel("String_Node_Str")){
    private static final long serialVersionUID=-4804368561204623354L;
    @Override protected void onSubmit(    final AjaxRequestTarget target,    final Form<?> form){
      getList().remove(Integer.valueOf(getParent().getId()).intValue());
      target.add(searchFormContainer);
    }
    @Override protected void onError(    final AjaxRequestTarget target,    final Form<?> form){
      target.add(searchFormContainer);
    }
  }
;
  dropButton.setDefaultFormProcessing(false);
  if (item.getIndex() == 0) {
    dropButton.setVisible(false);
  }
  item.add(dropButton);
  try {
switch (searchCondition.getFilterType()) {
case ATTRIBUTE:
      final List<String> names=new ArrayList<String>(dnames.getObject());
    if (unames.getObject() != null && !unames.getObject().isEmpty()) {
      names.addAll(unames.getObject());
    }
  Collections.sort(names);
filterNameChooser.setChoices(names);
if (!type.isEnabled()) {
type.setEnabled(true);
type.setRequired(true);
}
if (!filterValue.isEnabled()) {
filterValue.setEnabled(true);
}
break;
case MEMBERSHIP:
filterNameChooser.setChoices(ronames);
type.setEnabled(false);
type.setRequired(false);
type.setModelObject(null);
filterValue.setEnabled(false);
filterValue.setModelObject("String_Node_Str");
break;
case RESOURCE:
filterNameChooser.setChoices(renames);
type.setEnabled(false);
type.setRequired(false);
type.setModelObject(null);
filterValue.setEnabled(false);
filterValue.setModelObject("String_Node_Str");
break;
default :
filterNameChooser.setChoices(Collections.EMPTY_LIST);
}
}
 catch (NullPointerException npe) {
filterNameChooser.setChoices(Collections.EMPTY_LIST);
}
}