Program: 65574
Project: 65574
Buggy source:
public void selectionChanged(SelectionChangedEvent event){
  if (event.getSource() instanceof ComboViewer) {
    this.setPageMessage(Messages.getString("String_Node_Str"),IMessageProvider.NONE);
    if (((ComboViewer)event.getSource()).equals(rightDataSetChooser))     leftSelected=false;
 else     leftSelected=true;
    DataSetHandle handle=(DataSetHandle)((IStructuredSelection)event.getSelection()).getFirstElement();
    if (leftSelected) {
      leftDataSetName=handle.getQualifiedName();
      leftHandle=handle;
    }
 else {
      rightDataSetName=handle.getQualifiedName();
      rightHandle=handle;
    }
    DataSetViewData[] columsItems=null;
    try {
      DataSessionContext context=new DataSessionContext(DataSessionContext.MODE_DIRECT_PRESENTATION,handle.getModuleHandle());
      DataRequestSession session=DataRequestSession.newSession(context);
      columsItems=DataSetProvider.getCurrentInstance().populateAllCachedMetaData(handle,session);
      populateColumns(columsItems);
      session.shutdown();
    }
 catch (    BirtException e) {
      ExceptionHandler.handle(e);
    }
  }
 else   if (event.getSource() instanceof ListViewer) {
    if (((ListViewer)event.getSource()).equals(rightColumnList))     leftSelected=false;
 else     leftSelected=true;
    DataSetViewData itemModel=(DataSetViewData)((IStructuredSelection)event.getSelection()).getFirstElement();
    if (leftSelected)     leftColumnSelection=itemModel.getName();
 else     rightColumnSelection=itemModel.getName();
  }
  if (!this.nameEditor.isDisposed())   setPageComplete(canPageComplete());
}

Fixed version (ground truth):
public void selectionChanged(SelectionChangedEvent event){
  selectionChanged=true;
  if (event.getSource() instanceof ComboViewer) {
    this.setPageMessage(Messages.getString("String_Node_Str"),IMessageProvider.NONE);
    if (((ComboViewer)event.getSource()).equals(rightDataSetChooser))     leftSelected=false;
 else     leftSelected=true;
    DataSetHandle handle=(DataSetHandle)((IStructuredSelection)event.getSelection()).getFirstElement();
    if (leftSelected) {
      leftDataSetName=handle.getQualifiedName();
      leftHandle=handle;
    }
 else {
      rightDataSetName=handle.getQualifiedName();
      rightHandle=handle;
    }
    DataSetViewData[] columsItems=null;
    try {
      DataSessionContext context=new DataSessionContext(DataSessionContext.MODE_DIRECT_PRESENTATION,handle.getModuleHandle());
      DataRequestSession session=DataRequestSession.newSession(context);
      columsItems=DataSetProvider.getCurrentInstance().populateAllCachedMetaData(handle,session);
      populateColumns(columsItems);
      session.shutdown();
    }
 catch (    BirtException e) {
      ExceptionHandler.handle(e);
    }
  }
 else   if (event.getSource() instanceof ListViewer) {
    if (((ListViewer)event.getSource()).equals(rightColumnList))     leftSelected=false;
 else     leftSelected=true;
    DataSetViewData itemModel=(DataSetViewData)((IStructuredSelection)event.getSelection()).getFirstElement();
    if (leftSelected)     leftColumnSelection=itemModel.getName();
 else     rightColumnSelection=itemModel.getName();
  }
  if (!this.nameEditor.isDisposed())   setPageComplete(canPageComplete());
}