diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/EdgeGrpcSession.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/EdgeGrpcSession.java index 42a6a60c2d..7c37b0ac54 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/EdgeGrpcSession.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/EdgeGrpcSession.java @@ -135,7 +135,7 @@ public abstract class EdgeGrpcSession implements Closeable { private StreamObserver inputStream; private StreamObserver outputStream; - private boolean connected; + private volatile boolean connected; private volatile boolean syncCompleted; private EdgeVersion edgeVersion; @@ -536,13 +536,15 @@ public abstract class EdgeGrpcSession implements Closeable { public void processHighPriorityEvents() { try { - List highPriorityEvents = new ArrayList<>(); - EdgeEvent event; - while ((event = highPriorityQueue.poll()) != null) { - highPriorityEvents.add(event); + if (isConnected() && isSyncCompleted()) { + List highPriorityEvents = new ArrayList<>(); + EdgeEvent event; + while ((event = highPriorityQueue.poll()) != null) { + highPriorityEvents.add(event); + } + List downlinkMsgsPack = convertToDownlinkMsgsPack(highPriorityEvents); + sendDownlinkMsgsPack(downlinkMsgsPack).get(); } - List downlinkMsgsPack = convertToDownlinkMsgsPack(highPriorityEvents); - sendDownlinkMsgsPack(downlinkMsgsPack).get(); } catch (Exception e) { log.error("[{}] Failed to process high priority events", sessionId, e); }