aboutsummaryrefslogtreecommitdiffstats
path: root/models
diff options
context:
space:
mode:
authorLunny Xiao <xiaolunwen@gmail.com>2023-09-29 10:31:36 +0800
committerGitHub <noreply@github.com>2023-09-29 02:31:36 +0000
commit968be05bccbb117e53c107fbaf7b706a8d4027a3 (patch)
treebb6c5c3c1832aa0ff46f115bb1b244a1d3063b30 /models
parent5e02e3b7ee8294e2ec94968ece9af56bf1aa1534 (diff)
downloadgitea-968be05bccbb117e53c107fbaf7b706a8d4027a3.tar.gz
gitea-968be05bccbb117e53c107fbaf7b706a8d4027a3.zip
Add logs for data broken of comment review (#27326)
Fix #27306
Diffstat (limited to 'models')
-rw-r--r--models/issues/comment_list.go36
1 files changed, 9 insertions, 27 deletions
diff --git a/models/issues/comment_list.go b/models/issues/comment_list.go
index 6f1d350eb4..93af45870e 100644
--- a/models/issues/comment_list.go
+++ b/models/issues/comment_list.go
@@ -10,6 +10,7 @@ import (
repo_model "code.gitea.io/gitea/models/repo"
user_model "code.gitea.io/gitea/models/user"
"code.gitea.io/gitea/modules/container"
+ "code.gitea.io/gitea/modules/log"
)
// CommentList defines a list of comments
@@ -422,37 +423,18 @@ func (comments CommentList) loadReviews(ctx context.Context) error {
reviewIDs := comments.getReviewIDs()
reviews := make(map[int64]*Review, len(reviewIDs))
- left := len(reviewIDs)
- for left > 0 {
- limit := db.DefaultMaxInSize
- if left < limit {
- limit = left
- }
- rows, err := db.GetEngine(ctx).
- In("id", reviewIDs[:limit]).
- Rows(new(Review))
- if err != nil {
- return err
- }
-
- for rows.Next() {
- var review Review
- err = rows.Scan(&review)
- if err != nil {
- _ = rows.Close()
- return err
- }
-
- reviews[review.ID] = &review
- }
- _ = rows.Close()
-
- left -= limit
- reviewIDs = reviewIDs[limit:]
+ if err := db.GetEngine(ctx).In("id", reviewIDs).Find(&reviews); err != nil {
+ return err
}
for _, comment := range comments {
comment.Review = reviews[comment.ReviewID]
+ if comment.Review == nil {
+ if comment.ReviewID > 0 {
+ log.Error("comment with review id [%d] but has no review record", comment.ReviewID)
+ }
+ continue
+ }
// If the comment dismisses a review, we need to load the reviewer to show whose review has been dismissed.
// Otherwise, the reviewer is the poster of the comment, so we don't need to load it.