Program: 139912
Project: 139912
Buggy source:
private void addMouseListenerForChart(final ChartComposite chartComp,final IDataExplorer explorer,final Analysis analysis){
  chartComp.addChartMouseListener(new ChartMouseListener(){
    @SuppressWarnings("String_Node_Str") public void chartMouseClicked(    ChartMouseEvent event){
      boolean flag=event.getTrigger().getButton() != MouseEvent.BUTTON3;
      chartComp.setDomainZoomable(flag);
      chartComp.setRangeZoomable(flag);
      if (flag) {
        return;
      }
      ChartEntity chartEntity=event.getEntity();
      if (chartEntity != null) {
        CategoryItemEntity cateEntity=(CategoryItemEntity)chartEntity;
        ICustomerDataset dataEntity=(ICustomerDataset)cateEntity.getDataset();
        ChartDataEntity currentDataEntity=null;
        ChartDataEntity[] dataEntities=dataEntity.getDataEntities();
        if (dataEntities.length == 1) {
          currentDataEntity=dataEntities[0];
        }
 else {
          for (          ChartDataEntity entity : dataEntities) {
            if (cateEntity.getColumnKey().compareTo(entity.getLabel()) == 0) {
              currentDataEntity=entity;
            }
 else {
              if (cateEntity.getRowKey().compareTo(entity.getLabel()) == 0) {
                currentDataEntity=entity;
              }
            }
          }
        }
        if (currentDataEntity != null) {
          Menu menu=new Menu(chartComp.getShell(),SWT.POP_UP);
          chartComp.setMenu(menu);
          final Indicator currentIndicator=currentDataEntity.getIndicator();
          int createPatternFlag=0;
          MenuItemEntity[] itemEntities=ChartTableMenuGenerator.generate(explorer,analysis,currentDataEntity);
          for (          final MenuItemEntity itemEntity : itemEntities) {
            MenuItem item=new MenuItem(menu,SWT.PUSH);
            item.setText(itemEntity.getLabel());
            item.setImage(itemEntity.getIcon());
            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=itemEntity.getQuery();
                    String editorName=currentIndicator.getName();
                    CorePlugin.getDefault().runInDQViewer(tdDataProvider,query,editorName);
                  }
                }
);
              }
            }
);
            if ((currentIndicator instanceof PatternFreqIndicator || currentIndicator instanceof PatternLowFreqIndicator) && createPatternFlag == 0) {
              MenuItem itemCreatePatt=new MenuItem(menu,SWT.PUSH);
              itemCreatePatt.setText(DefaultMessagesImpl.getString("String_Node_Str"));
              final PatternTransformer pattTransformer=new PatternTransformer(DbmsLanguageFactory.createDbmsLanguage(analysis));
              itemCreatePatt.addSelectionListener(new SelectionAdapter(){
                @Override public void widgetSelected(                SelectionEvent e){
                  Display.getDefault().asyncExec(new Runnable(){
                    public void run(){
                      ChartTableFactory.createPattern(analysis,itemEntity,pattTransformer);
                    }
                  }
);
                }
              }
);
            }
            createPatternFlag++;
          }
          menu.setVisible(true);
        }
      }
    }
    public void chartMouseMoved(    ChartMouseEvent event){
    }
  }
);
}

Fixed version (ground truth):
private void addMouseListenerForChart(final ChartComposite chartComp,final IDataExplorer explorer,final Analysis analysis){
  chartComp.addChartMouseListener(new ChartMouseListener(){
    @SuppressWarnings("String_Node_Str") public void chartMouseClicked(    ChartMouseEvent event){
      boolean flag=event.getTrigger().getButton() != MouseEvent.BUTTON3;
      chartComp.setDomainZoomable(flag);
      chartComp.setRangeZoomable(flag);
      if (flag) {
        return;
      }
      ChartEntity chartEntity=event.getEntity();
      if (chartEntity != null && chartEntity instanceof CategoryItemEntity) {
        CategoryItemEntity cateEntity=(CategoryItemEntity)chartEntity;
        ICustomerDataset dataEntity=(ICustomerDataset)cateEntity.getDataset();
        ChartDataEntity currentDataEntity=null;
        ChartDataEntity[] dataEntities=dataEntity.getDataEntities();
        if (dataEntities.length == 1) {
          currentDataEntity=dataEntities[0];
        }
 else {
          for (          ChartDataEntity entity : dataEntities) {
            if (cateEntity.getColumnKey().compareTo(entity.getLabel()) == 0) {
              currentDataEntity=entity;
            }
 else {
              if (cateEntity.getRowKey().compareTo(entity.getLabel()) == 0) {
                currentDataEntity=entity;
              }
            }
          }
        }
        if (currentDataEntity != null) {
          Menu menu=new Menu(chartComp.getShell(),SWT.POP_UP);
          chartComp.setMenu(menu);
          final Indicator currentIndicator=currentDataEntity.getIndicator();
          int createPatternFlag=0;
          MenuItemEntity[] itemEntities=ChartTableMenuGenerator.generate(explorer,analysis,currentDataEntity);
          for (          final MenuItemEntity itemEntity : itemEntities) {
            MenuItem item=new MenuItem(menu,SWT.PUSH);
            item.setText(itemEntity.getLabel());
            item.setImage(itemEntity.getIcon());
            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=itemEntity.getQuery();
                    String editorName=currentIndicator.getName();
                    CorePlugin.getDefault().runInDQViewer(tdDataProvider,query,editorName);
                  }
                }
);
              }
            }
);
            if ((currentIndicator instanceof PatternFreqIndicator || currentIndicator instanceof PatternLowFreqIndicator) && createPatternFlag == 0) {
              MenuItem itemCreatePatt=new MenuItem(menu,SWT.PUSH);
              itemCreatePatt.setText(DefaultMessagesImpl.getString("String_Node_Str"));
              final PatternTransformer pattTransformer=new PatternTransformer(DbmsLanguageFactory.createDbmsLanguage(analysis));
              itemCreatePatt.addSelectionListener(new SelectionAdapter(){
                @Override public void widgetSelected(                SelectionEvent e){
                  Display.getDefault().asyncExec(new Runnable(){
                    public void run(){
                      ChartTableFactory.createPattern(analysis,itemEntity,pattTransformer);
                    }
                  }
);
                }
              }
);
            }
            createPatternFlag++;
          }
          menu.setVisible(true);
        }
      }
    }
    public void chartMouseMoved(    ChartMouseEvent event){
    }
  }
);
}