From fad7b00016bf5308548b55c080fc272355a0f835 Mon Sep 17 00:00:00 2001 From: lennartfricke <30312169+lennartfricke@users.noreply.github.com> Date: Wed, 9 May 2018 16:52:55 +0200 Subject: Allow overriding ServerRpcHandler creation in PushHandler (#10892) Fixes #4537 --- .../java/com/vaadin/server/communication/PushHandler.java | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/server/src/main/java/com/vaadin/server/communication/PushHandler.java b/server/src/main/java/com/vaadin/server/communication/PushHandler.java index 33c2041f8c..0613d883f2 100644 --- a/server/src/main/java/com/vaadin/server/communication/PushHandler.java +++ b/server/src/main/java/com/vaadin/server/communication/PushHandler.java @@ -58,6 +58,8 @@ public class PushHandler { private int longPollingSuspendTimeout = -1; + private final ServerRpcHandler rpcHandler = createRpcHandler(); + /** * Callback interface used internally to process an event with the * corresponding UI properly locked. @@ -143,7 +145,7 @@ public class PushHandler { assert vaadinRequest != null; try { - new ServerRpcHandler().handleRpc(ui, reader, vaadinRequest); + rpcHandler.handleRpc(ui, reader, vaadinRequest); connection.push(false); } catch (JsonException e) { getLogger().log(Level.SEVERE, "Error writing JSON to response", e); @@ -164,6 +166,16 @@ public class PushHandler { this.service = service; } + /** + * Creates the ServerRpcHandler to use. + * + * @return the ServerRpcHandler to use + * @since + */ + protected ServerRpcHandler createRpcHandler() { + return new ServerRpcHandler(); + } + /** * Suspends the given resource. * -- cgit v1.2.3