From 438646e0b55138d2b18313142072236e8f178c29 Mon Sep 17 00:00:00 2001 From: 99rgosse <61579380+99rgosse@users.noreply.github.com> Date: Mon, 2 May 2022 18:46:50 +0200 Subject: [PATCH] Handle the error of a missing blob object fix #19530 (#19552) * Handle the error of a missing blob object * Show error in logs * as per @zeripath * Add missing error check * Add missing error check * Update compare.go * Use formal code * Update compare.go Co-authored-by: wxiaoguang Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: techknowlogick --- routers/web/repo/compare.go | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/routers/web/repo/compare.go b/routers/web/repo/compare.go index 7721507bae..d483227ebf 100644 --- a/routers/web/repo/compare.go +++ b/routers/web/repo/compare.go @@ -143,6 +143,11 @@ func setCsvCompareContext(ctx *context.Context) { if err == errTooLarge { return CsvDiffResult{nil, err.Error()} } + if err != nil { + log.Error("CreateCsvDiff error whilst creating baseReader from file %s in commit %s in %s: %v", diffFile.Name, baseCommit.ID.String(), ctx.Repo.Repository.Name, err) + return CsvDiffResult{nil, "unable to load file from base commit"} + } + headReader, headBlobCloser, err := csvReaderFromCommit(&markup.RenderContext{Ctx: ctx, Filename: diffFile.Name}, headCommit) if headBlobCloser != nil { defer headBlobCloser.Close() @@ -150,13 +155,17 @@ func setCsvCompareContext(ctx *context.Context) { if err == errTooLarge { return CsvDiffResult{nil, err.Error()} } + if err != nil { + log.Error("CreateCsvDiff error whilst creating headReader from file %s in commit %s in %s: %v", diffFile.Name, headCommit.ID.String(), ctx.Repo.Repository.Name, err) + return CsvDiffResult{nil, "unable to load file from head commit"} + } sections, err := gitdiff.CreateCsvDiff(diffFile, baseReader, headReader) if err != nil { errMessage, err := csv_module.FormatError(err, ctx.Locale) if err != nil { - log.Error("RenderCsvDiff failed: %v", err) - return CsvDiffResult{nil, ""} + log.Error("CreateCsvDiff FormatError failed: %v", err) + return CsvDiffResult{nil, "unknown csv diff error"} } return CsvDiffResult{nil, errMessage} }