private List<GpsRecordAnnotation> readGpsFixesFromFile( FileReader fileReader, String csvFileName) { List<GpsRecordAnnotation> results = new LinkedList<GpsRecordAnnotation>(); CsvBeanReader beanReader = new CsvBeanReader(fileReader, CsvPreference.STANDARD_PREFERENCE); try { String[] headers = beanReader.getHeader(true); if (hasIncorrectHeaders(headers)) { closeReaders(fileReader, beanReader); throw getUnableToReadFileExceptionCauseOfHeaders(csvFileName); } getGpsFixesFromReader(results, beanReader, headers); closeReaders(fileReader, beanReader); } catch (IOException | NullPointerException e) { throw getUnableToReadFileExceptionCauseUnknown(csvFileName, e); } return results; }