]> source.dussan.org Git - gitea.git/commitdiff
#3291 fix SQLite3 session read/update conflict on create new issue
authorUnknwon <u@gogs.io>
Thu, 21 Jul 2016 06:26:30 +0000 (14:26 +0800)
committerUnknwon <u@gogs.io>
Thu, 21 Jul 2016 06:26:30 +0000 (14:26 +0800)
models/issue.go

index e5335c3b1822ab83dfe8358be399163c286e9dd3..189b207df38d3eeeee2b8f762e20ddf2e0b08fe5 100644 (file)
@@ -73,15 +73,19 @@ func (i *Issue) BeforeUpdate() {
        i.DeadlineUnix = i.Deadline.UTC().Unix()
 }
 
-func (issue *Issue) loadAttributes() (err error) {
-       issue.Repo, err = GetRepositoryByID(issue.RepoID)
+func (issue *Issue) loadAttributes(e Engine) (err error) {
+       issue.Repo, err = getRepositoryByID(e, issue.RepoID)
        if err != nil {
-               return fmt.Errorf("GetRepositoryByID: %v", err)
+               return fmt.Errorf("getRepositoryByID: %v", err)
        }
 
        return nil
 }
 
+func (issue *Issue) LoadAttributes() (err error) {
+       return issue.loadAttributes(x)
+}
+
 func (i *Issue) AfterSet(colName string, _ xorm.Cell) {
        var err error
        switch colName {
@@ -403,7 +407,7 @@ func newIssue(e *xorm.Session, repo *Repository, issue *Issue, labelIDs []int64,
                }
        }
 
-       return issue.loadAttributes()
+       return issue.loadAttributes(e)
 }
 
 // NewIssue creates new issue with labels for repository.
@@ -466,7 +470,7 @@ func GetIssueByRef(ref string) (*Issue, error) {
                return nil, err
        }
 
-       return issue, issue.loadAttributes()
+       return issue, issue.LoadAttributes()
 }
 
 // GetIssueByIndex returns issue by given index in repository.
@@ -481,7 +485,7 @@ func GetIssueByIndex(repoID, index int64) (*Issue, error) {
        } else if !has {
                return nil, ErrIssueNotExist{0, repoID, index}
        }
-       return issue, issue.loadAttributes()
+       return issue, issue.LoadAttributes()
 }
 
 // GetIssueByID returns an issue by given ID.
@@ -493,7 +497,7 @@ func GetIssueByID(id int64) (*Issue, error) {
        } else if !has {
                return nil, ErrIssueNotExist{id, 0, 0}
        }
-       return issue, issue.loadAttributes()
+       return issue, issue.LoadAttributes()
 }
 
 type IssuesOptions struct {