Program: 126139
Project: 126139
Buggy source:
@Override protected void addFieldsListeners(){
  if (LanguageManager.getCurrentLanguage().equals(ECodeLanguage.JAVA)) {
    addJavaFieldsListeners();
  }
 else   if (LanguageManager.getCurrentLanguage().equals(ECodeLanguage.PERL)) {
    addPerlFieldsListeners();
  }
  wsdlText.addModifyListener(new ModifyListener(){
    @Override public void modifyText(    ModifyEvent e){
      if (!isContextMode()) {
        checkFieldsValue();
        getConnection().setWSDL(wsdlText.getText());
        if (methodText.getText() != null && !methodText.getText().equals("String_Node_Str")) {
          updateStatus(IStatus.OK,null);
        }
      }
    }
  }
);
  methodText.addModifyListener(new ModifyListener(){
    @Override public void modifyText(    ModifyEvent e){
      if (!isContextMode()) {
        checkFieldsValue();
        getConnection().setMethodName(methodText.getText());
        if (wsdlText.getText() != null && !wsdlText.getText().equals("String_Node_Str")) {
          updateStatus(IStatus.OK,null);
        }
      }
    }
  }
);
  buttonAdd.addMouseListener(new MouseAdapter(){
    @Override public void mouseUp(    MouseEvent e){
      String unName="String_Node_Str";
      ArrayList hashmap=getConnection().getParameters();
      if (hashmap == null) {
        hashmap=new ArrayList();
      }
      hashmap.add(unName + hashmap.size());
      getConnection().setParameters(hashmap);
      valueTableViewer.setInput(hashmap);
      valueTableViewer.refresh();
    }
  }
);
  buttonRemove.addMouseListener(new MouseAdapter(){
    @Override public void mouseUp(    MouseEvent e){
      ISelection selection=valueTableViewer.getSelection();
      ArrayList hashmap=getConnection().getParameters();
      if (!selection.isEmpty() && selection instanceof StructuredSelection) {
        Object[] vars=((StructuredSelection)selection).toArray();
        for (        Object var : vars) {
          hashmap.remove(var);
          valueTableViewer.refresh();
        }
      }
 else       if (!hashmap.isEmpty()) {
        hashmap.remove(hashmap.size() - 1);
        valueTableViewer.refresh();
      }
      getConnection().setParameters(hashmap);
    }
  }
);
  previewButton.addSelectionListener(new SelectionAdapter(){
    @Override public void widgetSelected(    final SelectionEvent e){
      refreshPreview();
      updateStatus(IStatus.OK,null);
    }
  }
);
}

Fixed version (ground truth):
@Override protected void addFieldsListeners(){
  if (LanguageManager.getCurrentLanguage().equals(ECodeLanguage.JAVA)) {
    addJavaFieldsListeners();
  }
 else   if (LanguageManager.getCurrentLanguage().equals(ECodeLanguage.PERL)) {
    addPerlFieldsListeners();
  }
  wsdlText.addModifyListener(new ModifyListener(){
    @Override public void modifyText(    ModifyEvent e){
      if (!isContextMode()) {
        boolean noError=checkFieldsValue();
        getConnection().setWSDL(wsdlText.getText());
        if (noError && methodText.getText() != null && !methodText.getText().equals("String_Node_Str")) {
          updateStatus(IStatus.OK,null);
        }
      }
    }
  }
);
  methodText.addModifyListener(new ModifyListener(){
    @Override public void modifyText(    ModifyEvent e){
      if (!isContextMode()) {
        boolean noError=checkFieldsValue();
        getConnection().setMethodName(methodText.getText());
        if (noError && wsdlText.getText() != null && !wsdlText.getText().equals("String_Node_Str")) {
          updateStatus(IStatus.OK,null);
        }
      }
    }
  }
);
  buttonAdd.addMouseListener(new MouseAdapter(){
    @Override public void mouseUp(    MouseEvent e){
      String unName="String_Node_Str";
      ArrayList hashmap=getConnection().getParameters();
      if (hashmap == null) {
        hashmap=new ArrayList();
      }
      hashmap.add(unName + hashmap.size());
      getConnection().setParameters(hashmap);
      valueTableViewer.setInput(hashmap);
      valueTableViewer.refresh();
    }
  }
);
  buttonRemove.addMouseListener(new MouseAdapter(){
    @Override public void mouseUp(    MouseEvent e){
      ISelection selection=valueTableViewer.getSelection();
      ArrayList hashmap=getConnection().getParameters();
      if (!selection.isEmpty() && selection instanceof StructuredSelection) {
        Object[] vars=((StructuredSelection)selection).toArray();
        for (        Object var : vars) {
          hashmap.remove(var);
          valueTableViewer.refresh();
        }
      }
 else       if (!hashmap.isEmpty()) {
        hashmap.remove(hashmap.size() - 1);
        valueTableViewer.refresh();
      }
      getConnection().setParameters(hashmap);
    }
  }
);
  previewButton.addSelectionListener(new SelectionAdapter(){
    @Override public void widgetSelected(    final SelectionEvent e){
      refreshPreview();
    }
  }
);
}