diff --git a/common/commonspace/synctree/synctree.go b/common/commonspace/synctree/synctree.go index 6a56593d..e471a961 100644 --- a/common/commonspace/synctree/synctree.go +++ b/common/commonspace/synctree/synctree.go @@ -85,7 +85,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) @@ -113,7 +115,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) @@ -210,7 +215,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