@Override protected TaskMetaData process() { List<String> allSymb = earnRepo.getAllUniqueSymbol(); List<String> unCleanSymb = new ArrayList<String>(); for (String sym : allSymb) { List<Earning> allEarningsForSymbol = earnRepo.findBySymbolOrderByDateDesc(sym); int i = 0; for (Earning earning : allEarningsForSymbol) { // Only concerned with earnings for NASDAQ AND NYSE if (earning.getSymbol().contains(".")) { break; } if (i == 0) { i++; continue; } String currentCompanyName = allEarningsForSymbol.get(i - 1).getCompanyName(); LocalDate currentEarningDate = allEarningsForSymbol.get(i - 1).getDate(); i++; String historicalCompanyName = earning.getCompanyName(); LocalDate historicalEarningDate = earning.getDate(); if (!areEquivalent(currentCompanyName, historicalCompanyName) && signDifferenceBetweenEarnings(currentEarningDate, historicalEarningDate)) { unCleanSymb.add(earning.getSymbol()); break; } } } return null; }