From bc7db03351957b2ed410c1d0c918bfb9ca43b833 Mon Sep 17 00:00:00 2001 From: Igor Kulikov Date: Fri, 29 Mar 2019 13:50:52 +0200 Subject: [PATCH] Improve GRPC session error handling. --- .../service/cluster/rpc/GrpcSession.java | 19 ++++++++++++++----- pom.xml | 4 ++-- 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/application/src/main/java/org/thingsboard/server/service/cluster/rpc/GrpcSession.java b/application/src/main/java/org/thingsboard/server/service/cluster/rpc/GrpcSession.java index b5deda2edd..55b83e8ad9 100644 --- a/application/src/main/java/org/thingsboard/server/service/cluster/rpc/GrpcSession.java +++ b/application/src/main/java/org/thingsboard/server/service/cluster/rpc/GrpcSession.java @@ -95,15 +95,24 @@ public final class GrpcSession implements Closeable { } public void sendMsg(ClusterAPIProtos.ClusterMessage msg) { - outputStream.onNext(msg); - } - - public void onError(Throwable t) { - outputStream.onError(t); + if (connected) { + try { + outputStream.onNext(msg); + } catch (Throwable t) { + try { + outputStream.onError(t); + } catch (Throwable t2) { + } + listener.onError(GrpcSession.this, t); + } + } else { + log.warn("[{}] Failed to send message due to closed session!", sessionId); + } } @Override public void close() { + connected = false; try { outputStream.onCompleted(); } catch (IllegalStateException e) { diff --git a/pom.xml b/pom.xml index 59cc98aef0..67a2eef187 100755 --- a/pom.xml +++ b/pom.xml @@ -61,10 +61,10 @@ 1.4.3 4.2.0 3.6.1 - 1.16.1 + 1.19.0 1.16.18 1.1.0 - 4.1.30.Final + 4.1.34.Final 1.5.0 4.8.0 2.19.1