Program: 67594
Project: 67594
Buggy source:
@Override public final DataSet populate(Object oResultSetDef,DataSet ds) throws ChartException {
  if (oResultSetDef instanceof IResultSetDataSet) {
    final IResultSetDataSet rsds=(IResultSetDataSet)oResultSetDef;
    final long lRowCount=rsds.getSize();
    if (lRowCount <= 0) {
      throw new ChartException(ChartEngineExtensionPlugin.ID,ChartException.ZERO_DATASET,"String_Node_Str",Messages.getResourceBundle(getULocale()));
    }
    int dataType=rsds.getDataType(0);
    boolean isBigDecimal=false;
    int i=0;
    final BubbleEntry[] bea=new BubbleEntry[(int)lRowCount];
    Object[][] values=null;
    if (dataType == IConstants.NUMERICAL) {
      values=new Object[(int)lRowCount][2];
      while (rsds.hasNext()) {
        Object[] o=rsds.next();
        Object[] newO=new Object[2];
        newO[0]=o[0];
        newO[1]=o[1];
        values[i++]=newO;
        if (!isBigDecimal && NumberUtil.isBigDecimal(o[0]) || NumberUtil.isBigDecimal(o[1])) {
          isBigDecimal=true;
        }
      }
    }
    if (isBigDecimal) {
      i=0;
      for (      Object[] o : values) {
        validateBubbleEntryData(o);
        Object value=o[0];
        Object size=o[1];
        bea[i++]=new BubbleEntry(NumberUtil.asBigNumber((Number)value,null),NumberUtil.asBigNumber((Number)size,null));
      }
    }
 else {
      for (i=0; i < values.length; i++) {
        validateBubbleEntryData(values[i]);
        Object value=values[i][0];
        Object size=values[i][1];
        if (dataType == IConstants.NUMERICAL) {
          bea[i]=new BubbleEntry(value,size);
        }
 else         if (dataType == IConstants.DATE_TIME) {
          bea[i]=new BubbleEntry(value == null ? null : value,size);
        }
 else {
          bea[i]=new BubbleEntry(value,size,i + 1);
        }
      }
    }
    if (ds == null) {
      ds=BubbleDataSetImpl.create(bea);
    }
 else {
      ds.setValues(bea);
    }
    ((DataSetImpl)ds).setIsBigNumber(isBigDecimal);
  }
 else {
    throw new ChartException(ChartEngineExtensionPlugin.ID,ChartException.DATA_SET,"String_Node_Str",new Object[]{ds,oResultSetDef},Messages.getResourceBundle(getULocale()));
  }
  return ds;
}

Fixed version (ground truth):
@Override public final DataSet populate(Object oResultSetDef,DataSet ds) throws ChartException {
  if (oResultSetDef instanceof IResultSetDataSet) {
    final IResultSetDataSet rsds=(IResultSetDataSet)oResultSetDef;
    final long lRowCount=rsds.getSize();
    if (lRowCount <= 0) {
      throw new ChartException(ChartEngineExtensionPlugin.ID,ChartException.ZERO_DATASET,"String_Node_Str",Messages.getResourceBundle(getULocale()));
    }
    int dataType=rsds.getDataType(0);
    boolean isBigDecimal=false;
    int i=0;
    final BubbleEntry[] bea=new BubbleEntry[(int)lRowCount];
    Object[][] values=new Object[(int)lRowCount][2];
    if (dataType == IConstants.NUMERICAL) {
      while (rsds.hasNext()) {
        Object[] o=rsds.next();
        Object[] newO=new Object[2];
        newO[0]=o[0];
        newO[1]=o[1];
        values[i++]=newO;
        if (!isBigDecimal && NumberUtil.isBigDecimal(o[0]) || NumberUtil.isBigDecimal(o[1])) {
          isBigDecimal=true;
        }
      }
    }
 else {
      while (rsds.hasNext()) {
        Object[] o=rsds.next();
        Object[] newO=new Object[2];
        newO[0]=o[0];
        newO[1]=o[1];
        values[i++]=newO;
      }
    }
    if (isBigDecimal) {
      i=0;
      for (      Object[] o : values) {
        validateBubbleEntryData(o);
        Object value=o[0];
        Object size=o[1];
        bea[i++]=new BubbleEntry(NumberUtil.asBigNumber((Number)value,null),NumberUtil.asBigNumber((Number)size,null));
      }
    }
 else {
      for (i=0; i < values.length; i++) {
        validateBubbleEntryData(values[i]);
        Object value=values[i][0];
        Object size=values[i][1];
        if (dataType == IConstants.NUMERICAL) {
          bea[i]=new BubbleEntry(value,size);
        }
 else         if (dataType == IConstants.DATE_TIME) {
          bea[i]=new BubbleEntry(value == null ? null : value,size);
        }
 else {
          bea[i]=new BubbleEntry(value,size,i + 1);
        }
      }
    }
    if (ds == null) {
      ds=BubbleDataSetImpl.create(bea);
    }
 else {
      ds.setValues(bea);
    }
    ((DataSetImpl)ds).setIsBigNumber(isBigDecimal);
  }
 else {
    throw new ChartException(ChartEngineExtensionPlugin.ID,ChartException.DATA_SET,"String_Node_Str",new Object[]{ds,oResultSetDef},Messages.getResourceBundle(getULocale()));
  }
  return ds;
}