Program: 117929
Project: 117929
Buggy source:
@Override protected void addFields(){
  Group group=Form.createGroup(this,1,"String_Node_Str",100);
  Composite compositeFileLocation=Form.startNewDimensionnedGridLayout(group,3,WIDTH_GRIDDATA_PIXEL,100);
  GridData gridDataFileLocation=new GridData(GridData.FILL_HORIZONTAL);
  gridDataFileLocation.minimumWidth=WIDTH_GRIDDATA_PIXEL;
  group.setLayoutData(gridDataFileLocation);
  List<String> readbyModeValues=EJsonReadbyMode.getUsableReadbyModeValues();
  readbyCombo=new LabelledCombo(compositeFileLocation,"String_Node_Str","String_Node_Str",readbyModeValues.toArray(new String[readbyModeValues.size()]),2,true,SWT.READ_ONLY);
  String[] JSONExtensions={"String_Node_Str","String_Node_Str","String_Node_Str"};
  fileFieldJSON=new LabelledFileField(compositeFileLocation,"String_Node_Str",JSONExtensions);
  EMetadataEncoding[] values=EMetadataEncoding.values();
  String[] encodingData=new String[values.length];
  for (int j=0; j < values.length; j++) {
    encodingData[j]=values[j].getName();
  }
  encodingCombo=new LabelledCombo(compositeFileLocation,"String_Node_Str","String_Node_Str",encodingData,1,true,SWT.NONE);
  Composite limitation=new Composite(compositeFileLocation,SWT.NONE);
  limitation.setLayout(new GridLayout(2,false));
  labelLimitation=new Label(limitation,SWT.LEFT);
  labelLimitation.setText("String_Node_Str");
  commonNodesLimitation=new Text(limitation,SWT.BORDER);
  GridData gd=new GridData(18,12);
  commonNodesLimitation.setLayoutData(gd);
  commonNodesLimitation.setText(String.valueOf(TreePopulator.getLimit()));
  labelLimitation.setToolTipText(MessageFormat.format(Messages.JSONLimitToolTip,commonNodesLimitation.getText()));
  commonNodesLimitation.addModifyListener(new ModifyListener(){
    @Override public void modifyText(    ModifyEvent e){
      String str=commonNodesLimitation.getText();
      if ((!str.matches("String_Node_Str")) || (Integer.valueOf(str) < 0)) {
        commonNodesLimitation.setText(String.valueOf(treePopulator.getLimit()));
        labelLimitation.setToolTipText(MessageFormat.format(Messages.JSONLimitToolTip,commonNodesLimitation.getText()));
        ;
      }
 else {
        limit=Integer.valueOf(str);
        labelLimitation.setToolTipText(MessageFormat.format(Messages.JSONLimitToolTip,limit));
      }
      String tempxml=null;
      if (tempJSONXsdPath != null && getConnection().getFileContent() != null && getConnection().getFileContent().length > 0) {
        tempxml=getFilePath4Populate(tempJSONXsdPath);
      }
 else {
        tempxml=getFilePath4Populate(fileFieldJSON.getText());
      }
      switchPopulator(JSONFileStep1Form.this.wizard.getReadbyMode(),tempxml);
      checkFieldsValue();
    }
  }
);
  commonNodesLimitation.addFocusListener(new FocusListener(){
    @Override public void focusGained(    FocusEvent e){
    }
    @Override public void focusLost(    FocusEvent e){
      commonNodesLimitation.setText(String.valueOf(TreePopulator.getLimit()));
      labelLimitation.setToolTipText(MessageFormat.format(Messages.JSONLimitToolTip,commonNodesLimitation.getText()));
    }
  }
);
  group=Form.createGroup(this,1,"String_Node_Str",220);
  Composite compositeFileViewer=Form.startNewDimensionnedGridLayout(group,1,WIDTH_GRIDDATA_PIXEL,220);
  GridData gridData=new GridData(GridData.FILL_BOTH);
  gridData.minimumWidth=WIDTH_GRIDDATA_PIXEL;
  availableJSONTree=new Tree(compositeFileViewer,SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
  availableJSONTree.setLayoutData(gridData);
  if (!isInWizard()) {
    Composite compositeBottomButton=Form.startNewGridLayout(this,2,false,SWT.CENTER,SWT.CENTER);
    cancelButton=new UtilsButton(compositeBottomButton,"String_Node_Str",WIDTH_BUTTON_PIXEL,HEIGHT_BUTTON_PIXEL);
  }
  addUtilsButtonListeners();
}

Fixed version (ground truth):
@Override protected void addFields(){
  Group group=Form.createGroup(this,1,"String_Node_Str",100);
  Composite compositeFileLocation=Form.startNewDimensionnedGridLayout(group,3,WIDTH_GRIDDATA_PIXEL,100);
  GridData gridDataFileLocation=new GridData(GridData.FILL_HORIZONTAL);
  gridDataFileLocation.minimumWidth=WIDTH_GRIDDATA_PIXEL;
  group.setLayoutData(gridDataFileLocation);
  List<String> readbyModeValues=EJsonReadbyMode.getUsableReadbyModeValues();
  readbyCombo=new LabelledCombo(compositeFileLocation,"String_Node_Str","String_Node_Str",readbyModeValues.toArray(new String[readbyModeValues.size()]),2,true,SWT.READ_ONLY);
  String[] JSONExtensions={"String_Node_Str","String_Node_Str","String_Node_Str"};
  fileFieldJSON=new LabelledFileField(compositeFileLocation,"String_Node_Str",JSONExtensions);
  EMetadataEncoding[] values=EMetadataEncoding.values();
  String[] encodingData=new String[values.length];
  for (int j=0; j < values.length; j++) {
    encodingData[j]=values[j].getName();
  }
  encodingCombo=new LabelledCombo(compositeFileLocation,"String_Node_Str","String_Node_Str",encodingData,1,true,SWT.NONE);
  Composite limitation=new Composite(compositeFileLocation,SWT.NONE);
  limitation.setLayout(new GridLayout(2,false));
  labelLimitation=new Label(limitation,SWT.LEFT);
  labelLimitation.setText("String_Node_Str");
  commonNodesLimitation=new Text(limitation,SWT.BORDER);
  GridData gd=new GridData(GridData.VERTICAL_ALIGN_FILL);
  gd.widthHint=18;
  commonNodesLimitation.setLayoutData(gd);
  commonNodesLimitation.setText(String.valueOf(TreePopulator.getLimit()));
  labelLimitation.setToolTipText(MessageFormat.format(Messages.JSONLimitToolTip,commonNodesLimitation.getText()));
  commonNodesLimitation.addModifyListener(new ModifyListener(){
    @Override public void modifyText(    ModifyEvent e){
      String str=commonNodesLimitation.getText();
      if ((!str.matches("String_Node_Str")) || (Integer.valueOf(str) < 0)) {
        commonNodesLimitation.setText(String.valueOf(treePopulator.getLimit()));
        labelLimitation.setToolTipText(MessageFormat.format(Messages.JSONLimitToolTip,commonNodesLimitation.getText()));
        ;
      }
 else {
        limit=Integer.valueOf(str);
        labelLimitation.setToolTipText(MessageFormat.format(Messages.JSONLimitToolTip,limit));
      }
      String tempxml=null;
      if (tempJSONXsdPath != null && getConnection().getFileContent() != null && getConnection().getFileContent().length > 0) {
        tempxml=getFilePath4Populate(tempJSONXsdPath);
      }
 else {
        tempxml=getFilePath4Populate(fileFieldJSON.getText());
      }
      switchPopulator(JSONFileStep1Form.this.wizard.getReadbyMode(),tempxml);
      checkFieldsValue();
    }
  }
);
  commonNodesLimitation.addFocusListener(new FocusListener(){
    @Override public void focusGained(    FocusEvent e){
    }
    @Override public void focusLost(    FocusEvent e){
      commonNodesLimitation.setText(String.valueOf(TreePopulator.getLimit()));
      labelLimitation.setToolTipText(MessageFormat.format(Messages.JSONLimitToolTip,commonNodesLimitation.getText()));
    }
  }
);
  group=Form.createGroup(this,1,"String_Node_Str",220);
  Composite compositeFileViewer=Form.startNewDimensionnedGridLayout(group,1,WIDTH_GRIDDATA_PIXEL,220);
  GridData gridData=new GridData(GridData.FILL_BOTH);
  gridData.minimumWidth=WIDTH_GRIDDATA_PIXEL;
  availableJSONTree=new Tree(compositeFileViewer,SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
  availableJSONTree.setLayoutData(gridData);
  if (!isInWizard()) {
    Composite compositeBottomButton=Form.startNewGridLayout(this,2,false,SWT.CENTER,SWT.CENTER);
    cancelButton=new UtilsButton(compositeBottomButton,"String_Node_Str",WIDTH_BUTTON_PIXEL,HEIGHT_BUTTON_PIXEL);
  }
  addUtilsButtonListeners();
}