OSDN Git Service

Fixed: ActiveRecord::StaleObjectError exception on closing a set of circular duplicat...
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Sat, 26 Apr 2008 10:54:46 +0000 (10:54 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Sat, 26 Apr 2008 10:54:46 +0000 (10:54 +0000)
git-svn-id: http://redmine.rubyforge.org/svn/trunk@1360 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/models/issue.rb
test/unit/issue_test.rb

index d6fcf53..d6eab02 100644 (file)
@@ -153,6 +153,8 @@ class Issue < ActiveRecord::Base
     # Close duplicates if the issue was closed
     if @issue_before_change && !@issue_before_change.closed? && self.closed?
       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
         next if duplicate.closed?
         # Same user and notes
index 7712b76..3ceba18 100644 (file)
@@ -48,6 +48,8 @@ class IssueTest < Test::Unit::TestCase
     IssueRelation.create(:issue_from => issue1, :issue_to => issue2, :relation_type => IssueRelation::TYPE_DUPLICATES)
     # And 3 is a dupe of 2
     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)