Program: 66473
Project: 66473
Buggy source:
public void validate(){
  if (txtName != null && (txtName.getText() == null || txtName.getText().trim().equals("String_Node_Str"))) {
    dialog.setCanFinish(false);
  }
 else   if (txtExpression != null && (txtExpression.getText() == null || txtExpression.getText().trim().equals("String_Node_Str"))) {
    dialog.setCanFinish(false);
  }
 else {
    if (this.binding == null) {
      for (Iterator iterator=this.bindingHolder.getColumnBindings().iterator(); iterator.hasNext(); ) {
        ComputedColumnHandle computedColumn=(ComputedColumnHandle)iterator.next();
        if (computedColumn.getName().equals(txtName.getText())) {
          dialog.setCanFinish(false);
          this.messageLine.setText(Messages.getFormattedString("String_Node_Str",new Object[]{txtName.getText()}));
          this.messageLine.setImage(PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJS_ERROR_TSK));
          return;
        }
      }
    }
    if (isAggregate()) {
      IAggrFunction function=getFunctionByDisplayName(cmbFunction.getText());
      IParameterDefn[] params=function.getParameterDefn();
      if (params.length > 0) {
        for (        final IParameterDefn param : params) {
          if (param.isDataField()) {
            Combo cmbDataField=(Combo)paramsMap.get(param.getName());
            String expression=cmbDataField.getText();
            DataRequestSession session=null;
            try {
              session=DataRequestSession.newSession(new DataSessionContext(DataSessionContext.MODE_DIRECT_PRESENTATION));
              if (session.getCubeQueryUtil().getReferencedMeasureName(expression) != null && function.getType() == IAggrFunction.RUNNING_AGGR) {
                dialog.setCanFinish(false);
                this.messageLine.setText(Messages.getFormattedString("String_Node_Str",new Object[]{function.getName()}));
                this.messageLine.setImage(PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJS_ERROR_TSK));
                return;
              }
              dialog.setCanFinish(true);
            }
 catch (            Exception e) {
            }
 finally {
              if (session != null) {
                session.shutdown();
              }
            }
          }
        }
      }
    }
    dialogCanFinish();
    this.messageLine.setText("String_Node_Str");
    this.messageLine.setImage(null);
    if (txtExpression != null && (txtExpression.getText() == null || txtExpression.getText().trim().equals("String_Node_Str"))) {
      dialog.setCanFinish(false);
      return;
    }
    if (isAggregate()) {
      try {
        IAggrFunction aggregation=DataUtil.getAggregationManager().getAggregation(getFunctionByDisplayName(cmbFunction.getText()).getName());
        if (aggregation.getParameterDefn().length > 0) {
          IParameterDefn[] parameters=aggregation.getParameterDefn();
          for (          IParameterDefn param : parameters) {
            if (!param.isOptional()) {
              String paramValue=getControlValue(paramsMap.get(param.getName()));
              if (paramValue == null || paramValue.trim().equals("String_Node_Str")) {
                dialog.setCanFinish(false);
                return;
              }
            }
          }
        }
      }
 catch (      BirtException e) {
      }
    }
    if (isTimePeriod()) {
      ITimeFunction timeFunction=getTimeFunctionByIndex(calculationType.getSelectionIndex());
      List<IArgumentInfo> infos=timeFunction.getArguments();
      for (int i=0; i < infos.size(); i++) {
        String paramValue=getControlValue(calculationParamsMap.get(infos.get(i).getName()));
        if (paramValue == null || paramValue.trim().equals("String_Node_Str") && !infos.get(i).isOptional()) {
          dialog.setCanFinish(false);
          return;
        }
      }
      String dimensionName=getTimeDimsionName();
      if (!isUseDimension(dimensionName) && recentButton.getSelection()) {
        this.messageLine.setText(Messages.getString("String_Node_Str"));
        this.messageLine.setImage(PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJS_ERROR_TSK));
        dialog.setCanFinish(false);
        return;
      }
      if (dateSelectionButton.getSelection() && (dateText.getText() == null || dateText.getText().trim().equals("String_Node_Str"))) {
        dialog.setCanFinish(false);
        return;
      }
    }
    dialogCanFinish();
  }
  updateRemoveBtnState();
}

