@Override public void releaseHoldOrders() { for (SeatHold seatHold : MockData.holdsMap.values()) { if (ReservationStatusType.HOLD.equals(seatHold.getStatus())) { synchronized (seatHold) { if (Calendar.getInstance().getTimeInMillis() - seatHold.getHoldTimestamp() > holdTimeInSeconds * 1000) { for (Seat seat : seatHold.getSeats()) { seat.setStatus(SeatStatusType.AVAILABLE); MockData.seatsMap.get(seat.getVenueLevel()).add(seat); } seatHold.setStatus(ReservationStatusType.RELEASED); } } } } }