Program: 149158
Project: 149158
Buggy source:
private void createPlugin() throws Exception {
  Composite specsComposite=toolkit.createComposite(mainComposite,SWT.NONE);
  specsComposite.setLayoutData(new GridData(SWT.FILL,SWT.FILL,true,true,1,1));
  specsComposite.setLayout(new GridLayout(4,false));
  pluginDescription=toolkit.createText(specsComposite,"String_Node_Str",SWT.MULTI | SWT.WRAP);
  pluginDescription.setEditable(false);
  pluginDescription.setLayoutData(new GridData(SWT.FILL,SWT.FILL,true,false,4,2));
  ((GridData)pluginDescription.getLayoutData()).heightHint=35;
  Label jndiLabel=toolkit.createLabel(specsComposite,"String_Node_Str",SWT.NULL);
  jndiLabel.setLayoutData(new GridData(SWT.FILL,SWT.CENTER,false,false,1,1));
  pluginsCombo=new CCombo(specsComposite,SWT.DROP_DOWN | SWT.BORDER);
  pluginsCombo.addModifyListener(new ModifyListener(){
    public void modifyText(    ModifyEvent e){
      if (TransformerMainPage.this.refreshing)       return;
      String jndi=pluginsCombo.getText();
      String description=pluginDescriptions.get(jndi);
      pluginDescription.setText(description == null ? "String_Node_Str" : description);
      if (stepsList.getSelectionIndex() == -1)       return;
      if (!jndi.contains("String_Node_Str"))       jndi=TRANSFORMER_PLUGIN + jndi;
      transformer.getProcessSteps()[stepsList.getSelectionIndex()].setPluginJNDI(jndi);
      TransformerMainPage.this.comitting=false;
      markDirty();
    }
  }
);
  pluginsCombo.addSelectionListener(new SelectionAdapter(){
    public void widgetSelected(    SelectionEvent e){
      if (pluginsCombo.getText().equals(currentPluginName)) {
        return;
      }
      refreshCombo();
      inputViewer.setInput(new ArrayList<WSTransformerVariablesMapping>());
      outputViewer.setInput(new ArrayList<WSTransformerVariablesMapping>());
      String jndi=pluginsCombo.getText();
      String document=EInputTemplate.getXtentisObjexts().get(jndi).getContent();
      parametersTextViewer.setDocument(new Document(document));
    }
  }
);
  WSTransformerPluginV2SList list=port.getTransformerPluginV2SList(new WSGetTransformerPluginV2SList("String_Node_Str"));
  WSTransformerPluginV2SListItem[] items=list.getItem();
  if (items != null) {
    for (int i=0; i < items.length; i++) {
      pluginDescriptions.put(items[i].getJndiName(),items[i].getDescription());
    }
    Set<String> jndis=pluginDescriptions.keySet();
    for (Iterator<String> iterator=jndis.iterator(); iterator.hasNext(); ) {
      String jndi=iterator.next();
      pluginsCombo.add(jndi);
      WSTransformerPluginV2Details details=port.getTransformerPluginV2Details(new WSGetTransformerPluginV2Details(jndi.contains("String_Node_Str") ? jndi : TRANSFORMER_PLUGIN + jndi,"String_Node_Str"));
      java.util.List<String> input=new ArrayList<String>();
      for (      WSTransformerPluginV2VariableDescriptor v : details.getInputVariableDescriptors()) {
        input.add(v.getVariableName());
      }
      inputVariablesMap.put(jndi,input);
      java.util.List<String> output=new ArrayList<String>();
      for (      WSTransformerPluginV2VariableDescriptor v : details.getOutputVariableDescriptors()) {
        output.add(v.getVariableName());
      }
      outputVariablesMap.put(jndi,output);
    }
  }
  Button detailsButton=toolkit.createButton(specsComposite,"String_Node_Str",SWT.PUSH | SWT.CENTER);
  detailsButton.setImage(ImageCache.getCreatedImage(EImage.HELP_CONTENTS.getPath()));
  detailsButton.setToolTipText("String_Node_Str");
  detailsButton.setLayoutData(new GridData(SWT.FILL,SWT.CENTER,false,false,1,1));
  detailsButton.addSelectionListener(new SelectionListener(){
    public void widgetDefaultSelected(    org.eclipse.swt.events.SelectionEvent e){
    }
    public void widgetSelected(    org.eclipse.swt.events.SelectionEvent e){
      try {
        String jndi;
        jndi=pluginsCombo.getText();
        if (jndi.length() == 0)         return;
        WSTransformerPluginV2Details details=port.getTransformerPluginV2Details(new WSGetTransformerPluginV2Details(jndi.contains("String_Node_Str") ? jndi : TRANSFORMER_PLUGIN + jndi,"String_Node_Str"));
        final PluginDetailsDialog dialog=new PluginDetailsDialog(getSite().getShell(),details.getDescription(),details.getDocumentation(),details.getParametersSchema());
        dialog.addListener(new Listener(){
          public void handleEvent(          Event event){
            dialog.close();
          }
        }
);
        dialog.setBlockOnOpen(true);
        dialog.open();
      }
 catch (      Exception ex) {
        String jndi;
        jndi=pluginsCombo.getText();
        MessageDialog.openError(getSite().getShell(),"String_Node_Str" + jndi,"String_Node_Str" + jndi + "String_Node_Str");
        return;
      }
    }
  }
);
}

