Commit a55223faa1c8c2f9c6385b0300db4b91fc75eeb5

Authored by Nick Recobra
1 parent 85891ca6
Exists in master and in 1 other branch production

Dealing with broken problem counters. fixes #151.

app/models/problem.rb
... ... @@ -158,7 +158,7 @@ class Problem
158 158  
159 159 def attribute_count_descrease(name, value)
160 160 counter, index = send(name), attribute_index(value)
161   - if counter[index]['count'] > 1
  161 + if counter[index] && counter[index]['count'] > 1
162 162 counter[index]['count'] -= 1
163 163 else
164 164 counter.delete(index)
... ...
spec/models/problem_spec.rb
... ... @@ -248,6 +248,13 @@ describe Problem do
248 248 @problem.reload
249 249 }.should change(@problem, :messages).from({Digest::MD5.hexdigest('ERR 1') => {'value' => 'ERR 1', 'count' => 1}}).to({})
250 250 end
  251 +
  252 + it "removing a notice from the problem with broken counter should not raise an error" do
  253 + notice1 = Fabricate(:notice, :err => @err, :message => 'ERR 1')
  254 + @problem.messages = {}
  255 + @problem.save!
  256 + expect {@err.notices.first.destroy}.not_to raise_error
  257 + end
251 258 end
252 259  
253 260 context "notice hosts cache" do
... ...