Program: 136141
Project: 136141
Buggy source:
/** 
 * React on typing in fields
 */
protected synchronized void dialogChanged(){
  if (fileTextDirty) {
    String rootfilePath=getRootFilename();
    if ("String_Node_Str".equals(rootfilePath)) {
      reportError("String_Node_Str");
      return;
    }
 else     if (!new File(rootfilePath).exists()) {
      reportWarning("String_Node_Str");
    }
 else     if (new File(rootfilePath).isDirectory()) {
      reportError("String_Node_Str");
      return;
    }
 else     if (!rootfilePath.endsWith("String_Node_Str")) {
      reportError("String_Node_Str");
      return;
    }
 else {
      Spec existingSpec=Activator.getSpecManager().getSpecByRootModule(rootfilePath);
      if (existingSpec != null) {
        reportError("String_Node_Str" + existingSpec.getName());
        return;
      }
    }
  }
  if (specNameDirty) {
    String specName=getSpecName();
    if ("String_Node_Str".equals(specName)) {
      reportError("String_Node_Str");
      return;
    }
 else {
      Spec existingSpec=Activator.getSpecManager().getSpecByName(specName);
      if (existingSpec != null) {
        reportError("String_Node_Str" + existingSpec.getRootFilename() + "String_Node_Str");
        return;
      }
    }
  }
 else {
    if (fileTextDirty) {
      String moduleName=ResourceHelper.getModuleNameChecked(getRootFilename(),false);
      Spec existingSpec=Activator.getSpecManager().getSpecByName(moduleName);
      if (existingSpec != null) {
        moduleName=Activator.getSpecManager().constructSpecName(moduleName,true);
      }
      specNameText.setText(moduleName);
    }
  }
  this.setMessage(null);
  if (!fileTextDirty || !specNameDirty) {
    return;
  }
  this.setPageComplete(true);
  IDialogSettings settings=Activator.getDefault().getDialogSettings();
  settings.put("String_Node_Str",getRootFilename());
}

Fixed version (ground truth):
/** 
 * React on typing in fields
 */
protected synchronized void dialogChanged(){
  String rootfilePath=null;
  if (fileTextDirty) {
    rootfilePath=getRootFilename();
    if ("String_Node_Str".equals(rootfilePath)) {
      reportError("String_Node_Str");
      return;
    }
 else     if (new File(rootfilePath).isDirectory()) {
      reportError("String_Node_Str");
      return;
    }
 else     if (!rootfilePath.endsWith("String_Node_Str")) {
      reportError("String_Node_Str");
      return;
    }
 else {
      Spec existingSpec=Activator.getSpecManager().getSpecByRootModule(rootfilePath);
      if (existingSpec != null) {
        reportError("String_Node_Str" + existingSpec.getName());
        return;
      }
    }
  }
  if (specNameDirty) {
    String specName=getSpecName();
    if ("String_Node_Str".equals(specName)) {
      reportError("String_Node_Str");
      return;
    }
 else {
      Spec existingSpec=Activator.getSpecManager().getSpecByName(specName);
      if (existingSpec != null) {
        reportError("String_Node_Str" + existingSpec.getRootFilename() + "String_Node_Str");
        return;
      }
    }
  }
 else {
    if (fileTextDirty) {
      String moduleName=ResourceHelper.getModuleNameChecked(getRootFilename(),false);
      Spec existingSpec=Activator.getSpecManager().getSpecByName(moduleName);
      if (existingSpec != null) {
        moduleName=Activator.getSpecManager().constructSpecName(moduleName,true);
      }
      specNameText.setText(moduleName);
    }
  }
  this.setMessage(null);
  if (rootfilePath != null && !new File(rootfilePath).exists()) {
    reportWarning("String_Node_Str");
  }
  if (!fileTextDirty || !specNameDirty) {
    return;
  }
  this.setPageComplete(true);
  IDialogSettings settings=Activator.getDefault().getDialogSettings();
  settings.put("String_Node_Str",getRootFilename());
}