@@ -6,6 +6,7 @@ package issue
66import (
77 "context"
88
9+ "code.gitea.io/gitea/models/db"
910 issues_model "code.gitea.io/gitea/models/issues"
1011 user_model "code.gitea.io/gitea/models/user"
1112 "code.gitea.io/gitea/modules/log"
@@ -14,19 +15,30 @@ import (
1415
1516// CloseIssue close and issue.
1617func CloseIssue (ctx context.Context , issue * issues_model.Issue , doer * user_model.User , commitID string ) error {
17- comment , err := issues_model .CloseIssue (ctx , issue , doer )
18+ dbCtx , committer , err := db .TxContext (ctx )
19+ if err != nil {
20+ return err
21+ }
22+ defer committer .Close ()
23+
24+ comment , err := issues_model .CloseIssue (dbCtx , issue , doer )
1825 if err != nil {
1926 if issues_model .IsErrDependenciesLeft (err ) {
20- if err := issues_model .FinishIssueStopwatchIfPossible (ctx , doer , issue ); err != nil {
27+ if err := issues_model .FinishIssueStopwatchIfPossible (dbCtx , doer , issue ); err != nil {
2128 log .Error ("Unable to stop stopwatch for issue[%d]#%d: %v" , issue .ID , issue .Index , err )
2229 }
2330 }
2431 return err
2532 }
2633
27- if err := issues_model .FinishIssueStopwatchIfPossible (ctx , doer , issue ); err != nil {
34+ if err := issues_model .FinishIssueStopwatchIfPossible (dbCtx , doer , issue ); err != nil {
35+ return err
36+ }
37+
38+ if err := committer .Commit (); err != nil {
2839 return err
2940 }
41+ committer .Close ()
3042
3143 notify_service .IssueChangeStatus (ctx , doer , commitID , issue , comment , true )
3244
0 commit comments