Program: 188727
Project: 188727
Buggy source:
/** 
 * @param visible
 * @param editmode
 * @param enableGroupSelect
 */
public GroupDataPanel(boolean visible,boolean editmode,boolean enableGroupSelect){
  groupSelect=new GroupSelect(enableGroupSelect);
  initWidget(uiBinder.createAndBindUi(this));
  this.editmode=editmode;
  super.setVisible(visible);
  this.enableGroupSelect=enableGroupSelect;
  groupSelectPanel.setVisible(enableGroupSelect);
  ChangeHandler changeHandler=new ChangeHandler(){
    @Override public void onChange(    ChangeEvent event){
      GroupDataPanel.this.onChange();
    }
  }
;
  KeyUpHandler keyUpHandler=new KeyUpHandler(){
    @Override public void onKeyUp(    KeyUpEvent event){
      onChange();
    }
  }
;
  groupname.addKeyPressHandler(new KeyPressHandler(){
    @Override public void onKeyPress(    KeyPressEvent event){
      char keyCode=event.getCharCode();
      if (!(keyCode >= '0' && keyCode <= '9') && !(keyCode >= 'A' && keyCode <= 'Z') && !(keyCode >= 'a' && keyCode <= 'z')&& keyCode != '.' && keyCode != '_' && (keyCode != (char)KeyCodes.KEY_TAB) && (keyCode != (char)KeyCodes.KEY_BACKSPACE) && (keyCode != (char)KeyCodes.KEY_DELETE) && (keyCode != (char)KeyCodes.KEY_ENTER) && (keyCode != (char)KeyCodes.KEY_HOME) && (keyCode != (char)KeyCodes.KEY_END) && (keyCode != (char)KeyCodes.KEY_LEFT) && (keyCode != (char)KeyCodes.KEY_UP) && (keyCode != (char)KeyCodes.KEY_RIGHT) && (keyCode != (char)KeyCodes.KEY_DOWN)) {
        ((TextBox)event.getSource()).cancelKey();
      }
    }
  }
);
  groupname.addChangeHandler(changeHandler);
  groupname.addKeyUpHandler(keyUpHandler);
  fullname.addChangeHandler(changeHandler);
  fullname.addKeyUpHandler(keyUpHandler);
  permissionsPanel.addValueChangeHandler(new ValueChangeHandler<List<String>>(){
    @Override public void onValueChange(    ValueChangeEvent<List<String>> event){
      onChange();
    }
  }
);
  groupSelect.addValueChangeHandler(new ValueChangeHandler<List<Group>>(){
    @Override public void onValueChange(    ValueChangeEvent<List<Group>> event){
      updatePermissions(event.getValue());
      onChange();
    }
  }
);
}

Fixed version (ground truth):
/** 
 * @param visible
 * @param editmode
 * @param enableGroupSelect
 */
public GroupDataPanel(boolean visible,boolean editmode,boolean enableGroupSelect){
  groupSelect=new GroupSelect(enableGroupSelect);
  initWidget(uiBinder.createAndBindUi(this));
  this.editmode=editmode;
  super.setVisible(visible);
  this.enableGroupSelect=enableGroupSelect;
  groupSelectPanel.setVisible(enableGroupSelect);
  ChangeHandler changeHandler=new ChangeHandler(){
    @Override public void onChange(    ChangeEvent event){
      GroupDataPanel.this.onChange();
    }
  }
;
  KeyUpHandler keyUpHandler=new KeyUpHandler(){
    @Override public void onKeyUp(    KeyUpEvent event){
      onChange();
    }
  }
;
  groupname.addKeyPressHandler(new KeyPressHandler(){
    @Override public void onKeyPress(    KeyPressEvent event){
      char keyCode=event.getCharCode();
      if (!(keyCode >= '0' && keyCode <= '9') && !(keyCode >= 'A' && keyCode <= 'Z') && !(keyCode >= 'a' && keyCode <= 'z')&& keyCode != '.' && keyCode != '_' && (keyCode != (char)KeyCodes.KEY_TAB) && (keyCode != (char)KeyCodes.KEY_DELETE) && (keyCode != (char)KeyCodes.KEY_ENTER) && (keyCode != (char)KeyCodes.KEY_HOME) && (keyCode != (char)KeyCodes.KEY_END) && (keyCode != (char)KeyCodes.KEY_LEFT) && (keyCode != (char)KeyCodes.KEY_UP) && (keyCode != (char)KeyCodes.KEY_RIGHT) && (keyCode != (char)KeyCodes.KEY_DOWN)) {
        ((TextBox)event.getSource()).cancelKey();
      }
    }
  }
);
  groupname.addChangeHandler(changeHandler);
  groupname.addKeyUpHandler(keyUpHandler);
  fullname.addChangeHandler(changeHandler);
  fullname.addKeyUpHandler(keyUpHandler);
  permissionsPanel.addValueChangeHandler(new ValueChangeHandler<List<String>>(){
    @Override public void onValueChange(    ValueChangeEvent<List<String>> event){
      onChange();
    }
  }
);
  groupSelect.addValueChangeHandler(new ValueChangeHandler<List<Group>>(){
    @Override public void onValueChange(    ValueChangeEvent<List<Group>> event){
      updatePermissions(event.getValue());
      onChange();
    }
  }
);
}