Program: 52699
Project: 52699
Buggy source:
private <T extends SecurityPrice>List<T> internalGetQuotes(Class<T> klass,Security security,LocalDate startDate,List<Exception> errors){
  if (security.getTickerSymbol() == null) {
    errors.add(new IOException(MessageFormat.format(Messages.MsgMissingTickerSymbol,security.getName())));
    return Collections.emptyList();
  }
  LocalDate stopDate=LocalDate.now();
  String wknUrl=MessageFormat.format(HISTORICAL_URL,security.getTickerSymbol(),startDate.getMonth().getValue() - 1,startDate.getDayOfMonth(),Integer.toString(startDate.getYear()),stopDate.getMonth().getValue() - 1,stopDate.getDayOfMonth(),Integer.toString(stopDate.getYear()));
  List<T> answer=new ArrayList<>();
  String line=null;
  try (BufferedReader reader=openReader(wknUrl,errors)){
    if (reader == null)     return answer;
    line=reader.readLine();
    if (!"String_Node_Str".equals(line))     throw new IOException(MessageFormat.format(Messages.MsgUnexpectedHeader,line));
    DecimalFormat priceFormat=FMT_PRICE.get();
    DateTimeFormatter dateFormat=DateTimeFormatter.ofPattern("String_Node_Str");
    while ((line=reader.readLine()) != null) {
      String[] values=line.split("String_Node_Str");
      if (values.length != 7)       throw new IOException(MessageFormat.format(Messages.MsgUnexpectedValue,line));
      T price=klass.newInstance();
      fillValues(values,price,priceFormat,dateFormat);
      answer.add(price);
    }
  }
 catch (  NumberFormatException|ParseException|DateTimeParseException e) {
    errors.add(new IOException(MessageFormat.format(Messages.MsgErrorsConvertingValue,line),e));
  }
catch (  InstantiationException|IllegalAccessException|IOException e) {
    errors.add(e);
  }
  return answer;
}

Fixed version (ground truth):
private <T extends SecurityPrice>List<T> internalGetQuotes(Class<T> klass,Security security,LocalDate startDate,List<Exception> errors){
  if (security.getTickerSymbol() == null) {
    errors.add(new IOException(MessageFormat.format(Messages.MsgMissingTickerSymbol,security.getName())));
    return Collections.emptyList();
  }
  LocalDate stopDate=LocalDate.now();
  String wknUrl=MessageFormat.format(HISTORICAL_URL,security.getTickerSymbol(),startDate.getMonth().getValue() - 1,startDate.getDayOfMonth(),Integer.toString(startDate.getYear()),stopDate.getMonth().getValue() - 1,stopDate.getDayOfMonth(),Integer.toString(stopDate.getYear()));
  List<T> answer=new ArrayList<>();
  String line=null;
  try (BufferedReader reader=openReader(wknUrl,errors)){
    if (reader == null)     return answer;
    line=reader.readLine();
    if (!"String_Node_Str".equals(line))     throw new IOException(MessageFormat.format(Messages.MsgUnexpectedHeader,line));
    DateTimeFormatter dateFormat=DateTimeFormatter.ofPattern("String_Node_Str");
    while ((line=reader.readLine()) != null) {
      String[] values=line.split("String_Node_Str");
      if (values.length != 7)       throw new IOException(MessageFormat.format(Messages.MsgUnexpectedValue,line));
      T price=klass.newInstance();
      fillValues(values,price,dateFormat);
      answer.add(price);
    }
  }
 catch (  NumberFormatException|ParseException|DateTimeParseException e) {
    errors.add(new IOException(MessageFormat.format(Messages.MsgErrorsConvertingValue,line),e));
  }
catch (  InstantiationException|IllegalAccessException|IOException e) {
    errors.add(e);
  }
  return answer;
}