com.vaadin.flow.server.
Class SynchronizedRequestHandler
- java.lang.Object
-
- com.vaadin.flow.server.SynchronizedRequestHandler
-
All Implemented Interfaces:
Direct Known Subclasses:
BootstrapHandler, HeartbeatHandler, UidlRequestHandler, UnsupportedBrowserHandler, WebComponentProvider
public abstract class SynchronizedRequestHandler extends Object implements RequestHandler
RequestHandler which takes care of locking and unlocking of the VaadinSession automatically. The session is locked before
synchronizedHandleRequest(VaadinSession, VaadinRequest, VaadinResponse)
is called and unlocked after it has completed.Since:
1.0
Author:
Vaadin Ltd
See Also:
-
-
Constructor Summary
Constructors Constructor and Description SynchronizedRequestHandler()
-
Method Summary
All Methods Modifier and Type Method and Description protected boolean
canHandleRequest(VaadinRequest request)
Check whether a request may be handled by this handler.
boolean
handleRequest(VaadinSession session, VaadinRequest request, VaadinResponse response)
Called when a request needs to be handled.
abstract boolean
synchronizedHandleRequest(VaadinSession session, VaadinRequest request, VaadinResponse response)
Identical to
handleRequest(VaadinSession, VaadinRequest, VaadinResponse)
except theVaadinSession
is locked before this is called and unlocked after this has completed.
-
-
-
Method Detail
-
handleRequest
public boolean handleRequest(VaadinSession session, VaadinRequest request, VaadinResponse response) throws IOException
Description copied from interface:
RequestHandler
Called when a request needs to be handled. If a response is written, this method should return
true
to indicate that no more request handlers should be invoked for the request.Note that request handlers by default do not lock the session. If you are using VaadinSession or anything inside the VaadinSession you must ensure the session is locked. This can be done by extending
SynchronizedRequestHandler
or by usingVaadinSession.accessSynchronously(Command)
orUI.accessSynchronously(Command)
.Specified by:
handleRequest
in interfaceRequestHandler
Parameters:
session
- The session for the requestrequest
- The request to handleresponse
- The response object to which a response can be written.Returns:
true if a response has been written and no further request handlers should be called, otherwise false
Throws:
IOException
- If an IO error occurred
-
synchronizedHandleRequest
public abstract boolean synchronizedHandleRequest(VaadinSession session, VaadinRequest request, VaadinResponse response) throws IOException
Identical to
handleRequest(VaadinSession, VaadinRequest, VaadinResponse)
except theVaadinSession
is locked before this is called and unlocked after this has completed.Parameters:
session
- The session for the requestrequest
- The request to handleresponse
- The response object to which a response can be written.Returns:
true if a response has been written and no further request handlers should be called, otherwise false
Throws:
IOException
- If an IO error occurredSee Also:
-
canHandleRequest
protected boolean canHandleRequest(VaadinRequest request)
Check whether a request may be handled by this handler. This can be used as an optimization to avoid locking the session just to investigate some method property. The default implementation just returns
true
which means that all requests will be handled by callingsynchronizedHandleRequest(VaadinSession, VaadinRequest, VaadinResponse)
with the session locked.Parameters:
request
- the request to handleReturns:
true
if the request handling should continue once the session has been locked;false
if there's no need to lock the session since the request would still not be handled.
-
-