private <T> T execute(Supplier<T> supplier) { if (session.hasLock()) { return supplier.get(); } else { session.lock(); try { return supplier.get(); } finally { session.unlock(); } } }
private <T> T execute(Supplier<T> supplier) { if (session.hasLock()) { return supplier.get(); } else { session.lock(); try { return supplier.get(); } finally { session.unlock(); } } }
private int read(VaadinSession session, InputStream source, byte[] buffer) throws IOException { if (factory.requiresLock()) { session.lock(); try { return source.read(buffer); } finally { session.unlock(); } } else { return source.read(buffer); } } }
private void destroy() { session.lock(); try { session.setAttribute(UIStoreWrapper.class, null); uiStores.values().forEach(BeanStore::destroy); uiStores.clear(); } finally { session.unlock(); if (sessionDestroyListenerRegistration != null) { sessionDestroyListenerRegistration.remove(); } } }
private void destroy() { session.lock(); try { session.setAttribute(UIStoreWrapper.class, null); uiStores.values().forEach(BeanStore::destroy); uiStores.clear(); } finally { session.unlock(); if (sessionDestroyListenerRegistration != null) { sessionDestroyListenerRegistration.remove(); } } }
private InputStream createInputStream(VaadinSession session) { session.lock(); try { return factory.createInputStream(); } finally { session.unlock(); } }
private long updateProgress(VaadinSession session, StreamVariable streamVariable, StreamingProgressEventImpl progressEvent, long lastStreamingEvent, int bytesReadToBuffer) { long now = System.currentTimeMillis(); // to avoid excessive session locking and event storms, // events are sent in intervals, or at the end of the file. if (lastStreamingEvent + getProgressEventInterval() <= now || bytesReadToBuffer <= 0) { session.lock(); try { streamVariable.onProgress(progressEvent); } finally { session.unlock(); } } return now; }
private void cleanStreamVariable(VaadinSession session, StreamReceiver streamReceiver) { session.lock(); try { session.getResourceRegistry().unregisterResource(streamReceiver); } finally { session.unlock(); } }
@Override public boolean handleRequest(VaadinSession session, VaadinRequest request, VaadinResponse response) throws IOException { // Use a copy to avoid ConcurrentModificationException session.lock(); List<RequestHandler> requestHandlers; try { requestHandlers = new ArrayList<>(session.getRequestHandlers()); } finally { session.unlock(); } for (RequestHandler handler : requestHandlers) { if (handler.handleRequest(session, request, response)) { return true; } } // If not handled return false; } }
@Override public boolean handleRequest(VaadinSession session, VaadinRequest request, VaadinResponse response) throws IOException { if (!canHandleRequest(request)) { return false; } session.lock(); try { return synchronizedHandleRequest(session, request, response); } finally { session.unlock(); } }
session.lock(); try { abstractStreamResource = StreamRequestHandler.getPathUri(pathInfo)
@Override protected BeanStore getBeanStore() { final VaadinSession session = getVaadinSession(); session.lock(); try { BeanStore beanStore = session.getAttribute(BeanStore.class); if (beanStore == null) { beanStore = new SessionBeanStore(session); session.setAttribute(BeanStore.class, beanStore); } return beanStore; } finally { session.unlock(); } }
@Override protected BeanStore getBeanStore() { final VaadinSession session = getVaadinSession(); session.lock(); try { BeanStore beanStore = session.getAttribute(BeanStore.class); if (beanStore == null) { beanStore = new SessionBeanStore(session); session.setAttribute(BeanStore.class, beanStore); } return beanStore; } finally { session.unlock(); } }
/** * Called after the framework has handled a request and the response has * been written. * * @param request * The request object * @param response * The response object * @param session * The session which was used during the request or null if the * request did not use a session */ public void requestEnd(VaadinRequest request, VaadinResponse response, VaadinSession session) { if (session != null) { assert VaadinSession.getCurrent() == session; session.lock(); try { cleanupSession(session); final long duration = (System.nanoTime() - (Long) request .getAttribute(REQUEST_START_TIME_ATTRIBUTE)) / 1000000; session.setLastRequestDuration(duration); } finally { session.unlock(); } } CurrentInstance.clearAll(); }
@Override protected BeanStore getBeanStore() { final VaadinSession session = getVaadinSession(); session.lock(); try { UIStoreWrapper wrapper = session.getAttribute(UIStoreWrapper.class); if (wrapper == null) { wrapper = new UIStoreWrapper(session); session.setAttribute(UIStoreWrapper.class, wrapper); } return wrapper.getBeanStore(getUI()); } finally { session.unlock(); } }
@Override protected BeanStore getBeanStore() { final VaadinSession session = getVaadinSession(); session.lock(); try { UIStoreWrapper wrapper = session.getAttribute(UIStoreWrapper.class); if (wrapper == null) { wrapper = new UIStoreWrapper(session); session.setAttribute(UIStoreWrapper.class, wrapper); } return wrapper.getBeanStore(getUI()); } finally { session.unlock(); } }
lock(); try { old = CurrentInstance.setCurrent(this);
session.lock(); try { ServletContext context = ((VaadinServletRequest) request)
private void accessSynchronously(Command command, SerializableRunnable detachHandler) { Map<Class<?>, CurrentInstance> old = null; VaadinSession session = getSession(); if (session == null) { handleAccessDetach(detachHandler); return; } VaadinService.verifyNoOtherSessionLocked(session); session.lock(); try { if (getSession() == null) { // UI was detached after fetching the session but before we // acquired the lock. handleAccessDetach(detachHandler); return; } old = CurrentInstance.setCurrent(this); command.execute(); } finally { session.unlock(); if (old != null) { CurrentInstance.restoreInstances(old); } } }