Program: 148310
Project: 148310
Buggy source:
public int save(String xsd){
  try {
    WSDataModel wsObject=(WSDataModel)(xobject.getWsObject());
    wsObject.setDescription(descriptionText.getText() == null ? "String_Node_Str" : descriptionText.getText());
    String schema=xsd;
    if (xsd == null) {
      schema=((SchemaTreeContentProvider)viewer.getContentProvider()).getXSDSchemaAsString();
      xsdSchema=((SchemaTreeContentProvider)viewer.getContentProvider()).getXsdSchema();
    }
    wsObject.setXsdSchema(schema);
    XSDImport xsdImport=XSDFactory.eINSTANCE.createXSDImport();
    xsdImport.setNamespace("String_Node_Str");
    if (xsdSchema == null) {
      xsdSchema=((SchemaTreeContentProvider)viewer.getContentProvider()).getXsdSchema();
      if (xsdSchema == null)       xsdSchema=Util.createXsdSchema(schema,xobject);
    }
    EList<XSDSchemaContent> elist=xsdSchema.getContents();
    for (    XSDSchemaContent cnt : elist) {
      if (cnt instanceof XSDImport) {
        XSDImport imp=(XSDImport)cnt;
        if (imp.getNamespace().equals("String_Node_Str")) {
          xsdImport=null;
          break;
        }
      }
    }
    if (xsdImport != null) {
      xsdSchema.getContents().add(0,xsdImport);
      wsObject.setXsdSchema(schema);
    }
    validateSchema();
    XtentisPort port=Util.getPort(new URL(xobject.getEndpointAddress()),xobject.getUniverse(),xobject.getUsername(),xobject.getPassword());
    port.putDataModel(new WSPutDataModel((WSDataModel)wsObject));
    RoleAssignmentDialog.doSave(port,((WSDataModel)wsObject).getName(),"String_Node_Str");
  }
 catch (  Exception e) {
    log.error(e.getMessage(),e);
    ErrorExceptionDialog.openError(this.getSite().getShell(),"String_Node_Str",CommonUtil.getErrMsgFromException(e));
    return 1;
  }
  dirty=false;
  firePropertyChange(PROP_DIRTY);
  return 0;
}

Fixed version (ground truth):
public int save(String xsd){
  try {
    WSDataModel wsObject=(WSDataModel)(xobject.getWsObject());
    wsObject.setDescription(descriptionText.getText() == null ? "String_Node_Str" : descriptionText.getText());
    String schema=xsd;
    if (xsd == null) {
      schema=((SchemaTreeContentProvider)viewer.getContentProvider()).getXSDSchemaAsString();
      xsdSchema=((SchemaTreeContentProvider)viewer.getContentProvider()).getXsdSchema();
    }
    XSDImport xsdImport=XSDFactory.eINSTANCE.createXSDImport();
    xsdImport.setNamespace("String_Node_Str");
    if (xsdSchema == null) {
      xsdSchema=((SchemaTreeContentProvider)viewer.getContentProvider()).getXsdSchema();
    }
    if (xsdSchema == null || !xsd.equals(wsObject.getXsdSchema()))     xsdSchema=Util.createXsdSchema(schema,xobject);
    wsObject.setXsdSchema(schema);
    EList<XSDSchemaContent> elist=xsdSchema.getContents();
    for (    XSDSchemaContent cnt : elist) {
      if (cnt instanceof XSDImport) {
        XSDImport imp=(XSDImport)cnt;
        if (imp.getNamespace().equals("String_Node_Str")) {
          xsdImport=null;
          break;
        }
      }
    }
    if (xsdImport != null) {
      xsdSchema.getContents().add(0,xsdImport);
      wsObject.setXsdSchema(schema);
    }
    validateSchema();
    XtentisPort port=Util.getPort(new URL(xobject.getEndpointAddress()),xobject.getUniverse(),xobject.getUsername(),xobject.getPassword());
    port.putDataModel(new WSPutDataModel((WSDataModel)wsObject));
    RoleAssignmentDialog.doSave(port,((WSDataModel)wsObject).getName(),"String_Node_Str");
  }
 catch (  Exception e) {
    log.error(e.getMessage(),e);
    ErrorExceptionDialog.openError(this.getSite().getShell(),"String_Node_Str",CommonUtil.getErrMsgFromException(e));
    return 1;
  }
  dirty=false;
  firePropertyChange(PROP_DIRTY);
  return 0;
}