Program: 108677
Project: 108677
Buggy source:
@Override public void createControl(final Composite parent){
  final Composite composite=new Composite(parent,SWT.NONE);
  final GridLayout compositeLayout=new GridLayout();
  compositeLayout.numColumns=1;
  composite.setLayout(compositeLayout);
  list=new List(composite,SWT.BORDER | SWT.SINGLE | SWT.V_SCROLL);
  final int itemHeight=list.getItemHeight();
  final GridData data=new GridData(SWT.FILL,SWT.FILL,true,false);
  data.heightHint=10 * itemHeight;
  list.setLayoutData(data);
  final Composite bottom2=new Composite(composite,SWT.NONE);
  bottom2.setLayoutData(SWTUtil.createFillHorizontallyGridData());
  final GridLayout bottomLayout2=new GridLayout();
  bottomLayout2.numColumns=2;
  bottom2.setLayout(bottomLayout2);
  final Button up=new Button(bottom2,SWT.NONE);
  up.setText(Resources.getMessage("String_Node_Str"));
  up.setImage(controller.getResources().getImage("String_Node_Str"));
  up.setLayoutData(SWTUtil.createFillHorizontallyGridData());
  up.addSelectionListener(new SelectionAdapter(){
    @Override public void widgetSelected(    final SelectionEvent arg0){
      up();
    }
  }
);
  final Button down=new Button(bottom2,SWT.NONE);
  down.setText(Resources.getMessage("String_Node_Str"));
  down.setImage(controller.getResources().getImage("String_Node_Str"));
  down.setLayoutData(SWTUtil.createFillHorizontallyGridData());
  down.addSelectionListener(new SelectionAdapter(){
    @Override public void widgetSelected(    final SelectionEvent arg0){
      down();
    }
  }
);
  final Composite bottom1=new Composite(composite,SWT.NONE);
  bottom1.setLayoutData(SWTUtil.createFillHorizontallyGridData());
  final GridLayout bottomLayout=new GridLayout();
  bottomLayout.numColumns=2;
  bottom1.setLayout(bottomLayout);
  final Label text=new Label(bottom1,SWT.NONE);
  text.setText(Resources.getMessage("String_Node_Str"));
  final Combo combo=new Combo(bottom1,SWT.NONE);
  combo.setLayoutData(SWTUtil.createFillHorizontallyGridData());
  combo.add(Resources.getMessage("String_Node_Str"));
  for (  String type : getDataTypes()) {
    combo.add(type);
  }
  combo.select(0);
  combo.addSelectionListener(new SelectionAdapter(){
    @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);
        }
      }
    }
  }
);
  sort(model.getDataType());
  setControl(composite);
}

Fixed version (ground truth):
@Override public void createControl(final Composite parent){
  final Composite composite=new Composite(parent,SWT.NONE);
  final GridLayout compositeLayout=new GridLayout();
  compositeLayout.numColumns=1;
  composite.setLayout(compositeLayout);
  list=new List(composite,SWT.BORDER | SWT.SINGLE | SWT.V_SCROLL);
  final int itemHeight=list.getItemHeight();
  final GridData data=new GridData(SWT.FILL,SWT.FILL,true,false);
  data.heightHint=10 * itemHeight;
  list.setLayoutData(data);
  final Composite bottom2=new Composite(composite,SWT.NONE);
  bottom2.setLayoutData(SWTUtil.createFillHorizontallyGridData());
  final GridLayout bottomLayout2=new GridLayout();
  bottomLayout2.numColumns=2;
  bottom2.setLayout(bottomLayout2);
  final Button up=new Button(bottom2,SWT.NONE);
  up.setText(Resources.getMessage("String_Node_Str"));
  up.setImage(controller.getResources().getImage("String_Node_Str"));
  up.setLayoutData(SWTUtil.createFillHorizontallyGridData());
  up.addSelectionListener(new SelectionAdapter(){
    @Override public void widgetSelected(    final SelectionEvent arg0){
      up();
    }
  }
);
  final Button down=new Button(bottom2,SWT.NONE);
  down.setText(Resources.getMessage("String_Node_Str"));
  down.setImage(controller.getResources().getImage("String_Node_Str"));
  down.setLayoutData(SWTUtil.createFillHorizontallyGridData());
  down.addSelectionListener(new SelectionAdapter(){
    @Override public void widgetSelected(    final SelectionEvent arg0){
      down();
    }
  }
);
  final Composite bottom1=new Composite(composite,SWT.NONE);
  bottom1.setLayoutData(SWTUtil.createFillHorizontallyGridData());
  final GridLayout bottomLayout=new GridLayout();
  bottomLayout.numColumns=2;
  bottom1.setLayout(bottomLayout);
  final Label text=new Label(bottom1,SWT.NONE);
  text.setText(Resources.getMessage("String_Node_Str"));
  final Combo combo=new Combo(bottom1,SWT.NONE);
  combo.setLayoutData(SWTUtil.createFillHorizontallyGridData());
  combo.add(Resources.getMessage("String_Node_Str"));
  for (  String type : getDataTypes()) {
    combo.add(type);
  }
  combo.select(0);
  combo.addSelectionListener(new SelectionAdapter(){
    @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);
        }
      }
    }
  }
);
  sort(model.getDataType());
  setControl(composite);
}