Program: 7870
Project: 7870
Buggy source:
/** 
 * Create the checkbox list for the found projects.
 * @param workArea
 */
private void createProjectsList(Composite workArea){
  checkedItems.clear();
  Label title=new Label(workArea,SWT.NONE);
  title.setText(UIText.WizardProjectsImportPage_ProjectsListTitle);
  Composite listComposite=new Composite(workArea,SWT.NONE);
  GridLayout layout=new GridLayout();
  layout.numColumns=2;
  layout.marginWidth=0;
  layout.makeColumnsEqualWidth=false;
  listComposite.setLayout(layout);
  listComposite.setLayoutData(new GridData(GridData.GRAB_HORIZONTAL | GridData.GRAB_VERTICAL | GridData.FILL_BOTH));
  PatternFilter filter=new PatternFilter(){
    @Override public boolean isElementVisible(    Viewer viewer,    Object element){
      if (checkedItems.contains(element)) {
        return true;
      }
      return super.isElementVisible(viewer,element);
    }
  }
;
  FilteredTree filteredTree=new FilteredTree(listComposite,SWT.CHECK | SWT.BORDER,filter);
  filteredTree.setInitialText(UIText.WizardProjectsImportPage_filterText);
  projectsList=filteredTree.getViewer();
  GridData listData=new GridData(GridData.GRAB_HORIZONTAL | GridData.GRAB_VERTICAL | GridData.FILL_BOTH);
  projectsList.getControl().setLayoutData(listData);
  projectsList.setContentProvider(new ITreeContentProvider(){
    public Object[] getChildren(    Object parentElement){
      return null;
    }
    public Object[] getElements(    Object inputElement){
      return getValidProjects();
    }
    public boolean hasChildren(    Object element){
      return false;
    }
    public Object getParent(    Object element){
      return null;
    }
    public void dispose(){
    }
    public void inputChanged(    Viewer viewer,    Object oldInput,    Object newInput){
    }
  }
);
  projectsList.getTree().addMouseListener(new MouseAdapter(){
    @Override public void mouseUp(    MouseEvent e){
      if (e.widget instanceof Tree) {
        TreeItem item=((Tree)e.widget).getItem(new Point(e.x,e.y));
        if (item != null) {
          if (item.getChecked())           checkedItems.add(item.getData());
 else           checkedItems.remove(item.getData());
          setPageComplete(!checkedItems.isEmpty());
        }
      }
    }
  }
);
  projectsList.setLabelProvider(new LabelProvider(){
    public String getText(    Object element){
      for (      final TreeItem item : projectsList.getTree().getItems()) {
        if (checkedItems.contains(item.getData()))         item.setChecked(true);
 else         item.setChecked(false);
      }
      return ((ProjectRecord)element).getProjectLabel();
    }
  }
);
  projectsList.setInput(this);
  projectsList.setComparator(new ViewerComparator());
  createSelectionButtons(listComposite);
}

Fixed version (ground truth):
/** 
 * Create the checkbox list for the found projects.
 * @param workArea
 */
private void createProjectsList(Composite workArea){
  checkedItems.clear();
  Label title=new Label(workArea,SWT.NONE);
  title.setText(UIText.WizardProjectsImportPage_ProjectsListTitle);
  Composite listComposite=new Composite(workArea,SWT.NONE);
  GridLayout layout=new GridLayout();
  layout.numColumns=2;
  layout.marginWidth=0;
  layout.makeColumnsEqualWidth=false;
  listComposite.setLayout(layout);
  listComposite.setLayoutData(new GridData(GridData.GRAB_HORIZONTAL | GridData.GRAB_VERTICAL | GridData.FILL_BOTH));
  PatternFilter filter=new PatternFilter(){
    @Override public boolean isElementVisible(    Viewer viewer,    Object element){
      if (checkedItems.contains(element)) {
        return true;
      }
      return super.isElementVisible(viewer,element);
    }
    @Override public void setPattern(    String patternString){
      super.setPattern(patternString);
      Display.getDefault().asyncExec(new Runnable(){
        public void run(){
          enableSelectAllButtons();
        }
      }
);
    }
  }
;
  FilteredTree filteredTree=new FilteredTree(listComposite,SWT.CHECK | SWT.BORDER,filter);
  filteredTree.setInitialText(UIText.WizardProjectsImportPage_filterText);
  projectsList=filteredTree.getViewer();
  GridData listData=new GridData(GridData.GRAB_HORIZONTAL | GridData.GRAB_VERTICAL | GridData.FILL_BOTH);
  projectsList.getControl().setLayoutData(listData);
  projectsList.setContentProvider(new ITreeContentProvider(){
    public Object[] getChildren(    Object parentElement){
      return null;
    }
    public Object[] getElements(    Object inputElement){
      return getValidProjects();
    }
    public boolean hasChildren(    Object element){
      return false;
    }
    public Object getParent(    Object element){
      return null;
    }
    public void dispose(){
    }
    public void inputChanged(    Viewer viewer,    Object oldInput,    Object newInput){
    }
  }
);
  projectsList.getTree().addMouseListener(new MouseAdapter(){
    @Override public void mouseUp(    MouseEvent e){
      if (e.widget instanceof Tree) {
        TreeItem item=((Tree)e.widget).getItem(new Point(e.x,e.y));
        if (item != null) {
          if (item.getChecked())           checkedItems.add(item.getData());
 else           checkedItems.remove(item.getData());
          setPageComplete(!checkedItems.isEmpty());
        }
      }
    }
  }
);
  projectsList.setLabelProvider(new LabelProvider(){
    public String getText(    Object element){
      for (      final TreeItem item : projectsList.getTree().getItems()) {
        if (checkedItems.contains(item.getData()))         item.setChecked(true);
 else         item.setChecked(false);
      }
      return ((ProjectRecord)element).getProjectLabel();
    }
  }
);
  projectsList.setInput(this);
  projectsList.setComparator(new ViewerComparator());
  createSelectionButtons(listComposite);
}