From 8b55c56e84b91739676c8012b13cda2c67db6dea Mon Sep 17 00:00:00 2001 From: William Morgan Date: Tue, 11 Nov 2008 12:40:32 -0800 Subject: [PATCH] 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. --- lib/sup/draft.rb | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) 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]) -- 2.45.2