Program: 136485
Project: 136485
Buggy source:
@Override public void addMouseListenerForConceptChart(Object chartComposite,final Map<String,Object> actionMap){
  final ChartComposite chartComp=(ChartComposite)chartComposite;
  ChartMouseListener listener=new ChartMouseListener(){
    @Override public void chartMouseClicked(    ChartMouseEvent event){
      boolean flag=event.getTrigger().getButton() == MouseEvent.BUTTON1;
      chartComp.setDomainZoomable(flag);
      chartComp.setRangeZoomable(flag);
      if (!flag) {
        return;
      }
      ChartEntity chartEntity=event.getEntity();
      if (chartEntity != null && chartEntity instanceof CategoryItemEntity) {
        CategoryItemEntity cateEntity=(CategoryItemEntity)chartEntity;
        Plot plot=event.getChart().getPlot();
        if (plot != null) {
          CustomConceptRenderer render=new CustomConceptRenderer(cateEntity.getCategoryIndex());
          render.setShadowVisible(false);
          render.setDrawBarOutline(false);
          ((CategoryPlot)plot).setRenderer(render);
        }
        Object action=getCurrentAction(cateEntity);
        Class<? extends Object> actionClass=action.getClass();
        try {
          Method actionRunMethod=actionClass.getDeclaredMethod("String_Node_Str");
          actionRunMethod.invoke(action);
        }
 catch (        NoSuchMethodException e) {
          log.error(e,e);
        }
catch (        SecurityException e) {
          log.error(e,e);
        }
catch (        IllegalAccessException e) {
          log.error(e,e);
        }
catch (        IllegalArgumentException e) {
          log.error(e,e);
        }
catch (        InvocationTargetException e) {
          log.error(e,e);
        }
      }
    }
    private Object getCurrentAction(    CategoryItemEntity cateEntity){
      return findCurrentAction(cateEntity.getColumnKey(),cateEntity.getRowKey());
    }
    /** 
 * Find current action
 * @param firstKey
 * @param secondKey
 * @return
 */
    private Object findCurrentAction(    final Object firstKey,    Object secondKey){
      Object action=actionMap.get(firstKey);
      if (action != null) {
        return action;
      }
      action=actionMap.get(secondKey);
      if (action != null) {
        return action;
      }
      return null;
    }
    @Override public void chartMouseMoved(    ChartMouseEvent event){
    }
  }
;
  chartComp.addChartMouseListener(listener);
  chartComp.addDisposeListener(new DisposeListener(){
    @Override public void widgetDisposed(    DisposeEvent e){
      chartComp.removeChartMouseListener(listener);
      chartComp.dispose();
    }
  }
);
}

Fixed version (ground truth):
@Override public void addMouseListenerForConceptChart(Object chartComposite,final Map<String,Object> actionMap){
  final ChartComposite chartComp=(ChartComposite)chartComposite;
  final ChartMouseListener listener=new ChartMouseListener(){
    @Override public void chartMouseClicked(    ChartMouseEvent event){
      boolean flag=event.getTrigger().getButton() == MouseEvent.BUTTON1;
      chartComp.setDomainZoomable(flag);
      chartComp.setRangeZoomable(flag);
      if (!flag) {
        return;
      }
      ChartEntity chartEntity=event.getEntity();
      if (chartEntity != null && chartEntity instanceof CategoryItemEntity) {
        CategoryItemEntity cateEntity=(CategoryItemEntity)chartEntity;
        Plot plot=event.getChart().getPlot();
        if (plot != null) {
          CustomConceptRenderer render=new CustomConceptRenderer(cateEntity.getCategoryIndex());
          render.setShadowVisible(false);
          render.setDrawBarOutline(false);
          ((CategoryPlot)plot).setRenderer(render);
        }
        Object action=getCurrentAction(cateEntity);
        Class<? extends Object> actionClass=action.getClass();
        try {
          Method actionRunMethod=actionClass.getDeclaredMethod("String_Node_Str");
          actionRunMethod.invoke(action);
        }
 catch (        NoSuchMethodException e) {
          log.error(e,e);
        }
catch (        SecurityException e) {
          log.error(e,e);
        }
catch (        IllegalAccessException e) {
          log.error(e,e);
        }
catch (        IllegalArgumentException e) {
          log.error(e,e);
        }
catch (        InvocationTargetException e) {
          log.error(e,e);
        }
      }
    }
    private Object getCurrentAction(    CategoryItemEntity cateEntity){
      return findCurrentAction(cateEntity.getColumnKey(),cateEntity.getRowKey());
    }
    /** 
 * Find current action
 * @param firstKey
 * @param secondKey
 * @return
 */
    private Object findCurrentAction(    final Object firstKey,    Object secondKey){
      Object action=actionMap.get(firstKey);
      if (action != null) {
        return action;
      }
      action=actionMap.get(secondKey);
      if (action != null) {
        return action;
      }
      return null;
    }
    @Override public void chartMouseMoved(    ChartMouseEvent event){
    }
  }
;
  chartComp.addChartMouseListener(listener);
  chartComp.addDisposeListener(new DisposeListener(){
    @Override public void widgetDisposed(    DisposeEvent e){
      chartComp.removeChartMouseListener(listener);
      chartComp.dispose();
    }
  }
);
}