diff --git a/cluster/src/main/java/io/scalecube/cluster/membership/MembershipProtocolImpl.java b/cluster/src/main/java/io/scalecube/cluster/membership/MembershipProtocolImpl.java index 7eba063c..0a89645d 100644 --- a/cluster/src/main/java/io/scalecube/cluster/membership/MembershipProtocolImpl.java +++ b/cluster/src/main/java/io/scalecube/cluster/membership/MembershipProtocolImpl.java @@ -98,6 +98,7 @@ private enum MembershipUpdateReason { // Disposables private final Disposable.Composite actionsDisposables = Disposables.composite(); + private final Disposable.Swap disposable = Disposables.swap(); // Scheduled private final Scheduler scheduler; @@ -293,6 +294,7 @@ private void start0(MonoSink sink) { public void stop() { // Stop accepting requests, events and sending sync actionsDisposables.dispose(); + disposable.dispose(); // Cancel remove members tasks for (String memberId : suspicionTimeoutTasks.keySet()) { @@ -475,7 +477,7 @@ private Optional
selectSyncAddress() { private void schedulePeriodicSync() { int syncInterval = membershipConfig.syncInterval(); - actionsDisposables.add( + disposable.update( scheduler.schedulePeriodically( this::doSync, syncInterval, syncInterval, TimeUnit.MILLISECONDS)); } diff --git a/transport-parent/transport-api/src/main/java/io/scalecube/cluster/transport/api/Message.java b/transport-parent/transport-api/src/main/java/io/scalecube/cluster/transport/api/Message.java index ea6ef073..cd66e052 100644 --- a/transport-parent/transport-api/src/main/java/io/scalecube/cluster/transport/api/Message.java +++ b/transport-parent/transport-api/src/main/java/io/scalecube/cluster/transport/api/Message.java @@ -222,7 +222,7 @@ public void readExternal(ObjectInput in) throws IOException, ClassNotFoundExcept for (int i = 0; i < headersSize; i++) { String name = in.readUTF(); String value = in.readUTF(); - headers.put(name, value.equals("null") ? null : value); + headers.put(name, "null".equals(value) ? null : value); } this.headers = Collections.unmodifiableMap(headers); // data