##// END OF EJS Templates
Prevent ActiveRecord::StaleObjectError in Issue#reschedule_after (#7920)....
Jean-Philippe Lang -
r8744:7fa18cad5771
parent child
Show More
@@ -638,7 +638,13 class Issue < ActiveRecord::Base
638 638 if leaf?
639 639 if start_date.nil? || start_date < date
640 640 self.start_date, self.due_date = date, date + duration
641 save
641 begin
642 save
643 rescue ActiveRecord::StaleObjectError
644 reload
645 self.start_date, self.due_date = date, date + duration
646 save
647 end
642 648 end
643 649 else
644 650 leaves.each do |leaf|
@@ -768,6 +768,19 class IssueTest < ActiveSupport::TestCase
768 768 assert_equal issue1.due_date + 1, issue2.reload.start_date
769 769 end
770 770
771 def test_rescheduling_a_stale_issue_should_not_raise_an_error
772 stale = Issue.find(1)
773 issue = Issue.find(1)
774 issue.subject = "Updated"
775 issue.save!
776
777 date = 10.days.from_now.to_date
778 assert_nothing_raised do
779 stale.reschedule_after(date)
780 end
781 assert_equal date, stale.reload.start_date
782 end
783
771 784 def test_overdue
772 785 assert Issue.new(:due_date => 1.day.ago.to_date).overdue?
773 786 assert !Issue.new(:due_date => Date.today).overdue?
General Comments 0
You need to be logged in to leave comments. Login now