Program: 138494
Project: 138494
Buggy source:
private void createBubbleOrGanttChart(final ScrolledForm form,final Composite composite,final ColumnSetMultiValueIndicator columnSetMultiValueIndicator){
  List<Composite> previewChartList=new ArrayList<Composite>();
  List<ModelElement> bubOrGanttColumnList=new ArrayList<ModelElement>();
  if (columnSetMultiValueIndicator instanceof CountAvgNullIndicator) {
    bubOrGanttColumnList=columnSetMultiValueIndicator.getNumericColumns();
  }
 else {
    bubOrGanttColumnList=columnSetMultiValueIndicator.getDateColumns();
  }
  for (  ModelElement column : bubOrGanttColumnList) {
    final ModelElement tdColumn=(ModelElement)column;
    final ExpandableComposite exComp=toolkit.createExpandableComposite(composite,ExpandableComposite.TREE_NODE | ExpandableComposite.CLIENT_INDENT);
    exComp.setText(DefaultMessagesImpl.getString("String_Node_Str",tdColumn.getName()));
    exComp.setLayout(new GridLayout());
    exComp.setData(columnSetMultiValueIndicator);
    previewChartList.add(exComp);
    final Composite comp=toolkit.createComposite(exComp);
    comp.setLayout(new GridLayout(2,false));
    comp.setLayoutData(new GridData(GridData.FILL_BOTH));
    if (tdColumn != null) {
      IRunnableWithProgress rwp=new IRunnableWithProgress(){
        public void run(        final IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
          monitor.beginTask(DefaultMessagesImpl.getString("String_Node_Str",tdColumn.getName()),IProgressMonitor.UNKNOWN);
          Display.getDefault().asyncExec(new Runnable(){
            public void run(){
              HideSeriesChartComposite hcc=new HideSeriesChartComposite(comp,getAnalysisHandler().getAnalysis(),columnSetMultiValueIndicator,tdColumn,true);
              GridData gd=new GridData();
              gd.widthHint=800;
              gd.heightHint=450;
              hcc.setLayoutData(gd);
            }
          }
);
          monitor.done();
        }
      }
;
      try {
        new ProgressMonitorDialog(getSite().getShell()).run(true,false,rwp);
      }
 catch (      Exception ex) {
        log.error(ex,ex);
      }
    }
    exComp.addExpansionListener(new ExpansionAdapter(){
      @Override public void expansionStateChanged(      ExpansionEvent e){
        getChartComposite().layout();
        form.reflow(true);
      }
    }
);
    exComp.setExpanded(true);
    exComp.setClient(comp);
  }
  if (!previewChartList.isEmpty()) {
    this.previewChartCompsites=previewChartList.toArray(new Composite[previewChartList.size()]);
  }
}

Fixed version (ground truth):
private void createBubbleOrGanttChart(final ScrolledForm form,final Composite composite,final ColumnSetMultiValueIndicator columnSetMultiValueIndicator){
  List<Composite> previewChartList=new ArrayList<Composite>();
  List<MetadataColumn> bubOrGanttColumnList=new ArrayList<MetadataColumn>();
  if (columnSetMultiValueIndicator instanceof CountAvgNullIndicator) {
    bubOrGanttColumnList=columnSetMultiValueIndicator.getNumericColumns();
  }
 else {
    bubOrGanttColumnList=columnSetMultiValueIndicator.getDateColumns();
  }
  for (  ModelElement column : bubOrGanttColumnList) {
    final MetadataColumn tdColumn=(MetadataColumn)column;
    final ExpandableComposite exComp=toolkit.createExpandableComposite(composite,ExpandableComposite.TREE_NODE | ExpandableComposite.CLIENT_INDENT);
    exComp.setText(DefaultMessagesImpl.getString("String_Node_Str",tdColumn.getName()));
    exComp.setLayout(new GridLayout());
    exComp.setData(columnSetMultiValueIndicator);
    previewChartList.add(exComp);
    final Composite comp=toolkit.createComposite(exComp);
    comp.setLayout(new GridLayout(2,false));
    comp.setLayoutData(new GridData(GridData.FILL_BOTH));
    if (tdColumn != null) {
      IRunnableWithProgress rwp=new IRunnableWithProgress(){
        public void run(        final IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
          monitor.beginTask(DefaultMessagesImpl.getString("String_Node_Str",tdColumn.getName()),IProgressMonitor.UNKNOWN);
          Display.getDefault().asyncExec(new Runnable(){
            public void run(){
              HideSeriesChartComposite hcc=new HideSeriesChartComposite(comp,getAnalysisHandler().getAnalysis(),columnSetMultiValueIndicator,tdColumn,true);
              GridData gd=new GridData();
              gd.widthHint=800;
              gd.heightHint=450;
              hcc.setLayoutData(gd);
            }
          }
);
          monitor.done();
        }
      }
;
      try {
        new ProgressMonitorDialog(getSite().getShell()).run(true,false,rwp);
      }
 catch (      Exception ex) {
        log.error(ex,ex);
      }
    }
    exComp.addExpansionListener(new ExpansionAdapter(){
      @Override public void expansionStateChanged(      ExpansionEvent e){
        getChartComposite().layout();
        form.reflow(true);
      }
    }
);
    exComp.setExpanded(true);
    exComp.setClient(comp);
  }
  if (!previewChartList.isEmpty()) {
    this.previewChartCompsites=previewChartList.toArray(new Composite[previewChartList.size()]);
  }
}