Program: 140027
Project: 140027
Buggy source:
public void createPreviewCharts(final ScrolledForm form,final Composite composite,final boolean isCreate){
  previewChartList=new ArrayList<ExpandableComposite>();
  for (  final ColumnIndicator columnIndicator : this.treeViewer.getColumnIndicator()) {
    final TdColumn column=columnIndicator.getTdColumn();
    ExpandableComposite exComp=toolkit.createExpandableComposite(composite,ExpandableComposite.TREE_NODE | ExpandableComposite.CLIENT_INDENT);
    exComp.setText(DefaultMessagesImpl.getString("String_Node_Str") + column.getName());
    exComp.setLayout(new GridLayout());
    exComp.setLayoutData(new GridData(GridData.FILL_BOTH));
    exComp.setData(columnIndicator);
    previewChartList.add(exComp);
    final Composite comp=toolkit.createComposite(exComp);
    comp.setLayout(new GridLayout());
    comp.setLayoutData(new GridData(GridData.FILL_BOTH));
    if (columnIndicator.getIndicators().length != 0) {
      IRunnableWithProgress rwp=new IRunnableWithProgress(){
        public void run(        final IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
          monitor.beginTask(DefaultMessagesImpl.getString("String_Node_Str") + column.getName(),IProgressMonitor.UNKNOWN);
          Display.getDefault().syncExec(new Runnable(){
            public void run(){
              Map<EIndicatorChartType,List<IndicatorUnit>> indicatorComposite=CompositeIndicator.getInstance().getIndicatorComposite(columnIndicator);
              for (              EIndicatorChartType chartType : indicatorComposite.keySet()) {
                List<IndicatorUnit> units=indicatorComposite.get(chartType);
                if (!units.isEmpty()) {
                  IChartTypeStates chartTypeState=ChartTypeStatesOperator.getChartState(chartType,units);
                  JFreeChart chart=chartTypeState.getFeatChart();
                  if (chart != null) {
                    ChartComposite cc=new ChartComposite(comp,SWT.NONE,chart,true);
                    GridData gd=new GridData();
                    gd.widthHint=550;
                    gd.heightHint=250;
                    cc.setLayoutData(gd);
                  }
                }
              }
            }
          }
);
          monitor.done();
        }
      }
;
      try {
        new ProgressMonitorDialog(getSite().getShell()).run(true,false,rwp);
      }
 catch (      Exception ex) {
        ex.printStackTrace();
      }
    }
    exComp.addExpansionListener(new ExpansionAdapter(){
      @Override public void expansionStateChanged(      ExpansionEvent e){
        getChartComposite().layout();
        form.reflow(true);
        composite.pack();
      }
    }
);
    exComp.setExpanded(true);
    exComp.setClient(comp);
  }
  if (!previewChartList.isEmpty()) {
    this.previewChartCompsites=previewChartList.toArray(new Composite[previewChartList.size()]);
  }
}

Fixed version (ground truth):
public void createPreviewCharts(final ScrolledForm form,final Composite composite,final boolean isCreate){
  previewChartList=new ArrayList<ExpandableComposite>();
  for (  final ColumnIndicator columnIndicator : this.treeViewer.getColumnIndicator()) {
    final TdColumn column=columnIndicator.getTdColumn();
    ExpandableComposite exComp=toolkit.createExpandableComposite(composite,ExpandableComposite.TREE_NODE | ExpandableComposite.CLIENT_INDENT);
    exComp.setText(DefaultMessagesImpl.getString("String_Node_Str") + column.getName());
    exComp.setLayout(new GridLayout());
    exComp.setLayoutData(new GridData(GridData.FILL_BOTH));
    exComp.setData(columnIndicator);
    previewChartList.add(exComp);
    final Composite comp=toolkit.createComposite(exComp);
    comp.setLayout(new GridLayout());
    comp.setLayoutData(new GridData(GridData.FILL_BOTH));
    if (columnIndicator.getIndicators().length != 0) {
      IRunnableWithProgress rwp=new IRunnableWithProgress(){
        public void run(        final IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
          monitor.beginTask(DefaultMessagesImpl.getString("String_Node_Str") + column.getName(),IProgressMonitor.UNKNOWN);
          Display.getDefault().syncExec(new Runnable(){
            public void run(){
              Map<EIndicatorChartType,List<IndicatorUnit>> indicatorComposite=CompositeIndicator.getInstance().getIndicatorComposite(columnIndicator);
              for (              EIndicatorChartType chartType : indicatorComposite.keySet()) {
                List<IndicatorUnit> units=indicatorComposite.get(chartType);
                if (!units.isEmpty()) {
                  final IChartTypeStates chartTypeState=ChartTypeStatesOperator.getChartState(chartType,units);
                  JFreeChart chart=chartTypeState.getFeatChart();
                  if (chart != null) {
                    final ChartComposite chartComp=new ChartComposite(comp,SWT.NONE,chart,true);
                    GridData gd=new GridData();
                    gd.widthHint=550;
                    gd.heightHint=250;
                    chartComp.setLayoutData(gd);
                    addListenerToChartComp(chartComp,chartTypeState);
                  }
                }
              }
            }
          }
);
          monitor.done();
        }
      }
;
      try {
        new ProgressMonitorDialog(getSite().getShell()).run(true,false,rwp);
      }
 catch (      Exception ex) {
        ex.printStackTrace();
      }
    }
    exComp.addExpansionListener(new ExpansionAdapter(){
      @Override public void expansionStateChanged(      ExpansionEvent e){
        getChartComposite().layout();
        form.reflow(true);
        composite.pack();
      }
    }
);
    exComp.setExpanded(true);
    exComp.setClient(comp);
  }
  if (!previewChartList.isEmpty()) {
    this.previewChartCompsites=previewChartList.toArray(new Composite[previewChartList.size()]);
  }
}