From f5a2a7a959b017d393e84c6f4d47d38763eb4eaa Mon Sep 17 00:00:00 2001 From: mcrakhman Date: Fri, 25 Nov 2022 09:46:01 +0100 Subject: [PATCH] Add sync listener nil check --- common/commonspace/synctree/synctree.go | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/common/commonspace/synctree/synctree.go b/common/commonspace/synctree/synctree.go index 2953cbc1..32008d1c 100644 --- a/common/commonspace/synctree/synctree.go +++ b/common/commonspace/synctree/synctree.go @@ -83,7 +83,9 @@ func DeriveSyncTree(ctx context.Context, deps CreateDeps) (t tree.ObjectTree, er t = syncTree syncTree.Lock() defer syncTree.Unlock() - syncTree.listener.Rebuild(syncTree) + if syncTree.listener != nil { + syncTree.listener.Rebuild(syncTree) + } headUpdate := syncClient.CreateHeadUpdate(t, nil) err = syncClient.BroadcastAsync(headUpdate) @@ -111,7 +113,10 @@ func CreateSyncTree(ctx context.Context, deps CreateDeps) (t tree.ObjectTree, er t = syncTree syncTree.Lock() defer syncTree.Unlock() - syncTree.listener.Rebuild(syncTree) + // TODO: refactor here because the code is duplicated, when we create a tree we should only create a storage and then build a tree + if syncTree.listener != nil { + syncTree.listener.Rebuild(syncTree) + } headUpdate := syncClient.CreateHeadUpdate(t, nil) err = syncClient.BroadcastAsync(headUpdate) @@ -203,7 +208,9 @@ func buildSyncTree(ctx context.Context, isFirstBuild bool, deps BuildDeps) (t tr t = syncTree syncTree.Lock() defer syncTree.Unlock() - syncTree.listener.Rebuild(syncTree) + if syncTree.listener != nil { + syncTree.listener.Rebuild(syncTree) + } headUpdate := syncTree.syncClient.CreateHeadUpdate(t, nil) // here we will have different behaviour based on who is sending this update