Program: 138496
Project: 138496
Buggy source:
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<ModelElement> nominalList=indicator.getNominalColumns();
      final String queryString=MultiColumnSetValueExplorer.getInstance().getQueryStirng(column,analysis,nominalList,seriesK,seriesLabel);
      MenuItem item=new MenuItem(menu,SWT.PUSH);
      item.setText(DefaultMessagesImpl.getString("String_Node_Str"));
      item.addSelectionListener(new SelectionAdapter(){
        @Override public void widgetSelected(        SelectionEvent e){
          Display.getDefault().asyncExec(new Runnable(){
            public void run(){
              Connection tdDataProvider=SwitchHelpers.CONNECTION_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<MetadataColumn> nominalList=indicator.getNominalColumns();
      final String queryString=MultiColumnSetValueExplorer.getInstance().getQueryStirng(column,analysis,nominalList,seriesK,seriesLabel);
      MenuItem item=new MenuItem(menu,SWT.PUSH);
      item.setText(DefaultMessagesImpl.getString("String_Node_Str"));
      item.addSelectionListener(new SelectionAdapter(){
        @Override public void widgetSelected(        SelectionEvent e){
          Display.getDefault().asyncExec(new Runnable(){
            public void run(){
              Connection tdDataProvider=SwitchHelpers.CONNECTION_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);
    }
  }
}