Program: 139917
Project: 139917
Buggy source:
private void addMenuOnBubbleChart(ChartEntity chartEntity,Menu menu){
  XYItemEntity xyItemEntity=(XYItemEntity)chartEntity;
  DefaultXYZDataset xyzDataSet=(DefaultXYZDataset)xyItemEntity.getDataset();
  int ind=xyItemEntity.getSeriesIndex();
  final Comparable<?> seriesKey=xyzDataSet.getSeriesKey(xyItemEntity.getSeriesIndex());
  final String seriesK=String.valueOf(seriesKey);
  try {
    final Map<String,ValueAggregator> createXYZDatasets=ChartDatasetUtils.createXYZDatasets(indicator,column);
    final ValueAggregator valueAggregator=createXYZDatasets.get(seriesKey);
    valueAggregator.addSeriesToXYZDataset(xyzDataSet,seriesK);
    String seriesLabel=valueAggregator.getLabels(seriesK).get(xyItemEntity.getItem());
    EList<Column> nominalList=indicator.getNominalColumns();
    final String queryString=MultiColumnSetValueExplorer.getInstance().getQueryStirng(column,analysis,nominalList,seriesK,seriesLabel);
    MenuItem item=new MenuItem(menu,SWT.PUSH);
    item.setText("String_Node_Str");
    item.addSelectionListener(new SelectionAdapter(){
      @Override public void widgetSelected(      SelectionEvent e){
        Display.getDefault().asyncExec(new Runnable(){
          public void run(){
            TdDataProvider tdDataProvider=SwitchHelpers.TDDATAPROVIDER_SWITCH.doSwitch(analysis.getContext().getConnection());
            String query=queryString;
            String editorName=ColumnHelper.getColumnSetOwner(column).getName();
            CorePlugin.getDefault().runInDQViewer(tdDataProvider,query,editorName);
          }
        }
);
      }
    }
);
  }
 catch (  Throwable e) {
    log.error(e,e);
  }
}

Fixed version (ground truth):
private void addMenuOnBubbleChart(ChartEntity chartEntity,Menu menu){
  if (chartEntity instanceof XYItemEntity) {
    XYItemEntity xyItemEntity=(XYItemEntity)chartEntity;
    DefaultXYZDataset xyzDataSet=(DefaultXYZDataset)xyItemEntity.getDataset();
    final Comparable<?> seriesKey=xyzDataSet.getSeriesKey(xyItemEntity.getSeriesIndex());
    final String seriesK=String.valueOf(seriesKey);
    try {
      final Map<String,ValueAggregator> createXYZDatasets=ChartDatasetUtils.createXYZDatasets(indicator,column);
      final ValueAggregator valueAggregator=createXYZDatasets.get(seriesKey);
      valueAggregator.addSeriesToXYZDataset(xyzDataSet,seriesK);
      String seriesLabel=valueAggregator.getLabels(seriesK).get(xyItemEntity.getItem());
      EList<Column> nominalList=indicator.getNominalColumns();
      final String queryString=MultiColumnSetValueExplorer.getInstance().getQueryStirng(column,analysis,nominalList,seriesK,seriesLabel);
      MenuItem item=new MenuItem(menu,SWT.PUSH);
      item.setText("String_Node_Str");
      item.addSelectionListener(new SelectionAdapter(){
        @Override public void widgetSelected(        SelectionEvent e){
          Display.getDefault().asyncExec(new Runnable(){
            public void run(){
              TdDataProvider tdDataProvider=SwitchHelpers.TDDATAPROVIDER_SWITCH.doSwitch(analysis.getContext().getConnection());
              String query=queryString;
              String editorName=ColumnHelper.getColumnSetOwner(column).getName();
              CorePlugin.getDefault().runInDQViewer(tdDataProvider,query,editorName);
            }
          }
);
        }
      }
);
    }
 catch (    Throwable e) {
      log.error(e,e);
    }
  }
}