Return-Path: X-Original-To: apmail-couchdb-commits-archive@www.apache.org Delivered-To: apmail-couchdb-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 4040410FD2 for ; Sat, 18 Jan 2014 00:48:48 +0000 (UTC) Received: (qmail 7784 invoked by uid 500); 18 Jan 2014 00:48:02 -0000 Delivered-To: apmail-couchdb-commits-archive@couchdb.apache.org Received: (qmail 6925 invoked by uid 500); 18 Jan 2014 00:47:44 -0000 Mailing-List: contact commits-help@couchdb.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@couchdb.apache.org Delivered-To: mailing list commits@couchdb.apache.org Received: (qmail 6165 invoked by uid 99); 18 Jan 2014 00:47:28 -0000 Received: from tyr.zones.apache.org (HELO tyr.zones.apache.org) (140.211.11.114) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 18 Jan 2014 00:47:28 +0000 Received: by tyr.zones.apache.org (Postfix, from userid 65534) id DE13D3B092; Sat, 18 Jan 2014 00:47:26 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: davisp@apache.org To: commits@couchdb.apache.org Date: Sat, 18 Jan 2014 00:47:47 -0000 Message-Id: In-Reply-To: <978acd0ce5c743cc895fab78dee5f978@git.apache.org> References: <978acd0ce5c743cc895fab78dee5f978@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: [22/50] git commit: Bubble missing_stub errors Bubble missing_stub errors If we try and replicate a doc with attachment stubs to a node that doesn't have a previous revision of that doc then we should return a missing_stub error instead of dying with a function_clause error. BugzId: 15562 Project: http://git-wip-us.apache.org/repos/asf/couchdb-couch/repo Commit: http://git-wip-us.apache.org/repos/asf/couchdb-couch/commit/e4f52424 Tree: http://git-wip-us.apache.org/repos/asf/couchdb-couch/tree/e4f52424 Diff: http://git-wip-us.apache.org/repos/asf/couchdb-couch/diff/e4f52424 Branch: refs/heads/import Commit: e4f52424fc99ab4c6bd0bb09ed8df66b62ff541c Parents: bd7e7e8 Author: Paul J. Davis Authored: Tue Nov 13 17:25:35 2012 -0600 Committer: Paul J. Davis Committed: Fri Jan 17 16:44:30 2014 -0800 ---------------------------------------------------------------------- src/couch_db.erl | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/couchdb-couch/blob/e4f52424/src/couch_db.erl ---------------------------------------------------------------------- diff --git a/src/couch_db.erl b/src/couch_db.erl index 67c8a49..f5953a1 100644 --- a/src/couch_db.erl +++ b/src/couch_db.erl @@ -708,7 +708,13 @@ prep_and_validate_replicated_updates(Db, [Bucket|RestBuckets], [OldInfo|RestOldI case couch_doc:has_stubs(Doc) of true -> - DiskDoc = LoadPrevRevFun(), + DiskDoc = case LoadPrevRevFun() of + #doc{} = DiskDoc0 -> + DiskDoc0; + _ -> + % Force a missing_stub exception + couch_doc:merge_stubs(Doc, #doc{}) + end, Doc2 = couch_doc:merge_stubs(Doc, DiskDoc), GetDiskDocFun = fun() -> DiskDoc end; false ->