Program: 167534
Project: 167534
Buggy source:
public EditModelPanel(ApplicationContext context,Model model){
  this.context=context;
  this.model=model;
  ButtonBar buttonBar=new ButtonBar();
  addComponent(buttonBar);
  addEntityButton=buttonBar.addButton("String_Node_Str",FontAwesome.TABLE);
  addEntityButton.addClickListener(new AddEntityClickListener());
  addAttributeButton=buttonBar.addButton("String_Node_Str",FontAwesome.COLUMNS);
  addAttributeButton.addClickListener(new AddAttributeClickListener());
  editButton=buttonBar.addButton("String_Node_Str",FontAwesome.EDIT);
  editButton.addClickListener(new EditClickListener());
  removeButton=buttonBar.addButton("String_Node_Str",FontAwesome.TRASH_O);
  removeButton.addClickListener(new RemoveClickListener());
  importButton=buttonBar.addButton("String_Node_Str",FontAwesome.DOWNLOAD);
  importButton.addClickListener(new ImportClickListener());
  filterField=buttonBar.addFilter();
  filterField.addTextChangeListener(new TextChangeListener(){
    @Override public void textChange(    TextChangeEvent event){
      filterField.setValue(event.getText());
      setButtonsEnabled(event.getText());
      treeTable.removeAllItems();
      addAll(event.getText(),EditModelPanel.this.model.getModelEntities());
    }
  }
);
  treeTable.setSizeFull();
  treeTable.setCacheRate(100);
  treeTable.setPageLength(100);
  treeTable.setImmediate(true);
  treeTable.setSelectable(true);
  treeTable.setMultiSelect(true);
  treeTable.addGeneratedColumn("String_Node_Str",new ColumnGenerator(){
    Map<Object,TextField> fields=new HashMap<Object,TextField>();
    @Override public Object generateCell(    Table source,    Object itemId,    Object columnId){
      AbstractObject obj=(AbstractObject)itemId;
      if (lastEditItemIds.contains(itemId)) {
        TextField t=new TextField();
        t.setImmediate(true);
        t.setWidth(100,Unit.PERCENTAGE);
        t.focus();
        t.selectAll();
        t.setValue(obj.getName());
        fields.put(itemId,t);
        return t;
      }
 else {
        TextField t=fields.get(itemId);
        if (t != null) {
          obj.setName(t.getValue());
          fields.remove(itemId);
        }
        return getName(filterField.getValue(),obj.getName());
      }
    }
  }
);
  treeTable.setColumnHeader("String_Node_Str","String_Node_Str");
  treeTable.addGeneratedColumn("String_Node_Str",new ColumnGenerator(){
    Map<Object,ComboBox> fields=new HashMap<Object,ComboBox>();
    @Override public Object generateCell(    Table source,    Object itemId,    Object columnId){
      if (itemId instanceof ModelAttribute) {
        ModelAttribute obj=(ModelAttribute)itemId;
        if (lastEditItemIds.contains(itemId)) {
          ComboBox cbox=new ComboBox();
          cbox.setNullSelectionAllowed(false);
          for (          DataType dataType : DataType.values()) {
            cbox.addItem(dataType.name());
          }
          cbox.setValue(obj.getType());
          fields.put(itemId,cbox);
          return cbox;
        }
 else {
          ComboBox t=fields.get(itemId);
          if (t != null) {
            obj.setType((String)t.getValue());
            fields.remove(itemId);
          }
          return obj.getType();
        }
      }
 else {
        return null;
      }
    }
  }
);
  treeTable.setColumnHeader("String_Node_Str","String_Node_Str");
  treeTable.addItemClickListener(new TreeTableItemClickListener());
  treeTable.addValueChangeListener(new TreeTableValueChangeListener());
  addComponent(treeTable);
  setExpandRatio(treeTable,1.0f);
  addAll("String_Node_Str",model.getModelEntities());
  setButtonsEnabled("String_Node_Str");
}