Fixed version (ground truth):
public void validate(){
  if (txtName != null && (txtName.getText() == null || txtName.getText().trim().equals("String_Node_Str"))) {
    dialog.setCanFinish(false);
  }
 else   if (txtExpression != null && (txtExpression.getText() == null || txtExpression.getText().trim().equals("String_Node_Str"))) {
    dialog.setCanFinish(false);
  }
 else {
    if (this.binding == null) {
      for (Iterator iterator=this.bindingHolder.getColumnBindings().iterator(); iterator.hasNext(); ) {
        ComputedColumnHandle computedColumn=(ComputedColumnHandle)iterator.next();
        if (computedColumn.getName().equals(txtName.getText())) {
          dialog.setCanFinish(false);
          this.messageLine.setText(Messages.getFormattedString("String_Node_Str",new Object[]{txtName.getText()}));
          this.messageLine.setImage(PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJS_ERROR_TSK));
          return;
        }
      }
    }
    if (isAggregate()) {
      IAggrFunction function=getFunctionByDisplayName(cmbFunction.getText());
      IParameterDefn[] params=function.getParameterDefn();
      if (params.length > 0) {
        for (        final IParameterDefn param : params) {
          if (param.isDataField()) {
            Combo cmbDataField=(Combo)paramsMap.get(param.getName());
            String expression=cmbDataField.getText();
            DataRequestSession session=null;
            try {
              session=DataRequestSession.newSession(new DataSessionContext(DataSessionContext.MODE_DIRECT_PRESENTATION));
              if (session.getCubeQueryUtil().getReferencedMeasureName(expression) != null && function.getType() == IAggrFunction.RUNNING_AGGR) {
                dialog.setCanFinish(false);
                this.messageLine.setText(Messages.getFormattedString("String_Node_Str",new Object[]{function.getName()}));
                this.messageLine.setImage(PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJS_ERROR_TSK));
                return;
              }
              dialog.setCanFinish(true);
            }
 catch (            Exception e) {
            }
 finally {
              if (session != null) {
                session.shutdown();
              }
            }
          }
        }
      }
    }
    dialogCanFinish();
    this.messageLine.setText("String_Node_Str");
    this.messageLine.setImage(null);
    if (txtExpression != null && (txtExpression.getText() == null || txtExpression.getText().trim().equals("String_Node_Str"))) {
      dialog.setCanFinish(false);
      return;
    }
    if (isAggregate()) {
      try {
        IAggrFunction aggregation=DataUtil.getAggregationManager().getAggregation(getFunctionByDisplayName(cmbFunction.getText()).getName());
        if (aggregation.getParameterDefn().length > 0) {
          IParameterDefn[] parameters=aggregation.getParameterDefn();
          for (          IParameterDefn param : parameters) {
            if (!param.isOptional()) {
              String paramValue=getControlValue(paramsMap.get(param.getName()));
              if (paramValue == null || paramValue.trim().equals("String_Node_Str")) {
                dialog.setCanFinish(false);
                return;
              }
            }
          }
        }
      }
 catch (      BirtException e) {
      }
    }
    if (isTimePeriod()) {
      ITimeFunction timeFunction=getTimeFunctionByIndex(calculationType.getSelectionIndex());
      if (timeFunction != null) {
        List<IArgumentInfo> infos=timeFunction.getArguments();
        for (int i=0; i < infos.size(); i++) {
          String paramValue=getControlValue(calculationParamsMap.get(infos.get(i).getName()));
          if (paramValue == null || paramValue.trim().equals("String_Node_Str") && !infos.get(i).isOptional()) {
            dialog.setCanFinish(false);
            return;
          }
        }
        String dimensionName=getTimeDimsionName();
        if (!isUseDimension(dimensionName) && recentButton.getSelection()) {
          this.messageLine.setText(Messages.getString("String_Node_Str"));
          this.messageLine.setImage(PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJS_ERROR_TSK));
          dialog.setCanFinish(false);
          return;
        }
        if (dateSelectionButton.getSelection() && (dateText.getText() == null || dateText.getText().trim().equals("String_Node_Str"))) {
          dialog.setCanFinish(false);
          return;
        }
      }
    }
    dialogCanFinish();
  }
  updateRemoveBtnState();
}