Program: 66196
Project: 66196
Buggy source:
public boolean differs(ComputedColumnHandle binding){
  if (isAggregate()) {
    if (!strEquals(binding.getName(),txtName.getText()))     return true;
    if (!strEquals(binding.getDisplayName(),txtDisplayName.getText()))     return true;
    if (!strEquals(binding.getDisplayNameID(),txtDisplayNameID.getText()))     return true;
    if (!strEquals(binding.getDataType(),getDataType()))     return true;
    try {
      if (!strEquals(DataAdapterUtil.adaptModelAggregationType(binding.getAggregateFunction()),getFunctionByDisplayName(cmbFunction.getText()).getName()))       return true;
    }
 catch (    AdapterException e) {
    }
    if (!exprEquals((Expression)binding.getExpressionProperty(ComputedColumn.FILTER_MEMBER).getValue(),ExpressionButtonUtil.getExpression(txtFilter)))     return true;
    if (!isTimePeriod() && !strEquals(cmbAggOn.getText(),DEUtil.getAggregateOn(binding)))     return true;
    IAggrFunction function=getFunctionByDisplayName(cmbFunction.getText());
    if (function != null) {
      IParameterDefn[] params=function.getParameterDefn();
      for (      final IParameterDefn param : params) {
        if (paramsMap.containsKey(param.getName())) {
          Expression paramValue=ExpressionButtonUtil.getExpression(paramsMap.get(param.getName()));
          for (Iterator iterator=binding.argumentsIterator(); iterator.hasNext(); ) {
            AggregationArgumentHandle handle=(AggregationArgumentHandle)iterator.next();
            if (param.getName().equals(handle.getName()) && !exprEquals((Expression)handle.getExpressionProperty(AggregationArgument.VALUE_MEMBER).getValue(),paramValue)) {
              return true;
            }
          }
          if (param.isDataField() && binding.getExpression() != null && !exprEquals((Expression)binding.getExpressionProperty(ComputedColumn.EXPRESSION_MEMBER).getValue(),paramValue)) {
            return true;
          }
        }
      }
    }
  }
 else {
    if (!strEquals(txtName.getText(),binding.getName()))     return true;
    if (!strEquals(txtDisplayName.getText(),binding.getDisplayName()))     return true;
    if (!strEquals(txtDisplayNameID.getText(),binding.getDisplayNameID()))     return true;
    if (!strEquals(getDataType(),binding.getDataType()))     return true;
    if (!exprEquals(ExpressionButtonUtil.getExpression(txtExpression),(Expression)binding.getExpressionProperty(ComputedColumn.EXPRESSION_MEMBER).getValue()))     return true;
  }
  return false;
}

Fixed version (ground truth):
public boolean differs(ComputedColumnHandle binding){
  if (isAggregate()) {
    if (!strEquals(binding.getName(),txtName.getText()))     return true;
    if (!strEquals(binding.getDisplayName(),txtDisplayName.getText()))     return true;
    if (!strEquals(binding.getDisplayNameID(),txtDisplayNameID.getText()))     return true;
    if (!strEquals(binding.getDataType(),getDataType()))     return true;
    try {
      if (!strEquals(DataAdapterUtil.adaptModelAggregationType(binding.getAggregateFunction()),getFunctionByDisplayName(cmbFunction.getText()).getName()))       return true;
    }
 catch (    AdapterException e) {
    }
    if (!exprEquals((Expression)binding.getExpressionProperty(ComputedColumn.FILTER_MEMBER).getValue(),ExpressionButtonUtil.getExpression(txtFilter)))     return true;
    if (!strEquals(cmbAggOn.getText(),DEUtil.getAggregateOn(binding)))     return true;
    IAggrFunction function=getFunctionByDisplayName(cmbFunction.getText());
    if (function != null) {
      IParameterDefn[] params=function.getParameterDefn();
      for (      final IParameterDefn param : params) {
        if (paramsMap.containsKey(param.getName())) {
          Expression paramValue=ExpressionButtonUtil.getExpression(paramsMap.get(param.getName()));
          for (Iterator iterator=binding.argumentsIterator(); iterator.hasNext(); ) {
            AggregationArgumentHandle handle=(AggregationArgumentHandle)iterator.next();
            if (param.getName().equals(handle.getName()) && !exprEquals((Expression)handle.getExpressionProperty(AggregationArgument.VALUE_MEMBER).getValue(),paramValue)) {
              return true;
            }
          }
          if (param.isDataField() && binding.getExpression() != null && !exprEquals((Expression)binding.getExpressionProperty(ComputedColumn.EXPRESSION_MEMBER).getValue(),paramValue)) {
            return true;
          }
        }
      }
    }
  }
 else {
    if (!strEquals(txtName.getText(),binding.getName()))     return true;
    if (!strEquals(txtDisplayName.getText(),binding.getDisplayName()))     return true;
    if (!strEquals(txtDisplayNameID.getText(),binding.getDisplayNameID()))     return true;
    if (!strEquals(getDataType(),binding.getDataType()))     return true;
    if (!exprEquals(ExpressionButtonUtil.getExpression(txtExpression),(Expression)binding.getExpressionProperty(ComputedColumn.EXPRESSION_MEMBER).getValue()))     return true;
  }
  return false;
}