Program: 73710
Project: 73710
Buggy source:
private void _commitSave(boolean isNew) throws Exception {
  _updateDisplayedModel();
  xmlModel=new XMLDBModel(_modelToSave.getName());
  xmlModel.setModel(_modelToSave.exportMoML());
  xmlModel.setIsNew(isNew);
  xmlModel.setModelId(((StringParameter)_modelToSave.getAttribute("String_Node_Str")).getExpression());
  SaveModelManager saveModelManager=new SaveModelManager();
  try {
    if (saveModelManager.save(xmlModel)) {
      JOptionPane.showMessageDialog(this,"String_Node_Str","String_Node_Str",JOptionPane.INFORMATION_MESSAGE,null);
      setVisible(false);
    }
 else {
      JOptionPane.showMessageDialog(this,"String_Node_Str","String_Node_Str",JOptionPane.INFORMATION_MESSAGE,null);
    }
  }
 catch (  DBConnectionException exception) {
    throw exception;
  }
catch (  DBExecutionException exception) {
    throw exception;
  }
catch (  IllegalArgumentException exception) {
    throw exception;
  }
catch (  ModelAlreadyExistException exception) {
    Object[] options={"String_Node_Str","String_Node_Str","String_Node_Str"};
    int n=JOptionPane.showOptionDialog(this,"String_Node_Str" + "String_Node_Str" + "String_Node_Str","String_Node_Str",JOptionPane.YES_NO_CANCEL_OPTION,JOptionPane.QUESTION_MESSAGE,null,options,options[2]);
    if (n == JOptionPane.YES_OPTION) {
      saveModelManager=null;
      _commitSave(false);
    }
 else {
      _rollbackModel();
    }
  }
}

Fixed version (ground truth):
private void _commitSave(boolean isNew,String id) throws Exception {
  _updateDisplayedModel();
  xmlModel=new XMLDBModel(_modelToSave.getName());
  xmlModel.setModel(_modelToSave.exportMoML());
  xmlModel.setIsNew(isNew);
  xmlModel.setModelId(id);
  SaveModelManager saveModelManager=new SaveModelManager();
  try {
    String modelId=saveModelManager.save(xmlModel);
    if (modelId != null) {
      JOptionPane.showMessageDialog(this,"String_Node_Str","String_Node_Str",JOptionPane.INFORMATION_MESSAGE,null);
      if (_modelToSave.getAttribute("String_Node_Str") == null) {
        StringParameter dbModelParam=new StringParameter(_modelToSave,"String_Node_Str");
        dbModelParam.setExpression(modelId);
        dbModelParam.setContainer(_modelToSave);
      }
 else       if (!((StringParameter)_modelToSave.getAttribute("String_Node_Str")).getExpression().equals(modelId)) {
        ((StringParameter)_modelToSave.getAttribute("String_Node_Str")).setExpression(modelId);
      }
      try {
        MoMLChangeRequest change=new MoMLChangeRequest(this,null,_modelToSave.exportMoML());
        change.setUndoable(true);
        _modelToSave.requestChange(change);
      }
 catch (      Exception e) {
        throw e;
      }
      setVisible(false);
    }
 else {
      JOptionPane.showMessageDialog(this,"String_Node_Str","String_Node_Str",JOptionPane.INFORMATION_MESSAGE,null);
    }
  }
 catch (  DBConnectionException exception) {
    throw exception;
  }
catch (  DBExecutionException exception) {
    throw exception;
  }
catch (  IllegalArgumentException exception) {
    throw exception;
  }
catch (  ModelAlreadyExistException exception) {
    Object[] options={"String_Node_Str","String_Node_Str","String_Node_Str"};
    int n=JOptionPane.showOptionDialog(this,"String_Node_Str" + "String_Node_Str" + "String_Node_Str","String_Node_Str",JOptionPane.YES_NO_CANCEL_OPTION,JOptionPane.QUESTION_MESSAGE,null,options,options[2]);
    if (n == JOptionPane.YES_OPTION) {
      saveModelManager=null;
      _commitSave(false,null);
    }
 else {
      _rollbackModel();
    }
  }
}