Fixed: ActiveRecord::StaleObjectError exception on closing a set of circular duplicate issues (#1105).
git-svn-id: http://redmine.rubyforge.org/svn/trunk@1360 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
parent
76b92fb999
commit
1d570a40ff
|
@ -153,6 +153,8 @@ class Issue < ActiveRecord::Base
|
||||||
# Close duplicates if the issue was closed
|
# Close duplicates if the issue was closed
|
||||||
if @issue_before_change && !@issue_before_change.closed? && self.closed?
|
if @issue_before_change && !@issue_before_change.closed? && self.closed?
|
||||||
duplicates.each do |duplicate|
|
duplicates.each do |duplicate|
|
||||||
|
# Reload is need in case the duplicate was updated by a previous duplicate
|
||||||
|
duplicate.reload
|
||||||
# Don't re-close it if it's already closed
|
# Don't re-close it if it's already closed
|
||||||
next if duplicate.closed?
|
next if duplicate.closed?
|
||||||
# Same user and notes
|
# Same user and notes
|
||||||
|
|
|
@ -48,6 +48,8 @@ class IssueTest < Test::Unit::TestCase
|
||||||
IssueRelation.create(:issue_from => issue1, :issue_to => issue2, :relation_type => IssueRelation::TYPE_DUPLICATES)
|
IssueRelation.create(:issue_from => issue1, :issue_to => issue2, :relation_type => IssueRelation::TYPE_DUPLICATES)
|
||||||
# And 3 is a dupe of 2
|
# And 3 is a dupe of 2
|
||||||
IssueRelation.create(:issue_from => issue2, :issue_to => issue3, :relation_type => IssueRelation::TYPE_DUPLICATES)
|
IssueRelation.create(:issue_from => issue2, :issue_to => issue3, :relation_type => IssueRelation::TYPE_DUPLICATES)
|
||||||
|
# And 3 is a dupe of 1 (circular duplicates)
|
||||||
|
IssueRelation.create(:issue_from => issue1, :issue_to => issue3, :relation_type => IssueRelation::TYPE_DUPLICATES)
|
||||||
|
|
||||||
assert issue1.reload.duplicates.include?(issue2)
|
assert issue1.reload.duplicates.include?(issue2)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue