Add field to fullharvests: indexready Changes to HarvestdefinitionDBDAO.getReadyHarvestDefinitions: List ids = DBUtils.selectLongList( connection, "SELECT fullharvests.harvest_id" + " FROM fullharvests, harvestdefinitions" + " WHERE harvestdefinitions.harvest_id " + "= fullharvests.harvest_id" // + " AND isactive = ? AND indexready = ? AND numevents < 1", true, true); + " AND numevents < 1 AND isactive = ? AND indexready = ?", true, true); List getJobIdForSnapshotDeduplicationIndex (Long harvestId) { List harvestDefinitions = getPreviousFullHarvests(harvestId); if (!harvestDefinitions.isEmpty()) { //Select all jobs from a given list of harvest definitions jobs.addAll(DBUtils.selectLongList( connection, "SELECT jobs.job_id FROM jobs" + " WHERE jobs.harvest_id IN (" + StringUtils.conjoin(",", harvestDefinitions) + ")")); } // Modification af JobDBDAO.getPreviousFullHarvests(Long JobId) List getPreviousFullHarvests(Long thisHarvest) { List results = new ArrayList(); Connection connection = DBConnect.getDBConnection(); //Follow the chain of orginating IDs back for (Long originatingHarvest = thisHarvest; originatingHarvest != null; // Compute next originatingHarvest originatingHarvest = DBUtils.selectFirstLongValueIfAny( connection, "SELECT previoushd FROM fullharvests" + " WHERE fullharvests.harvest_id=?", originatingHarvest)) { if (!originatingHarvest.equals(thisHarvest)) { results.add(originatingHarvest); } } //Find the first harvest in the chain (but last in the list). Long firstHarvest = thisHarvest; if (!results.isEmpty()) { firstHarvest = results.get(results.size() - 1); } //Find the last harvest in the chain before Long olderHarvest = DBUtils.selectFirstLongValueIfAny( connection, "SELECT fullharvests.harvest_id" + " FROM fullharvests, harvestdefinitions," + " harvestdefinitions AS currenthd" + " WHERE currenthd.harvest_id=?" + " AND fullharvests.harvest_id=harvestdefinitions.harvest_id" + " AND harvestdefinitions.submitted