]> source.dussan.org Git - gitea.git/commitdiff
Prevent NPE due to missing repo in regression in #17551 (#17697)
authorzeripath <art27@cantab.net>
Thu, 18 Nov 2021 08:18:12 +0000 (08:18 +0000)
committerGitHub <noreply@github.com>
Thu, 18 Nov 2021 08:18:12 +0000 (03:18 -0500)
models/issue.go

index 983fb7aa8dc9ab3fead20045d098f79a986beb53..288163707a466da348fdd4862ce3012cb0c116d2 100644 (file)
@@ -1928,7 +1928,7 @@ func (issue *Issue) getParticipantIDsByIssue(e db.Engine) ([]int64, error) {
 
 // Get Blocked By Dependencies, aka all issues this issue is blocked by.
 func (issue *Issue) getBlockedByDependencies(e db.Engine) (issueDeps []*DependencyInfo, err error) {
-       return issueDeps, e.
+       err = e.
                Table("issue").
                Join("INNER", "repository", "repository.id = issue.repo_id").
                Join("INNER", "issue_dependency", "issue_dependency.dependency_id = issue.id").
@@ -1936,11 +1936,17 @@ func (issue *Issue) getBlockedByDependencies(e db.Engine) (issueDeps []*Dependen
                // sort by repo id then created date, with the issues of the same repo at the beginning of the list
                OrderBy("CASE WHEN issue.repo_id = " + strconv.FormatInt(issue.RepoID, 10) + " THEN 0 ELSE issue.repo_id END, issue.created_unix DESC").
                Find(&issueDeps)
+
+       for _, depInfo := range issueDeps {
+               depInfo.Issue.Repo = &depInfo.Repository
+       }
+
+       return issueDeps, err
 }
 
 // Get Blocking Dependencies, aka all issues this issue blocks.
 func (issue *Issue) getBlockingDependencies(e db.Engine) (issueDeps []*DependencyInfo, err error) {
-       return issueDeps, e.
+       err = e.
                Table("issue").
                Join("INNER", "repository", "repository.id = issue.repo_id").
                Join("INNER", "issue_dependency", "issue_dependency.issue_id = issue.id").
@@ -1948,6 +1954,12 @@ func (issue *Issue) getBlockingDependencies(e db.Engine) (issueDeps []*Dependenc
                // sort by repo id then created date, with the issues of the same repo at the beginning of the list
                OrderBy("CASE WHEN issue.repo_id = " + strconv.FormatInt(issue.RepoID, 10) + " THEN 0 ELSE issue.repo_id END, issue.created_unix DESC").
                Find(&issueDeps)
+
+       for _, depInfo := range issueDeps {
+               depInfo.Issue.Repo = &depInfo.Repository
+       }
+
+       return issueDeps, err
 }
 
 // BlockedByDependencies finds all Dependencies an issue is blocked by