From ae4717710d6c583d40d0933a62fc3f5fb996ef98 Mon Sep 17 00:00:00 2001 From: Liang Ding Date: Fri, 7 Apr 2023 09:35:10 +0800 Subject: [PATCH] :art: When local.json is corrupted, clear the file to avoid being unable to enter the main interface Fix https://github.com/siyuan-note/siyuan/issues/7911 --- kernel/api/storage.go | 7 +------ kernel/model/storage.go | 17 +++++------------ 2 files changed, 6 insertions(+), 18 deletions(-) diff --git a/kernel/api/storage.go b/kernel/api/storage.go index 16eb3e20b..173361ab5 100644 --- a/kernel/api/storage.go +++ b/kernel/api/storage.go @@ -177,11 +177,6 @@ func getLocalStorage(c *gin.Context) { ret := gulu.Ret.NewResult() defer c.JSON(http.StatusOK, ret) - data, err := model.GetLocalStorage() - if nil != err { - ret.Code = -1 - ret.Msg = err.Error() - return - } + data := model.GetLocalStorage() ret.Data = data } diff --git a/kernel/model/storage.go b/kernel/model/storage.go index a1aef1d07..8b64412e3 100644 --- a/kernel/model/storage.go +++ b/kernel/model/storage.go @@ -293,11 +293,7 @@ func RemoveLocalStorageVals(keys []string) (err error) { localStorageLock.Lock() defer localStorageLock.Unlock() - localStorage, err := getLocalStorage() - if nil != err { - return - } - + localStorage := getLocalStorage() for _, key := range keys { delete(localStorage, key) } @@ -308,11 +304,7 @@ func SetLocalStorageVal(key string, val interface{}) (err error) { localStorageLock.Lock() defer localStorageLock.Unlock() - localStorage, err := getLocalStorage() - if nil != err { - return - } - + localStorage := getLocalStorage() localStorage[key] = val return setLocalStorage(localStorage) } @@ -323,7 +315,7 @@ func SetLocalStorage(val interface{}) (err error) { return setLocalStorage(val) } -func GetLocalStorage() (ret map[string]interface{}, err error) { +func GetLocalStorage() (ret map[string]interface{}) { localStorageLock.Lock() defer localStorageLock.Unlock() return getLocalStorage() @@ -355,7 +347,8 @@ func setLocalStorage(val interface{}) (err error) { return } -func getLocalStorage() (ret map[string]interface{}, err error) { +func getLocalStorage() (ret map[string]interface{}) { + // When local.json is corrupted, clear the file to avoid being unable to enter the main interface https://github.com/siyuan-note/siyuan/issues/7911 ret = map[string]interface{}{} lsPath := filepath.Join(util.DataDir, "storage/local.json") if !gulu.File.IsExist(lsPath) {