From: William Morgan Date: Tue, 11 Nov 2008 20:40:32 +0000 (-0800) Subject: don't die when a draft discarded multiple times X-Git-Url: https://git.cworth.org/git?a=commitdiff_plain;h=8b55c56e84b91739676c8012b13cda2c67db6dea;p=sup don't die when a draft discarded multiple times This can happen when you open the same draft in multiple buffers, and discard or send it multiple times. --- diff --git a/lib/sup/draft.rb b/lib/sup/draft.rb index 21de151..35fac30 100644 --- a/lib/sup/draft.rb +++ b/lib/sup/draft.rb @@ -32,7 +32,10 @@ class DraftManager def discard m docid, entry = Index.load_entry_for_id m.id - raise ArgumentError, "can't find entry for draft: #{m.id.inspect}" unless entry + unless entry + Redwood::log "can't find entry for draft: #{m.id.inspect}. You probably already discarded it." + return + end raise ArgumentError, "not a draft: source id #{entry[:source_id].inspect}, should be #{DraftManager.source_id.inspect} for #{m.id.inspect} / docno #{docid}" unless entry[:source_id].to_i == DraftManager.source_id Index.drop_entry docid File.delete @source.fn_for_offset(entry[:source_info])