Fixed version (ground truth):
public EditModelPanel(ApplicationContext context,Model model){
  this.context=context;
  this.model=model;
  ButtonBar buttonBar=new ButtonBar();
  addComponent(buttonBar);
  addEntityButton=buttonBar.addButton("String_Node_Str",FontAwesome.TABLE);
  addEntityButton.addClickListener(new AddEntityClickListener());
  addAttributeButton=buttonBar.addButton("String_Node_Str",FontAwesome.COLUMNS);
  addAttributeButton.addClickListener(new AddAttributeClickListener());
  editButton=buttonBar.addButton("String_Node_Str",FontAwesome.EDIT);
  editButton.addClickListener(new EditClickListener());
  removeButton=buttonBar.addButton("String_Node_Str",FontAwesome.TRASH_O);
  removeButton.addClickListener(new RemoveClickListener());
  importButton=buttonBar.addButton("String_Node_Str",FontAwesome.DOWNLOAD);
  importButton.addClickListener(new ImportClickListener());
  filterField=buttonBar.addFilter();
  filterField.addTextChangeListener(new TextChangeListener(){
    @Override public void textChange(    TextChangeEvent event){
      filterField.setValue(event.getText());
      setButtonsEnabled(event.getText());
      treeTable.removeAllItems();
      addAll(event.getText(),EditModelPanel.this.model.getModelEntities());
    }
  }
);
  treeTable.setSizeFull();
  treeTable.setCacheRate(100);
  treeTable.setPageLength(100);
  treeTable.setImmediate(true);
  treeTable.setSelectable(true);
  treeTable.setMultiSelect(true);
  treeTable.addGeneratedColumn("String_Node_Str",new ColumnGenerator(){
    @Override public Object generateCell(    Table source,    Object itemId,    Object columnId){
      final AbstractObject obj=(AbstractObject)itemId;
      if (lastEditItemIds.contains(itemId)) {
        ImmediateUpdateTextField t=new ImmediateUpdateTextField(null){
          protected void save(){
            obj.setName(getValue());
            EditModelPanel.this.context.getConfigurationService().save(obj);
          }
        }
;
        t.setWidth(100,Unit.PERCENTAGE);
        t.setValue(obj.getName());
        t.focus();
        t.selectAll();
        return t;
      }
 else {
        return getName(filterField.getValue(),obj.getName());
      }
    }
  }
);
  treeTable.setColumnHeader("String_Node_Str","String_Node_Str");
  treeTable.addGeneratedColumn("String_Node_Str",new ColumnGenerator(){
    @Override public Object generateCell(    Table source,    Object itemId,    Object columnId){
      if (itemId instanceof ModelAttribute) {
        final ModelAttribute obj=(ModelAttribute)itemId;
        if (lastEditItemIds.contains(itemId)) {
          final ComboBox cbox=new ComboBox();
          cbox.setNullSelectionAllowed(false);
          for (          DataType dataType : DataType.values()) {
            cbox.addItem(dataType.name());
          }
          cbox.setValue(obj.getType());
          cbox.addValueChangeListener(new ValueChangeListener(){
            @Override public void valueChange(            ValueChangeEvent event){
              obj.setType((String)cbox.getValue());
              EditModelPanel.this.context.getConfigurationService().save(obj);
            }
          }
);
          return cbox;
        }
 else {
          return obj.getType();
        }
      }
 else {
        return null;
      }
    }
  }
);
  treeTable.setColumnHeader("String_Node_Str","String_Node_Str");
  treeTable.addItemClickListener(new TreeTableItemClickListener());
  treeTable.addValueChangeListener(new TreeTableValueChangeListener());
  addComponent(treeTable);
  setExpandRatio(treeTable,1.0f);
  addAll("String_Node_Str",model.getModelEntities());
  setButtonsEnabled("String_Node_Str");
}