Program: 108676
Project: 108676
Buggy source:
@Override public void widgetSelected(final SelectionEvent arg0){
  if (combo.getSelectionIndex() >= 0) {
    DataType<?> type=model.getDataType();
    if (combo.getSelectionIndex() > 0) {
      String label=combo.getItem(combo.getSelectionIndex());
      DataTypeDescription<?> description=getDataType(label);
      if (description.getLabel().equals("String_Node_Str")) {
        final String text1=Resources.getMessage("String_Node_Str");
        final String text2=Resources.getMessage("String_Node_Str");
        String[] array=controller.actionShowOrderValuesDialog(text1,text2,DataType.STRING,model.getItems().toArray(new String[]{}));
        if (array == null) {
          type=DataType.STRING;
        }
 else {
          type=DataType.createOrderedString(array);
          if (!isValidDataType(type,model.getItems())) {
            type=DataType.STRING;
          }
        }
      }
 else       if (description.hasFormat()) {
        final String text1=Resources.getMessage("String_Node_Str");
        final String text2=Resources.getMessage("String_Node_Str");
        final String format=controller.actionShowFormatInputDialog(getShell(),text1,text2,description,model.getItems());
        if (format == null) {
          type=DataType.STRING;
          combo.select(getIndexOfDataType(DataType.STRING) + 1);
        }
 else {
          type=description.newInstance(format);
        }
      }
 else {
        type=description.newInstance();
        if (!isValidDataType(type,model.getItems())) {
          type=DataType.STRING;
          combo.select(getIndexOfDataType(DataType.STRING) + 1);
        }
      }
    }
    try {
      sort(type);
    }
 catch (    Exception e) {
      sort(DataType.STRING);
    }
  }
}

Fixed version (ground truth):
@Override public void widgetSelected(final SelectionEvent arg0){
  if (combo.getSelectionIndex() >= 0) {
    DataType<?> type=model.getDataType();
    if (combo.getSelectionIndex() > 0) {
      String label=combo.getItem(combo.getSelectionIndex());
      DataTypeDescription<?> description=getDataType(label);
      if (description.getLabel().equals("String_Node_Str")) {
        final String text1=Resources.getMessage("String_Node_Str");
        final String text2=Resources.getMessage("String_Node_Str");
        String[] array=controller.actionShowOrderValuesDialog(text1,text2,DataType.STRING,model.getItems().toArray(new String[]{}));
        if (array == null) {
          type=DataType.STRING;
        }
 else {
          try {
            type=DataType.createOrderedString(array);
            if (!isValidDataType(type,model.getItems())) {
              type=DataType.STRING;
              combo.select(getIndexOfDataType(DataType.STRING) + 1);
            }
          }
 catch (          Exception e) {
            controller.actionShowInfoDialog("String_Node_Str","String_Node_Str" + e.getMessage());
            type=DataType.STRING;
            combo.select(getIndexOfDataType(DataType.STRING) + 1);
          }
        }
      }
 else       if (description.hasFormat()) {
        final String text1=Resources.getMessage("String_Node_Str");
        final String text2=Resources.getMessage("String_Node_Str");
        final String format=controller.actionShowFormatInputDialog(getShell(),text1,text2,description,model.getItems());
        if (format == null) {
          type=DataType.STRING;
          combo.select(getIndexOfDataType(DataType.STRING) + 1);
        }
 else {
          type=description.newInstance(format);
        }
      }
 else {
        type=description.newInstance();
        if (!isValidDataType(type,model.getItems())) {
          type=DataType.STRING;
          combo.select(getIndexOfDataType(DataType.STRING) + 1);
        }
      }
    }
    try {
      sort(type);
    }
 catch (    Exception e) {
      sort(DataType.STRING);
    }
  }
}