Program: 108468
Project: 108468
Buggy source:
@Override public void reset(){
  if (chart != null) {
    chart.dispose();
  }
  chart=new Chart(parent,SWT.NONE);
  chart.setOrientation(SWT.HORIZONTAL);
  chart.addControlListener(new ControlAdapter(){
    @Override public void controlResized(    ControlEvent arg0){
      updateCategories();
    }
  }
);
  chart.getPlotArea().addListener(SWT.MouseMove,new Listener(){
    @Override public void handleEvent(    Event event){
      IAxisSet axisSet=chart.getAxisSet();
      if (axisSet != null) {
        IAxis xAxis=axisSet.getXAxis(0);
        if (xAxis != null) {
          String[] series=xAxis.getCategorySeries();
          ISeries[] data=chart.getSeriesSet().getSeries();
          if (data != null && data.length > 0 && series != null) {
            int x=(int)Math.round(xAxis.getDataCoordinate(event.x));
            if (x >= 0 && x <= series.length) {
              chart.getPlotArea().setToolTipText("String_Node_Str" + series[x] + "String_Node_Str"+ data[0].getYSeries()[x]+ "String_Node_Str");
              return;
            }
          }
        }
      }
      chart.getPlotArea().setToolTipText(null);
    }
  }
);
  FontData[] fd=chart.getFont().getFontData();
  fd[0].setHeight(8);
  chart.setFont(new Font(chart.getDisplay(),fd[0]));
  ITitle graphTitle=chart.getTitle();
  graphTitle.setText("String_Node_Str");
  graphTitle.setFont(chart.getFont());
  chart.setBackground(parent.getBackground());
  chart.setForeground(parent.getForeground());
  if (System.getProperty("String_Node_Str").toLowerCase().contains("String_Node_Str")) {
    int r=chart.getBackground().getRed() - 13;
    int g=chart.getBackground().getGreen() - 13;
    int b=chart.getBackground().getBlue() - 13;
    r=r > 0 ? r : 0;
    r=g > 0 ? g : 0;
    r=b > 0 ? b : 0;
    final Color c2=new Color(controller.getResources().getDisplay(),r,g,b);
    chart.setBackground(c2);
    chart.addDisposeListener(new DisposeListener(){
      public void widgetDisposed(      DisposeEvent arg0){
        c2.dispose();
      }
    }
);
  }
  IAxisSet axisSet=chart.getAxisSet();
  IAxis yAxis=axisSet.getYAxis(0);
  IAxis xAxis=axisSet.getXAxis(0);
  ITitle xAxisTitle=xAxis.getTitle();
  xAxisTitle.setText("String_Node_Str");
  xAxis.getTitle().setFont(chart.getFont());
  yAxis.getTitle().setFont(chart.getFont());
  xAxis.getTick().setFont(chart.getFont());
  yAxis.getTick().setFont(chart.getFont());
  xAxis.getTick().setForeground(chart.getForeground());
  yAxis.getTick().setForeground(chart.getForeground());
  xAxis.getTitle().setForeground(chart.getForeground());
  yAxis.getTitle().setForeground(chart.getForeground());
  ITitle yAxisTitle=yAxis.getTitle();
  yAxisTitle.setText("String_Node_Str");
  chart.setEnabled(false);
  updateCategories();
}

Fixed version (ground truth):
@Override public void reset(){
  if (chart != null) {
    chart.dispose();
  }
  chart=new Chart(parent,SWT.NONE);
  chart.setOrientation(SWT.HORIZONTAL);
  chart.addControlListener(new ControlAdapter(){
    @Override public void controlResized(    ControlEvent arg0){
      updateCategories();
    }
  }
);
  chart.getPlotArea().addListener(SWT.MouseMove,new Listener(){
    @Override public void handleEvent(    Event event){
      IAxisSet axisSet=chart.getAxisSet();
      if (axisSet != null) {
        IAxis xAxis=axisSet.getXAxis(0);
        if (xAxis != null) {
          String[] series=xAxis.getCategorySeries();
          ISeries[] data=chart.getSeriesSet().getSeries();
          if (data != null && data.length > 0 && series != null) {
            int x=(int)Math.round(xAxis.getDataCoordinate(event.x));
            if (x >= 0 && x < series.length) {
              chart.getPlotArea().setToolTipText("String_Node_Str" + series[x] + "String_Node_Str"+ data[0].getYSeries()[x]+ "String_Node_Str");
              return;
            }
          }
        }
      }
      chart.getPlotArea().setToolTipText(null);
    }
  }
);
  FontData[] fd=chart.getFont().getFontData();
  fd[0].setHeight(8);
  chart.setFont(new Font(chart.getDisplay(),fd[0]));
  ITitle graphTitle=chart.getTitle();
  graphTitle.setText("String_Node_Str");
  graphTitle.setFont(chart.getFont());
  chart.setBackground(parent.getBackground());
  chart.setForeground(parent.getForeground());
  if (System.getProperty("String_Node_Str").toLowerCase().contains("String_Node_Str")) {
    int r=chart.getBackground().getRed() - 13;
    int g=chart.getBackground().getGreen() - 13;
    int b=chart.getBackground().getBlue() - 13;
    r=r > 0 ? r : 0;
    r=g > 0 ? g : 0;
    r=b > 0 ? b : 0;
    final Color c2=new Color(controller.getResources().getDisplay(),r,g,b);
    chart.setBackground(c2);
    chart.addDisposeListener(new DisposeListener(){
      public void widgetDisposed(      DisposeEvent arg0){
        c2.dispose();
      }
    }
);
  }
  IAxisSet axisSet=chart.getAxisSet();
  IAxis yAxis=axisSet.getYAxis(0);
  IAxis xAxis=axisSet.getXAxis(0);
  ITitle xAxisTitle=xAxis.getTitle();
  xAxisTitle.setText("String_Node_Str");
  xAxis.getTitle().setFont(chart.getFont());
  yAxis.getTitle().setFont(chart.getFont());
  xAxis.getTick().setFont(chart.getFont());
  yAxis.getTick().setFont(chart.getFont());
  xAxis.getTick().setForeground(chart.getForeground());
  yAxis.getTick().setForeground(chart.getForeground());
  xAxis.getTitle().setForeground(chart.getForeground());
  yAxis.getTitle().setForeground(chart.getForeground());
  ITitle yAxisTitle=yAxis.getTitle();
  yAxisTitle.setText("String_Node_Str");
  chart.setEnabled(false);
  updateCategories();
}