Program: 127187
Project: 127187
Buggy source:
protected void addListeners(){
  installAllBtn.addSelectionListener(new SelectionAdapter(){
    @Override public void widgetSelected(    SelectionEvent e){
      List<ModuleToInstall> toInstall=getModulesToBeInstalled();
      final DownloadModuleJob job=new DownloadModuleJob(toInstall);
      job.addJobChangeListener(new JobChangeAdapter(){
        @Override public void done(        final IJobChangeEvent event){
          Display.getDefault().asyncExec(new Runnable(){
            @Override public void run(){
              if (event.getJob() instanceof DownloadModuleJob) {
                DownloadModuleJob theJob=(DownloadModuleJob)event.getJob();
                Set<String> downloadFialed=theJob.getDownloadFailed();
                Set<String> installedModule=theJob.getInstalledModule();
                jarsInstalledSuccuss.addAll(installedModule);
                int installedModules=installedModule.size();
                String success=installedModules + Messages.getString("String_Node_Str");
                String message=success;
                if (!downloadFialed.isEmpty()) {
                  String fail=Messages.getString("String_Node_Str");
                  String names="String_Node_Str";
                  for (                  String name : downloadFialed) {
                    if (names.length() > 0) {
                      names+="String_Node_Str" + name;
                    }
 else {
                      names+=name;
                    }
                  }
                  message=message + fail + names;
                }
                MessageDialog.openInformation(getShell(),Messages.getString("String_Node_Str"),message);
                if (installedModules > 0) {
                  emptyLibs();
                }
              }
            }
          }
);
        }
      }
);
      job.setUser(true);
      job.setPriority(Job.INTERACTIVE);
      job.schedule();
      close();
    }
  }
);
}

Fixed version (ground truth):
protected void addListeners(){
  installAllBtn.addSelectionListener(new SelectionAdapter(){
    @Override public void widgetSelected(    SelectionEvent e){
      List<ModuleToInstall> toInstall=getModulesToBeInstalled();
      final DownloadModuleJob job=new DownloadModuleJob(toInstall);
      job.addJobChangeListener(new JobChangeAdapter(){
        @Override public void done(        final IJobChangeEvent event){
          Display.getDefault().asyncExec(new Runnable(){
            @Override public void run(){
              if (event.getJob() instanceof DownloadModuleJob) {
                DownloadModuleJob theJob=(DownloadModuleJob)event.getJob();
                Set<String> downloadFialed=theJob.getDownloadFailed();
                Set<String> installedModule=theJob.getInstalledModule();
                jarsInstalledSuccuss.addAll(installedModule);
                int installedModules=installedModule.size();
                String success=installedModules + Messages.getString("String_Node_Str");
                String message=success;
                if (!downloadFialed.isEmpty()) {
                  String fail=Messages.getString("String_Node_Str");
                  String names="String_Node_Str";
                  for (                  String name : downloadFialed) {
                    if (names.length() > 0) {
                      names+="String_Node_Str" + name;
                    }
 else {
                      names+=name;
                    }
                  }
                  message=message + fail + names;
                }
                MessageDialog.openInformation(getShell(),Messages.getString("String_Node_Str"),message);
                if (installedModules > 0) {
                  emptyLibs();
                }
                if (GlobalServiceRegister.getDefault().isServiceRegistered(IDesignerCoreService.class)) {
                  IDesignerCoreService service=(IDesignerCoreService)GlobalServiceRegister.getDefault().getService(IDesignerCoreService.class);
                  if (service != null) {
                    service.refreshComponentView();
                  }
                }
              }
            }
          }
);
        }
      }
);
      job.setUser(true);
      job.setPriority(Job.INTERACTIVE);
      job.schedule();
      close();
    }
  }
);
}