@Override public void run() { logger.info("DailyCouponExpirationTask starting"); CouponDAO couponDAO = new CouponDBDAO(); Collection<Coupon> coupons; while (!quit) { try { coupons = couponDAO.getAllCoupons(); // long millis = System.currentTimeMillis(); // Date currentDate = new Date(millis); int nRemoved = 0; for (Coupon coupon : coupons) { // if (coupon.getEndDate().before(currentDate)) { if (coupon.isExpired()) { try { logger.info("removing expierd coupon : " + coupon); couponDAO.removeCoupon(coupon); nRemoved++; } catch (Exception e) { logger.error("remove expired coupon failed"); } } } logger.info("DailyCouponExpirationTask removed " + nRemoved + " expierd coupons"); } catch (SQLException e) { logger.error("DailyCouponExpirationTask run failed : " + e.toString()); } try { // sleep(24 * Utils.houer); // sleep(15 * Utils.minute); sleep(sleepTime); } catch (InterruptedException e) { logger.error("DailyCouponExpirationTask interrupted"); } } logger.info("DailyCouponExpirationTask finished"); }