Program: 69443
Project: 69443
Buggy source:
protected IStatus validateSemantics(Object structureOrHandle){
  AggregationArgument aggrArgument=null;
  String columnName=txtColumnName.getText();
  String dataTypeName=getTypeName(cmbDataType.getText());
  IAggrFunction aggrFunc=getSelectedFunction();
  try {
    String funcName=aggrFunc != null ? aggrFunc.getName() : BLANK;
    String filter=this.txtFilter.getText();
    if (structureOrHandle instanceof ComputedColumnHandle) {
      ComputedColumnHandle handle=(ComputedColumnHandle)structureOrHandle;
      handle.setName(columnName);
      handle.setDataType(dataTypeName);
      handle.setAggregateFunction(funcName);
      if (aggrFunc == null) {
        handle.setExpression(txtParams[0].getText().trim());
      }
 else {
        handle.setExpression(BLANK);
        handle.setFilterExpression(filter);
        handle.clearArgumentList();
        IParameterDefn[] params=aggrFunc.getParameterDefn();
        for (int i=0; i < params.length; i++) {
          aggrArgument=StructureFactory.createAggregationArgument();
          aggrArgument.setName(params[i].getName());
          aggrArgument.setValue(txtParams[i].getText().trim());
          handle.addArgument(aggrArgument);
        }
      }
    }
 else     if (structureOrHandle instanceof ComputedColumn) {
      ComputedColumn handle=(ComputedColumn)structureOrHandle;
      handle.setName(columnName);
      handle.setDataType(dataTypeName);
      handle.setAggregateFunction(funcName);
      if (aggrFunc == null) {
        handle.setExpression(txtParams[0].getText().trim());
      }
 else {
        handle.setExpression(BLANK);
        handle.setFilterExpression(filter);
        IParameterDefn[] params=aggrFunc.getParameterDefn();
        for (int i=0; i < params.length; i++) {
          aggrArgument=StructureFactory.createAggregationArgument();
          aggrArgument.setName(params[i].getName());
          aggrArgument.setValue(txtParams[i].getText().trim());
          handle.addArgument(aggrArgument);
        }
      }
      updateComputedColumns(handle);
    }
  }
 catch (  Exception e) {
    Status status=new Status(IStatus.ERROR,ReportPlugin.REPORT_UI,BLANK,e);
    return status;
  }
  return getOKStatus();
}

Fixed version (ground truth):
protected IStatus validateSemantics(Object structureOrHandle){
  AggregationArgument aggrArgument=null;
  String columnName=txtColumnName.getText();
  String dataTypeName=getTypeName(cmbDataType.getText());
  IAggrFunction aggrFunc=getSelectedFunction();
  try {
    String funcName=aggrFunc != null ? aggrFunc.getName() : BLANK;
    String filter=this.txtFilter.getText();
    if (structureOrHandle instanceof ComputedColumnHandle) {
      ComputedColumnHandle handle=(ComputedColumnHandle)structureOrHandle;
      handle.setName(columnName);
      handle.setDataType(dataTypeName);
      handle.setAggregateFunction(funcName);
      if (aggrFunc == null) {
        handle.setExpression(txtParams[0].getText().trim());
      }
 else {
        handle.setExpression(BLANK);
        handle.setFilterExpression(filter);
        handle.clearArgumentList();
        IParameterDefn[] params=aggrFunc.getParameterDefn();
        for (int i=0; i < params.length; i++) {
          if (txtParams[i].getText().trim().length() == 0)           continue;
          aggrArgument=StructureFactory.createAggregationArgument();
          aggrArgument.setName(params[i].getName());
          aggrArgument.setValue(txtParams[i].getText().trim());
          handle.addArgument(aggrArgument);
        }
      }
    }
 else     if (structureOrHandle instanceof ComputedColumn) {
      ComputedColumn handle=(ComputedColumn)structureOrHandle;
      handle.setName(columnName);
      handle.setDataType(dataTypeName);
      handle.setAggregateFunction(funcName);
      if (aggrFunc == null) {
        handle.setExpression(txtParams[0].getText().trim());
      }
 else {
        handle.setExpression(BLANK);
        handle.setFilterExpression(filter);
        IParameterDefn[] params=aggrFunc.getParameterDefn();
        for (int i=0; i < params.length; i++) {
          if (txtParams[i].getText().trim().length() == 0)           continue;
          aggrArgument=StructureFactory.createAggregationArgument();
          aggrArgument.setName(params[i].getName());
          aggrArgument.setValue(txtParams[i].getText().trim());
          handle.addArgument(aggrArgument);
        }
      }
      updateComputedColumns(handle);
    }
  }
 catch (  Exception e) {
    Status status=new Status(IStatus.ERROR,ReportPlugin.REPORT_UI,BLANK,e);
    return status;
  }
  return getOKStatus();
}