Program: 148637
Project: 148637
Buggy source:
public void widgetSelected(SelectionEvent e){
  MenuEntryDialog dlg=(MenuEntryDialog)((Widget)e.getSource()).getData("String_Node_Str");
  if (dlg.getReturnCode() == Window.OK) {
    String id=dlg.getIdText().getText();
    if ("String_Node_Str".equals(id)) {
      MessageDialog.openError(viewer.getControl().getShell(),"String_Node_Str","String_Node_Str");
      return;
    }
    LinkedHashMap<String,String> descriptions=((LinkedHashMap<String,String>)dlg.getDescriptionsTableViewer().getInput());
    if (descriptions.size() == 0) {
      MessageDialog.openError(viewer.getControl().getShell(),"String_Node_Str","String_Node_Str");
      return;
    }
    treeEntry.getWsMenuEntry().setId(id);
    treeEntry.getWsMenuEntry().setContext("String_Node_Str".equals(dlg.getContextText().getText()) ? null : dlg.getContextText().getText());
    treeEntry.getWsMenuEntry().setApplication("String_Node_Str".equals(dlg.getApplicationNameText().getText()) ? null : dlg.getApplicationNameText().getText());
    treeEntry.getWsMenuEntry().setIcon("String_Node_Str".equals(dlg.getIconPathText().getText()) ? null : dlg.getIconPathText().getText());
    WSMenuMenuEntriesDescriptions[] wsDescriptions=new WSMenuMenuEntriesDescriptions[descriptions.size()];
    Set<String> isoCodes=descriptions.keySet();
    int i=0;
    for (Iterator iter=isoCodes.iterator(); iter.hasNext(); ) {
      String isoCode=(String)iter.next();
      wsDescriptions[i]=new WSMenuMenuEntriesDescriptions();
      wsDescriptions[i].setLanguage(isoCode);
      wsDescriptions[i].setLabel(descriptions.get(isoCode));
      i++;
    }
    treeEntry.getWsMenuEntry().setDescriptions(wsDescriptions);
    viewer.setExpandedState(treeEntry,true);
    viewer.refresh(treeEntry,true);
    markDirty();
  }
  dlg.close();
}

Fixed version (ground truth):
public void widgetSelected(SelectionEvent e){
  MenuEntryDialog dlg=(MenuEntryDialog)((Widget)e.getSource()).getData("String_Node_Str");
  if (dlg.getReturnCode() == Window.OK) {
    String id=dlg.getIdText().getText();
    if ("String_Node_Str".equals(id)) {
      MessageDialog.openError(viewer.getControl().getShell(),"String_Node_Str","String_Node_Str");
      return;
    }
    LinkedHashMap<String,String> descriptions=((LinkedHashMap<String,String>)dlg.getDescriptionsTableViewer().getInput());
    if (descriptions.size() == 0) {
      MessageDialog.openError(viewer.getControl().getShell(),"String_Node_Str","String_Node_Str");
      return;
    }
    treeEntry.getWsMenuEntry().setId(id);
    treeEntry.getWsMenuEntry().setContext("String_Node_Str".equals(dlg.getContextText().getText()) ? null : dlg.getContextText().getText());
    treeEntry.getWsMenuEntry().setApplication("String_Node_Str".equals(dlg.getApplicationNameText().getText()) ? null : dlg.getApplicationNameText().getText());
    treeEntry.getWsMenuEntry().setIcon("String_Node_Str".equals(dlg.getIconPathText().getText()) ? null : dlg.getIconPathText().getText());
    WSMenuMenuEntriesDescriptions[] wsDescriptions=new WSMenuMenuEntriesDescriptions[descriptions.size()];
    Set<String> isoCodes=descriptions.keySet();
    int i=0;
    for (Iterator iter=isoCodes.iterator(); iter.hasNext(); ) {
      String isoCode=(String)iter.next();
      wsDescriptions[i]=new WSMenuMenuEntriesDescriptions();
      wsDescriptions[i].setLanguage(isoCode);
      wsDescriptions[i].setLabel(descriptions.get(isoCode));
      i++;
    }
    treeEntry.getWsMenuEntry().setDescriptions(wsDescriptions);
    viewer.setExpandedState(treeEntry,true);
    viewer.refresh(treeEntry,true);
    markDirtyWithoutCommit();
  }
  dlg.close();
}