Program: 139475
Project: 139475
Buggy source:
@Override public void doSave(IProgressMonitor monitor){
  super.doSave(monitor);
  EList<Expression> expressiones=definition.getSqlGenericExpression();
  expressiones.clear();
  for (  Expression expression : tempExpression) {
    if (expression.getBody() != null && !"String_Node_Str".equals(expression.getBody())) {
      expressiones.add(expression);
    }
  }
  if (hasAggregateExpression) {
    EList<Expression> aggregate1argFunctions=definition.getAggregate1argFunctions();
    aggregate1argFunctions.clear();
    for (    AggregateDateExpression ade : afExpressionMapTemp.values()) {
      Expression expression=ade.getAggregateExpression();
      if (expression.getBody() != null && !"String_Node_Str".equals(expression.getBody())) {
        aggregate1argFunctions.add(expression);
      }
    }
  }
  if (hasDateExpression) {
    EList<Expression> date1argFunctions=definition.getDate1argFunctions();
    date1argFunctions.clear();
    for (    AggregateDateExpression ade : afExpressionMapTemp.values()) {
      Expression expression=ade.getDateExpression();
      if (expression.getBody() != null && !"String_Node_Str".equals(expression.getBody())) {
        date1argFunctions.add(expression);
      }
    }
  }
  if (hasCharactersMapping) {
    EList<CharactersMapping> charactersMappings=definition.getCharactersMapping();
    charactersMappings.clear();
    for (    CharactersMapping cm : charactersMappingMapTemp.values()) {
      String c=cm.getCharactersToReplace();
      String r=cm.getReplacementCharacters();
      if (c != null && !"String_Node_Str".equals(c) && r != null && !"String_Node_Str".equals(r)) {
        charactersMappings.add(cm);
      }
    }
  }
  UDIResourceFileHelper.getInstance().save(definition);
  this.isDirty=false;
}

Fixed version (ground truth):
@Override public void doSave(IProgressMonitor monitor){
  super.doSave(monitor);
  EList<Expression> expressiones=definition.getSqlGenericExpression();
  expressiones.clear();
  for (  Expression expression : tempExpression) {
    if (expression.getBody() != null && !"String_Node_Str".equals(expression.getBody())) {
      expressiones.add(expression);
    }
  }
  if (hasAggregateExpression) {
    EList<Expression> aggregate1argFunctions=definition.getAggregate1argFunctions();
    aggregate1argFunctions.clear();
    for (    AggregateDateExpression ade : afExpressionMapTemp.values()) {
      Expression expression=ade.getAggregateExpression();
      if (expression.getBody() != null && !"String_Node_Str".equals(expression.getBody())) {
        aggregate1argFunctions.add(expression);
      }
    }
  }
  if (hasDateExpression) {
    EList<Expression> date1argFunctions=definition.getDate1argFunctions();
    date1argFunctions.clear();
    for (    AggregateDateExpression ade : afExpressionMapTemp.values()) {
      Expression expression=ade.getDateExpression();
      if (expression.getBody() != null && !"String_Node_Str".equals(expression.getBody())) {
        date1argFunctions.add(expression);
      }
    }
  }
  if (hasCharactersMapping) {
    EList<CharactersMapping> charactersMappings=definition.getCharactersMapping();
    charactersMappings.clear();
    for (    CharactersMapping cm : charactersMappingMapTemp.values()) {
      String c=cm.getCharactersToReplace();
      String r=cm.getReplacementCharacters();
      if (checkMappingString(c,r)) {
        charactersMappings.add(cm);
      }
 else {
        MessageUI.openError("String_Node_Str" + cm.getLanguage() + "String_Node_Str");
        return;
      }
    }
  }
  UDIResourceFileHelper.getInstance().save(definition);
  this.isDirty=false;
}