Program: 67622
Project: 67622
Buggy source:
public final DataSet fromString(String sDataSetRepresentation,DataSet ds) throws ChartException {
  if (sDataSetRepresentation == null) {
    return ds;
  }
  if (ds == null) {
    ds=BubbleDataSetImpl.create(null);
  }
  StringTokenizer strTokDataElement=new StringTokenizer(sDataSetRepresentation,"String_Node_Str");
  StringTokenizer strTokComponents=null;
  String strDataElement=null;
  String strComponent=null;
  Vector<BubbleEntry> vData=new Vector<BubbleEntry>();
  int[] sizes=new int[]{3,5,4,6,4};
  int i=0;
  while (strTokDataElement.hasMoreTokens()) {
    strDataElement=strTokDataElement.nextToken().trim();
    strTokComponents=new StringTokenizer(strDataElement);
    if (strTokComponents.countTokens() == 1) {
      Object value=null;
      try {
        value=new Double(Double.parseDouble(strDataElement));
      }
 catch (      NumberFormatException ex) {
        SimpleDateFormat sdf=new SimpleDateFormat("String_Node_Str");
        try {
          value=new CDateTime(sdf.parse(strDataElement));
        }
 catch (        ParseException e) {
          value=null;
        }
      }
      vData.add(new BubbleEntry(value,Integer.valueOf(sizes[i++])));
      continue;
    }
    BubbleEntry entry=new BubbleEntry(Integer.valueOf(1),Integer.valueOf(1));
    while (strTokComponents.hasMoreTokens()) {
      strComponent=strTokComponents.nextToken().trim().toUpperCase();
      if (strComponent.startsWith("String_Node_Str")) {
        entry.setValue(strComponent.substring(1));
      }
 else       if (strComponent.startsWith("String_Node_Str")) {
        entry.setSize(Double.parseDouble(strComponent.substring(1)));
      }
    }
    vData.add(entry);
  }
  ds.setValues(vData);
  return ds;
}

Fixed version (ground truth):
@Override public final DataSet fromString(String sDataSetRepresentation,DataSet ds) throws ChartException {
  if (sDataSetRepresentation == null) {
    return ds;
  }
  if (ds == null) {
    ds=BubbleDataSetImpl.create(null);
  }
  StringTokenizer strTokDataElement=new StringTokenizer(sDataSetRepresentation,"String_Node_Str");
  StringTokenizer strTokComponents=null;
  String strDataElement=null;
  String strComponent=null;
  Vector<BubbleEntry> vData=new Vector<BubbleEntry>();
  int[] sizes=new int[]{3,5,4,6,4};
  int i=0;
  while (strTokDataElement.hasMoreTokens()) {
    strDataElement=strTokDataElement.nextToken().trim();
    strTokComponents=new StringTokenizer(strDataElement);
    if (strTokComponents.countTokens() == 1) {
      Object value=null;
      try {
        value=new Double(Double.parseDouble(strDataElement));
      }
 catch (      NumberFormatException ex) {
        SimpleDateFormat sdf=new SimpleDateFormat("String_Node_Str");
        try {
          value=new CDateTime(sdf.parse(strDataElement));
        }
 catch (        ParseException e) {
          value=null;
        }
      }
      vData.add(new BubbleEntry(value,Integer.valueOf(sizes[i++])));
      continue;
    }
    BubbleEntry entry=new BubbleEntry(Integer.valueOf(1),Integer.valueOf(1));
    while (strTokComponents.hasMoreTokens()) {
      strComponent=strTokComponents.nextToken().trim().toUpperCase();
      if (strComponent.startsWith("String_Node_Str")) {
        entry.setValue(strComponent.substring(1));
      }
 else       if (strComponent.startsWith("String_Node_Str")) {
        entry.setSize(Double.parseDouble(strComponent.substring(1)));
      }
    }
    vData.add(entry);
  }
  ds.setValues(vData);
  return ds;
}