/** * Add a servlet timer to this application session * @param servletTimer the servlet timer to add */ public void addServletTimer(ServletTimer servletTimer){ if(servletTimers == null) { servletTimers = new ConcurrentHashMap<String, ServletTimer>(1); } servletTimers.putIfAbsent(servletTimer.getId(), servletTimer); } /**
public void cancelOrder(long orderId) { Order order = (Order) em.createQuery( "select o from Order o where o.orderId = :orderId") .setParameter("orderId", orderId).getSingleResult(); order.setStatus(Order.Status.CANCELLED); ServletTimer deliveryDateTimer = (ServletTimer) Contexts.getApplicationContext().get("deliveryDateTimer" + orderId); ServletTimer adminTimer = (ServletTimer) Contexts.getApplicationContext().get("adminTimer" + orderId); if(deliveryDateTimer!=null) { deliveryDateTimer.cancel(); Contexts.getApplicationContext().remove("deliveryDateTimer" + orderId); log.info("Delivery Timer for order "+ orderId +" cancelled"); } else { log.info("No Delivery Timer to cancel"); } if(adminTimer!=null) { adminTimer.cancel(); Contexts.getApplicationContext().remove("adminTimer" + orderId); log.info("Admin Timer for order "+ orderId +" cancelled"); } else { log.info("No Admin Timer to cancel"); } }
ServletTimer timerEntry = servletTimerEntry.getValue(); if(timerEntry != null) { timerEntry.cancel();
/** * Remove a servlet timer from this application session * @param servletTimer the servlet timer to remove */ public void removeServletTimer(ServletTimer servletTimer, boolean updateAppSessionReadyToInvalidateState){ if(servletTimers != null) { servletTimers.remove(servletTimer.getId()); } if(updateAppSessionReadyToInvalidateState) { updateReadyToInvalidateState(); } }