Fixed version (ground truth):
private void createPlugin() throws Exception {
  Composite specsComposite=toolkit.createComposite(mainComposite,SWT.NONE);
  specsComposite.setLayoutData(new GridData(SWT.FILL,SWT.FILL,true,true,1,1));
  specsComposite.setLayout(new GridLayout(4,false));
  pluginDescription=toolkit.createText(specsComposite,"String_Node_Str",SWT.MULTI | SWT.WRAP);
  pluginDescription.setEditable(false);
  pluginDescription.setLayoutData(new GridData(SWT.FILL,SWT.FILL,true,false,4,2));
  ((GridData)pluginDescription.getLayoutData()).heightHint=35;
  Label jndiLabel=toolkit.createLabel(specsComposite,"String_Node_Str",SWT.NULL);
  jndiLabel.setLayoutData(new GridData(SWT.FILL,SWT.CENTER,false,false,1,1));
  pluginsCombo=new CCombo(specsComposite,SWT.BORDER | SWT.READ_ONLY);
  pluginsCombo.addSelectionListener(new SelectionAdapter(){
    public void widgetSelected(    SelectionEvent e){
      if (pluginsCombo.getText().equals(currentPluginName)) {
        return;
      }
      refreshCombo();
      if (stepsList.getSelectionIndex() >= 0 && stepsList.getSelectionIndex() < transformer.getProcessSteps().length)       transformer.getProcessSteps()[stepsList.getSelectionIndex()].setPluginJNDI(TRANSFORMER_PLUGIN + pluginsCombo.getText());
      inputViewer.setInput(new ArrayList<WSTransformerVariablesMapping>());
      outputViewer.setInput(new ArrayList<WSTransformerVariablesMapping>());
      String jndi=pluginsCombo.getText();
      String document=EInputTemplate.getXtentisObjexts().get(jndi).getContent();
      parametersTextViewer.setDocument(new Document(document));
    }
  }
);
  WSTransformerPluginV2SList list=port.getTransformerPluginV2SList(new WSGetTransformerPluginV2SList("String_Node_Str"));
  WSTransformerPluginV2SListItem[] items=list.getItem();
  if (items != null) {
    for (int i=0; i < items.length; i++) {
      pluginDescriptions.put(items[i].getJndiName(),items[i].getDescription());
    }
    Set<String> jndis=pluginDescriptions.keySet();
    for (Iterator<String> iterator=jndis.iterator(); iterator.hasNext(); ) {
      String jndi=iterator.next();
      pluginsCombo.add(jndi);
      WSTransformerPluginV2Details details=port.getTransformerPluginV2Details(new WSGetTransformerPluginV2Details(jndi.contains("String_Node_Str") ? jndi : TRANSFORMER_PLUGIN + jndi,"String_Node_Str"));
      java.util.List<String> input=new ArrayList<String>();
      for (      WSTransformerPluginV2VariableDescriptor v : details.getInputVariableDescriptors()) {
        input.add(v.getVariableName());
      }
      inputVariablesMap.put(jndi,input);
      java.util.List<String> output=new ArrayList<String>();
      for (      WSTransformerPluginV2VariableDescriptor v : details.getOutputVariableDescriptors()) {
        output.add(v.getVariableName());
      }
      outputVariablesMap.put(jndi,output);
    }
  }
  Button detailsButton=toolkit.createButton(specsComposite,"String_Node_Str",SWT.PUSH | SWT.CENTER);
  detailsButton.setImage(ImageCache.getCreatedImage(EImage.HELP_CONTENTS.getPath()));
  detailsButton.setToolTipText("String_Node_Str");
  detailsButton.setLayoutData(new GridData(SWT.FILL,SWT.CENTER,false,false,1,1));
  detailsButton.addSelectionListener(new SelectionListener(){
    public void widgetDefaultSelected(    org.eclipse.swt.events.SelectionEvent e){
    }
    public void widgetSelected(    org.eclipse.swt.events.SelectionEvent e){
      try {
        String jndi;
        jndi=pluginsCombo.getText();
        if (jndi.length() == 0)         return;
        WSTransformerPluginV2Details details=port.getTransformerPluginV2Details(new WSGetTransformerPluginV2Details(jndi.contains("String_Node_Str") ? jndi : TRANSFORMER_PLUGIN + jndi,"String_Node_Str"));
        final PluginDetailsDialog dialog=new PluginDetailsDialog(getSite().getShell(),details.getDescription(),details.getDocumentation(),details.getParametersSchema());
        dialog.addListener(new Listener(){
          public void handleEvent(          Event event){
            dialog.close();
          }
        }
);
        dialog.setBlockOnOpen(true);
        dialog.open();
      }
 catch (      Exception ex) {
        String jndi;
        jndi=pluginsCombo.getText();
        MessageDialog.openError(getSite().getShell(),"String_Node_Str" + jndi,"String_Node_Str" + jndi + "String_Node_Str");
        return;
      }
    }
  }
);
}