package org.openbakery.racecontrol.plugin.penalty.service; import java.util.List; import org.openbakery.racecontrol.plugin.penalty.data.Penalty; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class PenaltyExpireRunner implements Runnable { private static Logger logger = LoggerFactory.getLogger(PenaltyExpireRunner.class); private static final long TIMEOUT = 120000; private boolean active; private PenaltyService service; public PenaltyExpireRunner(PenaltyService service) { this.service = service; } public void run() { active = true; while (active) { List<Penalty> clonedList = (List<Penalty>) service.getPenaltyToConfirm().clone(); for (Penalty penalty : clonedList) { if (penalty.getTime() + TIMEOUT < System.currentTimeMillis()) { service.penaltyExpired(penalty); } } service.sendConfirmQuestion(); try { Thread.sleep(1000); } catch (InterruptedException e) { logger.error(e.getMessage(), e); } } } public void stop() { active = false; } }