Program: 76630
Project: 76630
Buggy source:
protected void save() throws SemanticException {
  if (itemName.getText() != null && itemName.getText().trim().length() > 0) {
    if (bindingColumn == null) {
      if (itemExpression.getText() == null || itemExpression.getText().length() == 0) {
        return;
      }
      newBinding.setName(itemName.getText());
      newBinding.setDisplayName(itemDisplayName.getText());
      for (int i=0; i < DATA_TYPE_CHOICES.length; i++) {
        if (DATA_TYPE_CHOICES[i].getDisplayName().endsWith(itemType.getText())) {
          newBinding.setDataType(DATA_TYPE_CHOICES[i].getName());
          break;
        }
      }
      newBinding.setExpression(itemExpression.getText());
      if (itemAggregateOn.isVisible() && !(itemAggregateOn.getText().equals(ALL) || itemAggregateOn.getText().equals(NONE))) {
        newBinding.setAggregateOn(itemAggregateOn.getText());
      }
 else       newBinding.setAggregateOn(null);
      bindingColumn=DEUtil.addColumn(getBindingObject(),newBinding,isForceBinding());
    }
 else {
      if (itemExpression.getText() != null && itemExpression.getText().length() == 0) {
        DataItemHandle itemHandle=(DataItemHandle)getBindingObject();
        String resultSetName=itemHandle.getResultSetColumn();
        if (bindingColumn.getName().equals(resultSetName)) {
          itemHandle.setResultSetColumn(null);
        }
        itemHandle.getColumnBindings().removeItem(bindingColumn.getStructure());
        bindingColumn=null;
        return;
      }
      if (!(bindingColumn.getName() != null && bindingColumn.getName().equals(itemName.getText().trim())))       bindingColumn.setName(itemName.getText());
      for (int i=0; i < DATA_TYPE_CHOICES.length; i++) {
        if (DATA_TYPE_CHOICES[i].getDisplayName().endsWith(itemType.getText())) {
          bindingColumn.setDataType(DATA_TYPE_CHOICES[i].getName());
          break;
        }
      }
      bindingColumn.setExpression(itemExpression.getText());
      if (itemAggregateOn.isVisible() && !(itemAggregateOn.getText().equals(ALL) || itemAggregateOn.getText().equals(NONE))) {
        bindingColumn.setAggregateOn(itemAggregateOn.getText());
      }
 else       bindingColumn.setAggregateOn(null);
    }
  }
}

Fixed version (ground truth):
protected void save() throws SemanticException {
  if (itemName.getText() != null && itemName.getText().trim().length() > 0) {
    if (bindingColumn == null) {
      if (itemExpression.getText() == null || itemExpression.getText().length() == 0) {
        return;
      }
      newBinding.setName(itemName.getText());
      newBinding.setDisplayName(itemDisplayName.getText());
      for (int i=0; i < DATA_TYPE_CHOICES.length; i++) {
        if (DATA_TYPE_CHOICES[i].getDisplayName().endsWith(itemType.getText())) {
          newBinding.setDataType(DATA_TYPE_CHOICES[i].getName());
          break;
        }
      }
      newBinding.setExpression(itemExpression.getText());
      if (itemAggregateOn.isVisible() && !(itemAggregateOn.getText().equals(ALL) || itemAggregateOn.getText().equals(NONE))) {
        newBinding.setAggregateOn(itemAggregateOn.getText());
      }
 else       newBinding.setAggregateOn(null);
      bindingColumn=DEUtil.addColumn(getBindingObject(),newBinding,isForceBinding());
    }
 else {
      if (itemExpression.getText() != null && itemExpression.getText().length() == 0) {
        DataItemHandle itemHandle=(DataItemHandle)getBindingObject();
        String resultSetName=itemHandle.getResultSetColumn();
        if (bindingColumn.getName().equals(resultSetName)) {
          itemHandle.setResultSetColumn(null);
        }
        itemHandle.getColumnBindings().removeItem(bindingColumn.getStructure());
        bindingColumn=null;
        return;
      }
      if (!(bindingColumn.getName() != null && bindingColumn.getName().equals(itemName.getText().trim())))       bindingColumn.setName(itemName.getText());
      if (!(bindingColumn.getDisplayName() != null && bindingColumn.getDisplayName().equals(itemDisplayName.getText().trim())))       bindingColumn.setDisplayName(itemDisplayName.getText());
      for (int i=0; i < DATA_TYPE_CHOICES.length; i++) {
        if (DATA_TYPE_CHOICES[i].getDisplayName().endsWith(itemType.getText())) {
          bindingColumn.setDataType(DATA_TYPE_CHOICES[i].getName());
          break;
        }
      }
      bindingColumn.setExpression(itemExpression.getText());
      if (itemAggregateOn.isVisible() && !(itemAggregateOn.getText().equals(ALL) || itemAggregateOn.getText().equals(NONE))) {
        bindingColumn.setAggregateOn(itemAggregateOn.getText());
      }
 else       bindingColumn.setAggregateOn(null);
    }
  }
}